Skip to content

Commit 74d19b0

Browse files
vmustyaigcbot
authored andcommitted
Match and fold reduction sequences into intrinsics in VC
Trying to match vector reduction sequences emitted by frontend compilers and fold them into LLVM intrinsics. The intrinsics should be lowered by the GenXLowering pass into efficient instruction sequences.
1 parent a422a1a commit 74d19b0

File tree

12 files changed

+952
-7
lines changed

12 files changed

+952
-7
lines changed

IGC/VectorCompiler/include/vc/GenXOpts/GenXOpts.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*========================== begin_copyright_notice ============================
22
3-
Copyright (C) 2019-2023 Intel Corporation
3+
Copyright (C) 2019-2024 Intel Corporation
44
55
SPDX-License-Identifier: MIT
66
@@ -91,6 +91,9 @@ void initializeGenXTranslateIntrinsicsPass(PassRegistry &);
9191
FunctionPass *createGenXTypeLegalizationPass();
9292
void initializeGenXTypeLegalizationPass(PassRegistry &);
9393

94+
FunctionPass *createGenXFoldReductionPass();
95+
void initializeGenXFoldReductionPass(PassRegistry &);
96+
9497
} // End llvm namespace
9598

9699
#endif // VC_GENXOPTS_GENXOPTS_H

IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ void initializeGenXPasses(PassRegistry &registry) {
208208
initializeGenXLegacyToLscTranslatorPass(registry);
209209
initializeGenXSLMResolutionPass(registry);
210210
initializeGenXTypeLegalizationPass(registry);
211+
initializeGenXFoldReductionPass(registry);
211212
// WRITE HERE MORE PASSES IF IT'S NEEDED;
212213
}
213214

@@ -869,6 +870,7 @@ void GenXTargetMachine::adjustPassManager(PassManagerBuilder &PMBuilder) {
869870
PM.add(createGenXTranslateSPIRVBuiltinsPass());
870871
PM.add(createAlwaysInlinerLegacyPass());
871872
PM.add(createAlwaysInlinerLegacyPass());
873+
PM.add(createGenXFoldReductionPass());
872874
PM.add(createGenXPrintfResolutionPass());
873875
PM.add(createGenXImportOCLBiFPass());
874876
PM.add(createGenXBIFFlagCtrlResolutionPass());

0 commit comments

Comments
 (0)