summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
diff options
context:
space:
mode:
authorRobert Lytton <robert@xmos.com>2014-01-06 14:21:00 +0000
committerRobert Lytton <robert@xmos.com>2014-01-06 14:21:00 +0000
commit5da175214bffc33e394bf7531a8de49a2649b58c (patch)
tree986a373871e464bff4a316dbe475a7e338aeb088 /llvm/lib/Target/XCore/XCoreTargetMachine.cpp
parentdec798751a0a7dc36b559fae920ab916bbe10137 (diff)
downloadbcm5719-llvm-5da175214bffc33e394bf7531a8de49a2649b58c.tar.gz
bcm5719-llvm-5da175214bffc33e394bf7531a8de49a2649b58c.zip
XCore target: Lower FRAME_TO_ARGS_OFFSET
This requires a knowledge of the stack size which is not known until the frame is complete, hence the need for the XCoreFTAOElim pass which lowers the XCoreISD::FRAME_TO_ARGS_OFFSET instrution into its final form. llvm-svn: 198614
Diffstat (limited to 'llvm/lib/Target/XCore/XCoreTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/XCore/XCoreTargetMachine.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/XCore/XCoreTargetMachine.cpp b/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
index 21027270911..781a87b1e91 100644
--- a/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
+++ b/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
@@ -48,6 +48,7 @@ public:
virtual bool addPreISel();
virtual bool addInstSelector();
+ virtual bool addPreEmitPass();
};
} // namespace
@@ -65,6 +66,11 @@ bool XCorePassConfig::addInstSelector() {
return false;
}
+bool XCorePassConfig::addPreEmitPass() {
+ addPass(createXCoreFrameToArgsOffsetEliminationPass());
+ return false;
+}
+
// Force static initialization.
extern "C" void LLVMInitializeXCoreTarget() {
RegisterTargetMachine<XCoreTargetMachine> X(TheXCoreTarget);
OpenPOWER on IntegriCloud