diff options
author | Jyotsna Verma <jverma@codeaurora.org> | 2013-05-07 19:53:00 +0000 |
---|---|---|
committer | Jyotsna Verma <jverma@codeaurora.org> | 2013-05-07 19:53:00 +0000 |
commit | 5eb598001cdfc980721950fbee8c9cfbdd5cf2c8 (patch) | |
tree | 22da7e21610471094c79e1df4a7b8f9ece4b1870 /llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | |
parent | c8b36f160c085d527c3bd0569b54f315a7072828 (diff) | |
download | bcm5719-llvm-5eb598001cdfc980721950fbee8c9cfbdd5cf2c8.tar.gz bcm5719-llvm-5eb598001cdfc980721950fbee8c9cfbdd5cf2c8.zip |
Hexagon: Fix Small Data support to handle -G 0 correctly.
llvm-svn: 181344
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index caa1ba49649..dc44b34cff6 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -15,6 +15,7 @@ #include "Hexagon.h" #include "HexagonISelLowering.h" #include "HexagonMachineScheduler.h" +#include "HexagonTargetObjectFile.h" #include "llvm/CodeGen/Passes.h" #include "llvm/IR/Module.h" #include "llvm/PassManager.h" @@ -156,6 +157,17 @@ bool HexagonPassConfig::addPostRegAlloc() { } bool HexagonPassConfig::addPreSched2() { + const HexagonTargetMachine &TM = getHexagonTargetMachine(); + HexagonTargetObjectFile &TLOF = + (HexagonTargetObjectFile&)(getTargetLowering()->getObjFileLowering()); + + if (getOptLevel() != CodeGenOpt::None) + addPass(&IfConverterID); + if (!TLOF.IsSmallDataEnabled()) { + addPass(createHexagonSplitConst32AndConst64(TM)); + printAndVerify("After hexagon split const32/64 pass"); + } + return true; if (getOptLevel() != CodeGenOpt::None) addPass(&IfConverterID); return false; |