diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-04-29 15:49:13 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-04-29 15:49:13 +0000 |
commit | f5cbac93eb02306c1d3d9c7a472c1c13f3c6793b (patch) | |
tree | 3546531b2730b37a692ccf91294910ba4027523b /llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | |
parent | 0da993751775f53c57bc9100b152626a8b380dfb (diff) | |
download | bcm5719-llvm-f5cbac93eb02306c1d3d9c7a472c1c13f3c6793b.tar.gz bcm5719-llvm-f5cbac93eb02306c1d3d9c7a472c1c13f3c6793b.zip |
[Hexagon] Optimize addressing modes for load/store
Patch by Jyotsna Verma.
llvm-svn: 268051
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index 47c525fba48..cacfd4d8cba 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -33,6 +33,10 @@ static cl::opt<bool> EnableRDFOpt("rdf-opt", cl::Hidden, cl::ZeroOrMore, static cl::opt<bool> DisableHardwareLoops("disable-hexagon-hwloops", cl::Hidden, cl::desc("Disable Hardware Loops for Hexagon target")); +static cl::opt<bool> DisableAModeOpt("disable-hexagon-amodeopt", + cl::Hidden, cl::ZeroOrMore, cl::init(false), + cl::desc("Disable Hexagon Addressing Mode Optimization")); + static cl::opt<bool> DisableHexagonCFGOpt("disable-hexagon-cfgopt", cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::desc("Disable Hexagon CFG Optimization")); @@ -113,6 +117,7 @@ namespace llvm { FunctionPass *createHexagonLoopRescheduling(); FunctionPass *createHexagonNewValueJump(); FunctionPass *createHexagonOptimizeSZextends(); + FunctionPass *createHexagonOptAddrMode(); FunctionPass *createHexagonPacketizer(); FunctionPass *createHexagonPeephole(); FunctionPass *createHexagonRDFOpt(); @@ -272,6 +277,8 @@ void HexagonPassConfig::addPostRegAlloc() { addPass(createHexagonRDFOpt()); if (!DisableHexagonCFGOpt) addPass(createHexagonCFGOptimizer(), false); + if (!DisableAModeOpt) + addPass(createHexagonOptAddrMode(), false); } } |