diff options
author | Robert Lytton <robert@xmos.com> | 2014-01-06 14:21:00 +0000 |
---|---|---|
committer | Robert Lytton <robert@xmos.com> | 2014-01-06 14:21:00 +0000 |
commit | 5da175214bffc33e394bf7531a8de49a2649b58c (patch) | |
tree | 986a373871e464bff4a316dbe475a7e338aeb088 /llvm/lib/Target/XCore/XCoreTargetMachine.cpp | |
parent | dec798751a0a7dc36b559fae920ab916bbe10137 (diff) | |
download | bcm5719-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.cpp | 6 |
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); |