Skip to content

Commit ed453f9

Browse files
igorban-inteligcbot
authored andcommitted
Create wrappers for GenXOpts passes
.
1 parent 83f5c59 commit ed453f9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+932
-113
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
9+
// NOTE: NO INCLUDE GUARD DESIRED!
10+
11+
#ifndef MODULE_PASS
12+
#define MODULE_PASS(NAME, CREATE_PASS)
13+
#endif
14+
15+
MODULE_PASS("CMABIAnalysis", CMABIAnalysisPass())
16+
MODULE_PASS("GenXPacketize", GenXPacketizePass())
17+
MODULE_PASS("CMImpParam", CMImpParamPass())
18+
MODULE_PASS("CMKernelArgOffset", CMKernelArgOffsetPass())
19+
MODULE_PASS("GenXBIFFlagCtrlResolution", GenXBIFFlagCtrlResolutionPass())
20+
MODULE_PASS("GenXBTIAssignment", GenXBTIAssignmentPass())
21+
MODULE_PASS("GenXImportOCLBiF", GenXImportOCLBiFPass())
22+
MODULE_PASS("GenXLinkageCorruptor", GenXLinkageCorruptorPass())
23+
MODULE_PASS("GenXPrintfLegalization", GenXPrintfLegalizationPass())
24+
MODULE_PASS("GenXPrintfPhiClonning", GenXPrintfPhiClonningPass())
25+
MODULE_PASS("GenXPrintfResolution", GenXPrintfResolutionPass())
26+
MODULE_PASS("GenXTrampolineInsertion", GenXTrampolineInsertionPass())
27+
MODULE_PASS("GenXTranslateSPIRVBuiltins", GenXTranslateSPIRVBuiltinsPass())
28+
MODULE_PASS("CMABI", CMABIPass())
29+
MODULE_PASS("GenXCloneIndirectFunctions", GenXCloneIndirectFunctionsPass())
30+
31+
#undef MODULE_PASS
32+
33+
#ifndef FUNCTION_PASS
34+
#define FUNCTION_PASS(NAME, CREATE_PASS)
35+
#endif
36+
37+
FUNCTION_PASS("GenXSimplify", GenXSimplifyPass())
38+
FUNCTION_PASS("GenXStatePointerFence", GenXStatePointerFencePass())
39+
FUNCTION_PASS("CMLowerVLoadVStore", CMLowerVLoadVStorePass())
40+
FUNCTION_PASS("GenXTypeLegalization", GenXTypeLegalizationPass())
41+
FUNCTION_PASS("GenXTranslateIntrinsics", GenXTranslateIntrinsicsPass())
42+
43+
#undef FUNCTION_PASS
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_CMABI
9+
#define GENX_OPTS_CMABI
10+
11+
namespace llvm {
12+
void initializeCMABIPass(PassRegistry &);
13+
}
14+
15+
struct CMABIPass : public llvm::PassInfoMixin<CMABIPass> {
16+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
17+
};
18+
19+
#endif // GENX_OPTS_CMABI
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_CMABIANALYSIS
9+
#define GENX_OPTS_CMABIANALYSIS
10+
11+
// void initializeCMABIAnalysis(PassRegistry &);
12+
13+
struct CMABIAnalysisPass : public llvm::PassInfoMixin<CMABIAnalysisPass> {
14+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
15+
};
16+
17+
#endif // GENX_OPTS_CMABIANALYSIS
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_CMIMPLPARAM
9+
#define GENX_OPTS_CMIMPLPARAM
10+
11+
namespace llvm {
12+
void initializeCMImpParamPass(PassRegistry &);
13+
}
14+
15+
struct CMImpParamPass : public llvm::PassInfoMixin<CMImpParamPass> {
16+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
17+
};
18+
19+
#endif // GENX_OPTS_CMIMPLPARAM
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_CM_KERNEL_ARG_OFFSET
9+
#define GENX_OPTS_CM_KERNEL_ARG_OFFSET
10+
11+
namespace llvm {
12+
void initializeCMKernelArgOffsetPass(PassRegistry &);
13+
}
14+
15+
struct CMKernelArgOffsetPass
16+
: public llvm::PassInfoMixin<CMKernelArgOffsetPass> {
17+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
18+
};
19+
20+
#endif // GENX_OPTS_CM_KERNEL_ARG_OFFSET
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_CM_LOWER_VLOAD_VSTORE
9+
#define GENX_OPTS_CM_LOWER_VLOAD_VSTORE
10+
11+
namespace llvm {
12+
void initializeCMLowerVLoadVStorePass(PassRegistry &);
13+
}
14+
15+
struct CMLowerVLoadVStorePass
16+
: public llvm::PassInfoMixin<CMLowerVLoadVStorePass> {
17+
llvm::PreservedAnalyses run(llvm::Function &F,
18+
llvm::FunctionAnalysisManager &AM);
19+
};
20+
21+
#endif // GENX_OPTS_CM_LOWER_VLOAD_VSTORE
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_GENX_BIF_FLAG_CTRL_RESOLUTION
9+
#define GENX_OPTS_GENX_BIF_FLAG_CTRL_RESOLUTION
10+
11+
namespace llvm {
12+
void initializeGenXBIFFlagCtrlResolutionPass(PassRegistry &);
13+
}
14+
15+
struct GenXBIFFlagCtrlResolutionPass
16+
: public llvm::PassInfoMixin<GenXBIFFlagCtrlResolutionPass> {
17+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
18+
};
19+
20+
#endif // GENX_OPTS_GENX_BIF_FLAG_CTRL_RESOLUTION
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_GENX_BTI_ASSIGNMENT
9+
#define GENX_OPTS_GENX_BTI_ASSIGNMENT
10+
11+
namespace llvm {
12+
void initializeGenXBTIAssignmentPass(PassRegistry &);
13+
}
14+
15+
struct GenXBTIAssignmentPass
16+
: public llvm::PassInfoMixin<GenXBTIAssignmentPass> {
17+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
18+
};
19+
20+
#endif // GENX_OPTS_GENX_BTI_ASSIGNMENT
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_GENX_CLONE_INDERECT_FUNCTIONS
9+
#define GENX_OPTS_GENX_CLONE_INDERECT_FUNCTIONS
10+
11+
namespace llvm {
12+
void initializeGenXCloneIndirectFunctionsPass(PassRegistry &);
13+
}
14+
15+
struct GenXCloneIndirectFunctionsPass
16+
: public llvm::PassInfoMixin<GenXCloneIndirectFunctionsPass> {
17+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
18+
};
19+
20+
#endif // GENX_OPTS_GENX_CLONE_INDERECT_FUNCTIONS
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_GENX_IMPORT_OCL_BIF
9+
#define GENX_OPTS_GENX_IMPORT_OCL_BIF
10+
11+
namespace llvm {
12+
void initializeGenXImportOCLBiFPass(PassRegistry &);
13+
}
14+
15+
struct GenXImportOCLBiFPass : public llvm::PassInfoMixin<GenXImportOCLBiFPass> {
16+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
17+
};
18+
19+
#endif // GENX_OPTS_GENX_IMPORT_OCL_BIF
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
#ifndef GENX_OPTS_GENX_LINKAGE_CORRUPTOR
9+
#define GENX_OPTS_GENX_LINKAGE_CORRUPTOR
10+
11+
namespace llvm {
12+
void initializeGenXLinkageCorruptorPass(PassRegistry &);
13+
}
14+
15+
struct GenXLinkageCorruptorPass
16+
: public llvm::PassInfoMixin<GenXLinkageCorruptorPass> {
17+
llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &AM);
18+
};
19+
20+
#endif // GENX_OPTS_GENX_LINKAGE_CORRUPTOR
Lines changed: 6 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,18 @@
11
/*========================== begin_copyright_notice ============================
22
3-
Copyright (C) 2019-2024 Intel Corporation
3+
Copyright (C) 2024 Intel Corporation
44
55
SPDX-License-Identifier: MIT
66
77
============================= end_copyright_notice ===========================*/
88

