summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2015-01-14 20:19:29 +0000
committerChandler Carruth <chandlerc@gmail.com>2015-01-14 20:19:29 +0000
commite3288147f0869512b7bc877a6c33b684b9ffa615 (patch)
tree5a163bd11ae623668bee847fd0eadd9eb057931e /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parent082cfc05f1509da7aa87fd1e30e279755b4477d8 (diff)
downloadbcm5719-llvm-e3288147f0869512b7bc877a6c33b684b9ffa615.tar.gz
bcm5719-llvm-e3288147f0869512b7bc877a6c33b684b9ffa615.zip
[MBP] Add flags to disable the BadCFGConflict check in MachineBlockPlacement.
Some benchmarks have shown that this could lead to a potential performance benefit, and so adding some flags to try to help measure the difference. A possible explanation. In diamond-shaped CFGs (A followed by either B or C both followed by D), putting B and C both in between A and D leads to the code being less dense than it could be. Always either B or C have to be skipped increasing the chance of cache misses etc. Moving either B or C to after D might be beneficial on average. In the long run, but we should probably do a better job of analyzing the basic block and branch probabilities to move the correct one of B or C to after D. But even if we don't use this in the long run, it is a good baseline for benchmarking. Original patch authored by Daniel Jasper with test tweaks and a second flag added by me. Differential Revision: http://reviews.llvm.org/D6969 llvm-svn: 226034
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud