| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
pass.
llvm-svn: 23444
|
| |
|
|
| |
llvm-svn: 23411
|
| |
|
|
|
|
|
| |
This implements SimplifyCFG/branch-fold.ll, and is useful on ?:/min/max heavy
code
llvm-svn: 23410
|
| |
|
|
| |
llvm-svn: 23408
|
| |
|
|
| |
llvm-svn: 23407
|
| |
|
|
|
|
|
|
|
| |
not define a value that is used outside of it's block. This catches many
more simplifications, e.g. 854 in 176.gcc, 137 in vpr, etc.
This implements branch-phi-thread.ll:test3.ll
llvm-svn: 23397
|
| |
|
|
|
|
| |
predecessors. This implements branch-phi-thread.ll::test1
llvm-svn: 23395
|
| |
|
|
| |
llvm-svn: 23393
|
| |
|
|
| |
llvm-svn: 23392
|
| |
|
|
|
|
|
| |
control across branches with determined outcomes. More generality to follow.
This triggers a couple thousand times in specint.
llvm-svn: 23391
|
| |
|
|
|
|
|
| |
a problem in LoopStrengthReduction, where it would split critical edges
then confused itself with outdated loop information.
llvm-svn: 22776
|
| |
|
|
|
|
|
| |
Instead, just update the BB in-place. This is both faster, and it prevents
split-critical-edges from shuffling the PHI argument list unneccesarily.
llvm-svn: 22765
|
| |
|
|
| |
llvm-svn: 22667
|
| |
|
|
|
|
|
|
| |
BasicBlock's removePredecessor routine. This requires shuffling around
the definition and implementation of hasContantValue from Utils.h,cpp into
Instructions.h,cpp
llvm-svn: 22664
|
| |
|
|
|
|
| |
occurred while bugpointing another testcase
llvm-svn: 22621
|
| |
|
|
|
|
|
|
| |
Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
the right way
llvm-svn: 22615
|
| |
|
|
| |
llvm-svn: 22613
|
| |
|
|
|
|
| |
function with no side-effects
llvm-svn: 22612
|
| |
|
|
| |
llvm-svn: 22611
|
| |
|
|
|
|
| |
some duplicated code
llvm-svn: 22610
|
| |
|
|
|
|
| |
call it from the only place it is live. No functionality changes.
llvm-svn: 22609
|
| |
|
|
|
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050801/027345.html
This breaks real programs and only fixes an obscure regression testcase. A
real fix is in development.
llvm-svn: 22606
|
| |
|
|
| |
llvm-svn: 22605
|
| |
|
|
|
|
|
|
| |
consideration the case where a reference in an unreachable block could
occur. This fixes Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll,
something I ran into while bugpoint'ing another pass.
llvm-svn: 22584
|
| |
|
|
| |
llvm-svn: 22523
|
| |
|
|
|
|
|
|
| |
The optimization for locally used allocas was not safe for allocas that
were read before they were written. This change disables that optimization
in that case.
llvm-svn: 22318
|
| |
|
|
| |
llvm-svn: 22263
|
| |
|
|
|
|
| |
This fixes PR584 and Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
llvm-svn: 22232
|
| |
|
|
| |
llvm-svn: 22158
|
| |
|
|
|
|
|
| |
a call. This fixes Prolangs-C++/deriv2, kimwitu++, and Misc-C++/bigfib
on X86 with -enable-x86-fastcc.
llvm-svn: 22023
|
| |
|
|
|
|
| |
turning calls into invokes
llvm-svn: 21797
|
| |
|
|
|
|
| |
not change code after testing it without retesting!
llvm-svn: 21741
|
| |
|
|
| |
llvm-svn: 21736
|
| |
|
|
| |
llvm-svn: 21719
|
| |
|
|
|
|
| |
are moved to simplify-libcalls pass.
llvm-svn: 21614
|
| |
|
|
|
|
|
|
| |
sinh, cosh, etc.
* Make the name comparisons for the fp libcalls a little more efficient by
switching on the first character of the name before doing comparisons.
llvm-svn: 21611
|
| |
|
|
| |
llvm-svn: 21480
|
| |
|
|
| |
llvm-svn: 21427
|
| |
|
|
| |
llvm-svn: 21393
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
convert this:
%tmp.1 = seteq int %i, 0 ; <bool> [#uses=1]
br bool %tmp.1, label %shortcirc_done, label %shortcirc_next
shortcirc_next: ; preds = %entry
%tmp.4 = seteq int %j, 0 ; <bool> [#uses=1]
br label %shortcirc_done
shortcirc_done: ; preds = %shortcirc_next, %entry
%shortcirc_val = phi bool [ %tmp.4, %shortcirc_next ], [ true, %entry ] ; <bool> [#uses=1]
to this:
%tmp.1 = seteq int %i, 0 ; <bool> [#uses=1]
%tmp.4 = seteq int %j, 0 ; <bool> [#uses=1]
%shortcirc_val = select bool %tmp.1, bool true, bool %tmp.4 ; <bool> [#uses=1]
... which is later simplified by instcombine into an or.
llvm-svn: 21388
|
| |
|
|
| |
llvm-svn: 21253
|
| |
|
|
|
|
| |
Bill Wendling!!
llvm-svn: 20649
|
| |
|
|
|
|
|
|
| |
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597
|
| |
|
|
| |
llvm-svn: 20463
|
| |
|
|
| |
llvm-svn: 20343
|
| |
|
|
| |
llvm-svn: 20334
|
| |
|
|
|
|
|
|
| |
This does a simple form of "jump threading", which eliminates CFG edges that
are provably dead. This triggers 90 times in the external tests, and
eliminating CFG edges is always always a good thing! :)
llvm-svn: 20300
|
| |
|
|
| |
llvm-svn: 19898
|
| |
|
|
|
|
|
|
| |
SimplifyCFG is one of those passes that we use for final cleanup: it should
not rely on other passes to clean up its garbage. This fixes the "why are
trivially dead setcc's in the output of gccas" problem.
llvm-svn: 19212
|
| |
|
|
| |
llvm-svn: 18799
|