summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
diff options
context:
space:
mode:
authorMichael Kuperstein <michael.m.kuperstein@intel.com>2015-01-08 11:04:38 +0000
committerMichael Kuperstein <michael.m.kuperstein@intel.com>2015-01-08 11:04:38 +0000
commit8c65e31a5a6bfec4a0540d7af9bfae9d6bbbb184 (patch)
tree9558ab5f7ddf3e374af953a6b898a82907d843e3 /llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
parentc9335a3f2244c59b9a5e2c6bebdd793bb3a4c1f4 (diff)
downloadbcm5719-llvm-8c65e31a5a6bfec4a0540d7af9bfae9d6bbbb184.tar.gz
bcm5719-llvm-8c65e31a5a6bfec4a0540d7af9bfae9d6bbbb184.zip
Move SPAdj logic from PEI into the targets (NFC)
PEI tries to keep track of how much starting or ending a call sequence adjusts the stack pointer by, so that it can resolve frame-index references. Currently, it takes a very simplistic view of how SP adjustments are done - both FrameStartOpcode and FrameDestroyOpcode adjust it exactly by the amount written in its first argument. This view is in fact incorrect for some targets (e.g. due to stack re-alignment, or because it may want to adjust the stack pointer in multiple steps). However, that doesn't cause breakage, because most targets (the only in-tree exception appears to be 32-bit ARM) rely on being able to simplify the call frame pseudo-instructions earlier, so this code is never hit. Moving the computation into TargetInstrInfo allows targets to override the way the adjustment is computed if they need to have a non-zero SPAdj. Differential Revision: http://reviews.llvm.org/D6863 llvm-svn: 225437
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud