summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-28 18:32:28 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-28 18:32:28 +0000
commit7297e7e223b931e351d6f4e551504f94ff141102 (patch)
tree003656d98f406c65b3484a2885d7d470c07d0088 /llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
parent772a91f8e436229361458420a43dff3847d3bb9f (diff)
downloadbcm5719-llvm-7297e7e223b931e351d6f4e551504f94ff141102.tar.gz
bcm5719-llvm-7297e7e223b931e351d6f4e551504f94ff141102.zip
Clean up the handling of the x87 fp stack to make it more robust.
Drop the FpMov instructions, use plain COPY instead. Drop the FpSET/GET instruction for accessing fixed stack positions. Instead use normal COPY to/from ST registers around inline assembly, and provide a single new FpPOP_RETVAL instruction that can access the return value(s) from a call. This is still necessary since you cannot tell from the CALL instruction alone if it returns anything on the FP stack. Teach fast isel to use this. This provides a much more robust way of handling fixed stack registers - we can tolerate arbitrary FP stack instructions inserted around calls and inline assembly. Live range splitting could sometimes break x87 code by inserting spill code in unfortunate places. As a bonus we handle floating point inline assembly correctly now. llvm-svn: 134018
Diffstat (limited to 'llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud