summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-04-13 20:30:56 +0000
committerChris Lattner <sabre@nondot.org>2007-04-13 20:30:56 +0000
commitfeee64e99705e5364eaf2c2a5469e802e73fb31e (patch)
tree6774790e3eaeceea8bbbb3ff08bab590d38c7007 /llvm/test
parent26d9e9c452822af37304fa8fee40d56ac8e6d981 (diff)
downloadbcm5719-llvm-feee64e99705e5364eaf2c2a5469e802e73fb31e.tar.gz
bcm5719-llvm-feee64e99705e5364eaf2c2a5469e802e73fb31e.zip
Completely rewrite addressing-mode related sinking of code. In particular,
this fixes problems where codegenprepare would sink expressions into load/stores that are not valid, and fixes cases where it would miss important valid ones. This fixes several serious codesize and perf issues, particularly on targets with complex addressing modes like arm and x86. For example, now we compile CodeGen/X86/isel-sink.ll to: _test: movl 8(%esp), %eax movl 4(%esp), %ecx cmpl $1233, %eax ja LBB1_2 #F LBB1_1: #T movl $4, (%ecx,%eax,4) movl $141, %eax ret LBB1_2: #F movl (%ecx,%eax,4), %eax ret instead of: _test: movl 8(%esp), %eax leal (,%eax,4), %ecx addl 4(%esp), %ecx cmpl $1233, %eax ja LBB1_2 #F LBB1_1: #T movl $4, (%ecx) movl $141, %eax ret LBB1_2: #F movl (%ecx), %eax ret llvm-svn: 35970
Diffstat (limited to 'llvm/test')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud