- Jan 30, 2011
-
-
Jakob Stoklund Olesen authored
This is similar to the -unroll-threshold option. There should be no change in behavior when -tail-dup-size is not explicit on the llc command line. llvm-svn: 124564
-
Duncan Sands authored
by PR9088 fixes things. llvm-svn: 124561
-
Duncan Sands authored
to do this and more, but would only do it if X/Y had only one use. Spotted as the most common missed simplification in SPEC by my auto-simplifier, now that it knows about nuw/nsw/exact flags. This removes a bunch of multiplications from 447.dealII and 483.xalancbmk. It also removes a lot from tramp3d-v4, which results in much more inlining. llvm-svn: 124560
-
Benjamin Kramer authored
Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
-
Nick Lewycky authored
llvm-svn: 124557
-
Nick Lewycky authored
llvm-svn: 124556
-
- Jan 29, 2011
-
-
Nick Lewycky authored
This is the one where one of the branches of the select is another select on the same condition. llvm-svn: 124547
-
Francois Pichet authored
The DEBUG() call at line 606 demands to see raw_ostream's definition. I have no idea why this seems to only break MSVC. llvm-svn: 124545
-
Nick Lewycky authored
llvm-svn: 124544
-
Frits van Bommel authored
llvm-svn: 124535
-
Frits van Bommel authored
llvm-svn: 124534
-
Duncan Sands authored
llvm-svn: 124533
-
Benjamin Kramer authored
This happens e.g. for code like "X - X%10" where we lower the modulo operation to a series of multiplies and shifts that are then subtracted from X, leading to this missed optimization. llvm-svn: 124532
-
Evan Cheng authored
llvm-svn: 124527
-
Evan Cheng authored
llvm-svn: 124526
-
Evan Cheng authored
llvm-svn: 124522
-
Evan Cheng authored
Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand. llvm-svn: 124518
-
Andrew Trick authored
Modified patch by Adam Preuss. This builds on the existing framework for block tracing, edge profiling and optimal edge profiling. See -help-hidden for new flags. For documentation, see the technical report "Implementation of Path Profiling..." in llvm.org/pubs. llvm-svn: 124515
-
- Jan 28, 2011
-
-
Roman Divacky authored
llvm-svn: 124498
-
Duncan Sands authored
llvm-svn: 124497
-
Duncan Sands authored
zero effect on the testsuite (it improves two Ada testcases). llvm-svn: 124496
-
Bob Wilson authored
Patch by Jyun-Yan You. llvm-svn: 124492
-
Duncan Sands authored
benchmarks, and that it can be simplified to X/Y. (In general you can only simplify (Z*Y)/Y to Z if the multiplication did not overflow; if Z has the form "X/Y" then this is the case). This patch implements that transform and moves some Div logic out of instcombine and into InstructionSimplify. Unfortunately instcombine gets in the way somewhat, since it likes to change (X/Y)*Y into X-(X rem Y), so I had to teach instcombine about this too. Finally, thanks to the NSW/NUW flags, sometimes we know directly that "Z*Y" does not overflow, because the flag says so, so I added that logic too. This eliminates a bunch of divisions and subtractions in 447.dealII, and has good effects on some other benchmarks too. It seems to have quite an effect on tramp3d-v4 but it's hard to say if it's good or bad because inlining decisions changed, resulting in massive changes all over. llvm-svn: 124487
-
Oscar Fuentes authored
llvm-svn: 124486
-
Roman Divacky authored
llvm-svn: 124485
-
Nick Lewycky authored
functionality change. llvm-svn: 124482
-
Nick Lewycky authored
llvm-svn: 124480
-
Nick Lewycky authored
llvm-svn: 124479
-
Evan Cheng authored
llvm-svn: 124478
-
Nick Lewycky authored
the function equality set. llvm-svn: 124475
-
Nick Lewycky authored
llvm-svn: 124472
-
Nick Lewycky authored
llvm-svn: 124469
-
Rafael Espindola authored
llvm-svn: 124468
-
Nico Weber authored
llvm-svn: 124467
-
Evan Cheng authored
branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. llvm-svn: 124462
-
Evan Cheng authored
llvm-svn: 124458
-
Kevin Enderby authored
only .syntax unified is supported. llvm-svn: 124454
-
- Jan 27, 2011
-
-
Oscar Fuentes authored
location was stated with FFI_INCLUDE_DIR/FFI_LIBRARY_DIR. llvm-svn: 124449
-
David Greene authored
[AVX] Clean up the code to configure target lowering for AVX. Specify how to lower more/new operations. This is a prerequisite for adding additional AVX lowering. llvm-svn: 124447
-
Andrew Trick authored
llvm-svn: 124443
-