9-
//
10-
// This header file defines prototypes for accessor functions that expose passes
11-
// in the GenX transformations library.
12-
//
13-
//===----------------------------------------------------------------------===//
14-
159
#ifndef VC_GENXOPTS_GENXOPTS_H
1610
#define VC_GENXOPTS_GENXOPTS_H
1711

18-
namespace llvm {
19-
20-
class FunctionPass;
21-
class ModulePass;
22-
class Pass;
23-
class PassRegistry;
24-
25-
//===----------------------------------------------------------------------===//
26-
//
27-
// CMImpParam - Transforms to enable implicit parameters
28-
//
29-
Pass *createCMImpParamPass(bool);
30-
31-
//===----------------------------------------------------------------------===//
32-
//
33-
// CMKernelArgOffset - Determine offset of each CM kernel argument
34-
//
35-
Pass *createCMKernelArgOffsetPass(unsigned GrfByteSize, bool UseBindlessImages);
36-
37-
//===----------------------------------------------------------------------===//
38-
//
39-
// CMABI - Fix ABI issues for the genx backend.
40-
//
41-
Pass *createCMABIPass();
42-
43-
//===----------------------------------------------------------------------===//
44-
//
45-
// CMLowerVLoadVStore - Lower CM reference loads and stores.
46-
//
47-
Pass *createCMLowerVLoadVStorePass();
48-
49-
FunctionPass *createGenXReduceIntSizePass();
50-
FunctionPass *createGenXRegionCollapsingPass();
51-
FunctionPass *createGenXSimplifyPass();
52-
FunctionPass *createGenXLowerAggrCopiesPass();
53-
54-
ModulePass *createGenXPacketizePass();
55-
56-
void initializeGenXSimplifyPass(PassRegistry &);
57-
void initializeCMABIPass(PassRegistry &);
58-
void initializeCMImpParamPass(PassRegistry &);
59-
void initializeCMKernelArgOffsetPass(PassRegistry &);
60-
61-
ModulePass *createGenXPrintfResolutionPass();
62-
void initializeGenXPrintfResolutionPass(PassRegistry &);
63-
64-
ModulePass *createGenXPrintfPhiClonningPass();
65-
void initializeGenXPrintfPhiClonningPass(PassRegistry &);
66-
67-
ModulePass *createGenXPrintfLegalizationPass();
68-
void initializeGenXPrintfLegalizationPass(PassRegistry &);
69-
70-
ModulePass *createGenXImportOCLBiFPass();
71-
void initializeGenXImportOCLBiFPass(PassRegistry &);
72-
73-
ModulePass *createGenXBIFFlagCtrlResolutionPass();
74-
void initializeGenXBIFFlagCtrlResolutionPass(PassRegistry &);
75-
76-
ModulePass *createGenXBTIAssignmentPass();
77-
void initializeGenXBTIAssignmentPass(PassRegistry &);
78-
79-
ModulePass *createGenXTranslateSPIRVBuiltinsPass();
80-
void initializeGenXTranslateSPIRVBuiltinsPass(PassRegistry &);
81-
82-
ModulePass *createGenXCloneIndirectFunctionsPass();
83-
void initializeGenXCloneIndirectFunctionsPass(PassRegistry &);
84-
85-
ModulePass *createGenXTrampolineInsertionPass();
86-
void initializeGenXTrampolineInsertionPass(PassRegistry &);
87-
88-
ModulePass *createGenXLinkageCorruptorPass();
89-
void initializeGenXLinkageCorruptorPass(PassRegistry &);
90-
91-
FunctionPass *createGenXTranslateIntrinsicsPass();
92-
void initializeGenXTranslateIntrinsicsPass(PassRegistry &);
93-
94-
FunctionPass *createGenXTypeLegalizationPass();
95-
void initializeGenXTypeLegalizationPass(PassRegistry &);
96-
97-
} // End llvm namespace
12+
#if LLVM_VERSION_MAJOR < 16
13+
#include "GenXOptsLegacyPM.h"
14+
#else
15+
#include "GenXOptsNewPM.h"
16+
#endif
9817

9918
#endif // VC_GENXOPTS_GENXOPTS_H

0 commit comments

Comments
 (0)