aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-12-16 19:36:21 +0000
committerAndrew Trick <atrick@apple.com>2013-12-16 19:36:21 +0000
commit88bd8629b2b897dfe782c88c133b5311ba83ee2e (patch)
tree7a392ce949162f9318b460203c7230e3b18aa6f3 /llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
parentcccd82f21f4139f1517d509541af2f1421641ece (diff)
downloadllvm-88bd8629b2b897dfe782c88c133b5311ba83ee2e.zip
llvm-88bd8629b2b897dfe782c88c133b5311ba83ee2e.tar.gz
llvm-88bd8629b2b897dfe782c88c133b5311ba83ee2e.tar.bz2
Allow MachineCSE to coalesce trivial subregister copies the same way
that it coalesces normal copies. Without this, MachineCSE is powerless to handle redundant operations with truncated source operands. This required fixing the 2-addr pass to handle tied subregisters. It isn't clear what combinations of subregisters can legally be tied, but the simple case of truncated source operands is now safely handled: %vreg11<def> = COPY %vreg1:sub_32bit; GR32:%vreg11 GR64:%vreg1 %vreg12<def> = COPY %vreg2:sub_32bit; GR32:%vreg12 GR64:%vreg2 %vreg13<def,tied1> = ADD32rr %vreg11<tied0>, %vreg12<kill>, %EFLAGS<imp-def> llvm-svn: 197414
Diffstat (limited to 'llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp')
0 files changed, 0 insertions, 0 deletions