diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index 683fdea6122..0c40a7b8f38 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -146,6 +146,7 @@ namespace llvm { FunctionPass *createHexagonCopyToCombine(); FunctionPass *createHexagonEarlyIfConversion(); FunctionPass *createHexagonFixupHwLoops(); + FunctionPass *createHexagonGatherPacketize(); FunctionPass *createHexagonGenExtract(); FunctionPass *createHexagonGenInsert(); FunctionPass *createHexagonGenMux(); @@ -396,9 +397,15 @@ void HexagonPassConfig::addPreEmitPass() { // Generate MUX from pairs of conditional transfers. if (EnableGenMux) addPass(createHexagonGenMux()); + } + + // Create packets for 2 instructions that consitute a gather instruction. + // Do this regardless of the opt level. + addPass(createHexagonGatherPacketize(), false); + if (!NoOpt) addPass(createHexagonPacketizer(), false); - } + if (EnableVectorPrint) addPass(createHexagonVectorPrint(), false); |