- Dec 05, 2008
-
-
Anton Korobeynikov authored
See PR3160 for details llvm-svn: 60604
-
Chris Lattner authored
llvm-svn: 60594
-
Chris Lattner authored
llvm-svn: 60588
-
- Dec 04, 2008
-
-
Devang Patel authored
This fixes many bugs. I will add more test cases in a separate check-in. Some day, the code that manipulates CFG and updates dom. info could use refactoring help. llvm-svn: 60554
-
Chris Lattner authored
llvm-svn: 60534
-
Chris Lattner authored
llvm-svn: 60514
-
- Dec 03, 2008
-
-
Dale Johannesen authored
llvm-svn: 60508
-
Dale Johannesen authored
llvm-svn: 60506
-
Chris Lattner authored
llvm-svn: 60501
-
Dale Johannesen authored
llvm-svn: 60494
-
Chris Lattner authored
1) have it fold "br undef", which does occur with surprising frequency as jump threading iterates. 2) teach j-t to delete dead blocks. This removes the successor edges, reducing the in-edges of other blocks, allowing recursive simplification. 3) Fold things like: br COND, BBX, BBY BBX: br COND, BBZ, BBW which also happens because jump threading iterates. llvm-svn: 60470
-
Chris Lattner authored
llvm-svn: 60469
-
Chris Lattner authored
llvm-svn: 60468
-
Chris Lattner authored
unconditionally delete the block. All likely clients will do the checking anyway. llvm-svn: 60464
-
Chris Lattner authored
DeleteBlockIfDead method. llvm-svn: 60463
-
- Dec 02, 2008
-
-
Dale Johannesen authored
llvm-svn: 60442
-
Dale Johannesen authored
llvm-svn: 60431
-
Chris Lattner authored
straight-forward implementation. This does not require any extra alias analysis queries beyond what we already do for non-local loads. Some programs really really like load PRE. For example, SPASS triggers this ~1000 times, ~300 times in 255.vortex, and ~1500 times on 403.gcc. The biggest limitation to the implementation is that it does not split critical edges. This is a huge killer on many programs and should be addressed after the initial patch is enabled by default. The implementation of this should incidentally speed up rejection of non-local loads because it avoids creating the repl densemap in cases when it won't be used for fully redundant loads. This is currently disabled by default. Before I turn this on, I need to fix a couple of miscompilations in the testsuite, look at compile time performance numbers, and look at perf impact. This is pretty close to ready though. llvm-svn: 60408
-
Bill Wendling authored
llvm-svn: 60403
-
Bill Wendling authored
llvm-svn: 60402
-
Bill Wendling authored
llvm-svn: 60401
-
Bill Wendling authored
constant. If X is a constant, then this is folded elsewhere. - Added a note to Target/README.txt to indicate that we'd like to implement this when we're able. llvm-svn: 60399
-
Bill Wendling authored
llvm-svn: 60398
-
Bill Wendling authored
- No need to do a swap on a canonicalized pattern. No functionality change. llvm-svn: 60397
-
Chris Lattner authored
llvm-svn: 60395
-
Owen Anderson authored
a new value numbering set after splitting a critical edge. This increases the number of instances of PRE on 403.gcc from ~60 to ~570. llvm-svn: 60393
-
- Dec 01, 2008
-
-
Dale Johannesen authored
figuring out the base of the IV. This produces better code in the example. (Addresses use (IV) instead of (BASE,IV) - a significant improvement on low-register machines like x86). llvm-svn: 60374
-
Bill Wendling authored
llvm-svn: 60370
-
Bill Wendling authored
llvm-svn: 60369
-
Bill Wendling authored
integer is "minint". llvm-svn: 60366
-
Bill Wendling authored
don't have overlapping bits. llvm-svn: 60344
-
Bill Wendling authored
llvm-svn: 60343
-
Bill Wendling authored
llvm-svn: 60341
-
Bill Wendling authored
Move pattern check outside of the if-then statement. This prevents us from fiddling with constants unless we have to. llvm-svn: 60340
-
Chris Lattner authored
llvm-svn: 60339
-
Chris Lattner authored
that it isn't reallocated all the time. This is a tiny speedup for GVN: 3.90->3.88s llvm-svn: 60338
-
Chris Lattner authored
llvm-svn: 60337
-
Chris Lattner authored
instead of std::sort. This shrinks the release-asserts LSR.o file by 1100 bytes of code on my system. We should start using array_pod_sort where possible. llvm-svn: 60335
-
Chris Lattner authored
This is a lot cheaper and conceptually simpler. llvm-svn: 60332
-
Chris Lattner authored
DeadInsts ivar, just use it directly. llvm-svn: 60330
-