summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/CodeGen.cpp
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2013-04-21 13:09:04 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2013-04-21 13:09:04 +0000
commit6eb32b31bd34dcafef8d89f298cad1b69767bbf0 (patch)
tree1a9abeb8f6c52503a90af792c9eea85f43e493db /llvm/lib/CodeGen/CodeGen.cpp
parent9035898c2164a99bb776e67bcc872d1a5d537f16 (diff)
downloadbcm5719-llvm-6eb32b31bd34dcafef8d89f298cad1b69767bbf0.tar.gz
bcm5719-llvm-6eb32b31bd34dcafef8d89f298cad1b69767bbf0.zip
Revert "SimplifyCFG: If convert single conditional stores"
There is the temptation to make this tranform dependent on target information as it is not going to be beneficial on all (sub)targets. Therefore, we should probably do this in MI Early-Ifconversion. This reverts commit r179957. Original commit message: "SimplifyCFG: If convert single conditional stores This transformation will transform a conditional store with a preceeding uncondtional store to the same location: a[i] = may-alias with a[i] load if (cond) a[i] = Y into an unconditional store. a[i] = X may-alias with a[i] load tmp = cond ? Y : X; a[i] = tmp We assume that on average the cost of a mispredicted branch is going to be higher than the cost of a second store to the same location, and that the secondary benefits of creating a bigger basic block for other optimizations to work on outway the potential case were the branch would be correctly predicted and the cost of the executing the second store would be noticably reflected in performance. hmmer's execution time improves by 30% on an imac12,2 on ref data sets. With this change we are on par with gcc's performance (gcc also performs this transformation). There was a 1.2 % performance improvement on a ARM swift chip. Other tests in the test-suite+external seem to be mostly uninfluenced in my experiments: This optimization was triggered on 41 tests such that the executable was different before/after the patch. Only 1 out of the 40 tests (dealII) was reproducable below 100% (by about .4%). Given that hmmer benefits so much I believe this to be a fair trade off. I am going to watch performance numbers across the builtbots and will revert this if anything unexpected comes up." llvm-svn: 179980
Diffstat (limited to 'llvm/lib/CodeGen/CodeGen.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud