[llvm-commits] [llvm] r124526 - in /llvm/trunk: include/llvm/Transforms/Utils/ lib/CodeGen/ lib/Transforms/Scalar/ lib/Transforms/Utils/ test/CodeGen/X86/ test/Transforms/JumpThreading/ test/Transforms/SimplifyCFG/
Jakob Stoklund Olesen
stoklund at 2pi.dk
Wed Feb 2 12:55:13 PST 2011
On Feb 2, 2011, at 10:51 AM, Evan Cheng wrote:
>
> On Feb 2, 2011, at 10:30 AM, Jakob Stoklund Olesen wrote:
>
>> After register allocation, a call still takes a long time to execute, so the relative benefit of duplicating the block is quite small.
>
> I don't get this argument. The call is going to be executed either way, we are only concerned about whether getting rid of the unconditional branch is worth the code size increase. Isn't a branch + call, which is just a branch to a branch, bad? The case I really want to get is duplicating a tail call into the predecessor.
Apparently, there are not many blocks containing a call and just one other instruction. These are the only places your change has an effect in the test suite:
Name: | #Insts Beta LLC/BETA |
External/Nurbs/nurbs | 15216 15278 0.996 |
External/SPEC/CFP2000/183.equake/183.equake | 2896 2898 0.999 |
External/SPEC/CFP2006/447.dealII/447.dealII | 99881 99941 0.999 |
External/SPEC/CINT2006/483.xalancbmk/483.xalancbmk | 589228 589530 0.999 |
MultiSource/Benchmarks/Prolangs-C/assembler/assembler | 5223 5226 0.999 |
MultiSource/Benchmarks/Prolangs-C/cdecl/cdecl | 3117 3123 0.998 |
MultiSource/Benchmarks/Prolangs-C++/deriv1/deriv1 | 446 447 0.998 |
MultiSource/Benchmarks/Prolangs-C++/ocean/ocean | 879 889 0.989 |
MultiSource/Benchmarks/Prolangs-C++/trees/trees | 993 994 0.999 |
SingleSource/Benchmarks/McGill/queens | 267 268 0.996 |
SingleSource/Benchmarks/Misc-C++/bigfib | 2519 2523 0.998 |
SingleSource/Benchmarks/Shootout-C++/ary | 136 137 0.993 |
SingleSource/Benchmarks/Shootout-C++/ary2 | 173 174 0.994 |
SingleSource/Benchmarks/Shootout-C++/ary3 | 159 160 0.994 |
SingleSource/Benchmarks/Shootout-C++/lists | 321 322 0.997 |
SingleSource/Benchmarks/Shootout-C++/reversefile | 607 608 0.998 |
I was unable to measure any performance impact.
More information about the llvm-commits
mailing list