summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
diff options
context:
space:
mode:
authorJyotsna Verma <jverma@codeaurora.org>2013-05-07 19:53:00 +0000
committerJyotsna Verma <jverma@codeaurora.org>2013-05-07 19:53:00 +0000
commit5eb598001cdfc980721950fbee8c9cfbdd5cf2c8 (patch)
tree22da7e21610471094c79e1df4a7b8f9ece4b1870 /llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
parentc8b36f160c085d527c3bd0569b54f315a7072828 (diff)
downloadbcm5719-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.cpp12
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;
OpenPOWER on IntegriCloud