diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-28 20:01:59 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-28 20:01:59 +0000 |
commit | 167d918225ecd05a63f6b8d449c317feda741e18 (patch) | |
tree | 6d6b407bbff90a3ad7567398edab734cf2c60926 /llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | |
parent | b7c72717c92e3d7260bfe8aebc110971b32bf097 (diff) | |
download | bcm5719-llvm-167d918225ecd05a63f6b8d449c317feda741e18.tar.gz bcm5719-llvm-167d918225ecd05a63f6b8d449c317feda741e18.zip |
[Hexagon] Implement MI-level constant propagation
llvm-svn: 277028
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index 2c971b12ba8..80f256cd586 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -42,6 +42,9 @@ static cl::opt<bool> DisableHexagonCFGOpt("disable-hexagon-cfgopt", cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::desc("Disable Hexagon CFG Optimization")); +static cl::opt<bool> DisableHCP("disable-hcp", cl::init(false), cl::Hidden, + cl::ZeroOrMore, cl::desc("Disable Hexagon constant propagation")); + static cl::opt<bool> DisableStoreWidening("disable-store-widen", cl::Hidden, cl::init(false), cl::desc("Disable store widening")); @@ -111,6 +114,7 @@ namespace llvm { FunctionPass *createHexagonCallFrameInformation(); FunctionPass *createHexagonCFGOptimizer(); FunctionPass *createHexagonCommonGEP(); + FunctionPass *createHexagonConstPropagationPass(); FunctionPass *createHexagonCopyToCombine(); FunctionPass *createHexagonEarlyIfConversion(); FunctionPass *createHexagonExpandCondsets(); @@ -263,6 +267,11 @@ bool HexagonPassConfig::addInstSelector() { addPass(createHexagonBitSimplify(), false); addPass(createHexagonPeephole()); printAndVerify("After hexagon peephole pass"); + // Constant propagation. + if (!DisableHCP) { + addPass(createHexagonConstPropagationPass(), false); + addPass(&UnreachableMachineBlockElimID, false); + } if (EnableGenInsert) addPass(createHexagonGenInsert(), false); if (EnableEarlyIf) |