Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Due to previous simplifications, we can simplify the data structures being | Chris Lattner | 2005-01-29 | 1 | -35/+36 |
| | | | | | | used here. llvm-svn: 19913 | ||||
* | Properly handle volatile. | Chris Lattner | 2005-01-29 | 1 | -9/+11 |
| | | | | llvm-svn: 19912 | ||||
* | Remove some useless map operations. Loads/stores that are in the same | Chris Lattner | 2005-01-29 | 1 | -10/+0 |
| | | | | | | BB as the load are not included in the Cand* sets at all. llvm-svn: 19911 | ||||
* | Before doing expensive global analysis, check to make sure the pointer is | Chris Lattner | 2005-01-29 | 1 | -46/+50 |
| | | | | | | | not invalidated on entry and on exit of the block. This fixes some N^2 behavior in common cases, and speeds up gcc another 5% to 22.35s. llvm-svn: 19910 | ||||
* | Minor simplification/speedup. Replaces a set lookup with a pointer comparison. | Chris Lattner | 2005-01-29 | 1 | -4/+3 |
| | | | | | | This speeds up 176.gcc from 25.73s to 23.48s, which is 9.5% llvm-svn: 19907 | ||||
* | Eliminate generality that is not buying us anything. In particular, this | Chris Lattner | 2005-01-29 | 1 | -32/+13 |
| | | | | | | | | | | | | | | | | | | | will cause us to miss cases where the input pointer to a load could be value numbered to another load. Something like this: %X = load int* %P1 %Y = load int* %P2 Those are obviously the same if P1/P2 are the same. The code this patch removes attempts to handle that. However, since GCSE iterates, this doesn't actually buy us anything: GCSE will first replace P1 or P2 with the other one, then the load can be value numbered as equal. Removing this code speeds up gcse a lot. On 176.gcc in debug mode, this speeds up gcse from 29.08s -> 25.73s, a 13% savings. llvm-svn: 19906 | ||||
* | If we see: | Chris Lattner | 2005-01-29 | 1 | -4/+3 |
| | | | | | | | | | %A = alloca int %V = load int* %A value number %V to undef, not 0. llvm-svn: 19905 | ||||
* | Eliminate a virtual method call | Chris Lattner | 2004-12-15 | 1 | -2/+5 |
| | | | | llvm-svn: 18964 | ||||
* | Fixes to make LLVM compile with vc7.1. | Alkis Evlogimenos | 2004-09-03 | 1 | -0/+1 |
| | | | | | | Patch contributed by Paolo Invernizzi! llvm-svn: 16152 | ||||
* | Fix #includes of i*.h => Instructions.h as per PR403. | Misha Brukman | 2004-07-29 | 1 | -2/+1 |
| | | | | llvm-svn: 15334 | ||||
* | Make the create...() functions for some of these passes return a FunctionPass *. | Brian Gaeke | 2004-07-27 | 1 | -1/+1 |
| | | | | llvm-svn: 15276 | ||||
* | Implement the interfaces to update value numbering information. Add an | Chris Lattner | 2004-05-23 | 1 | -2/+24 |
| | | | | | | assert. llvm-svn: 13679 | ||||
* | Implement test/Regression/Transforms/GCSE/undefined_load.ll | Chris Lattner | 2004-04-03 | 1 | -0/+14 |
| | | | | llvm-svn: 12641 | ||||
* | Add some missing functions. Make sure to handle calls together in case the | Chris Lattner | 2004-03-16 | 1 | -1/+1 |
| | | | | | | client has another VN implementation that can VN calls. llvm-svn: 12427 | ||||
* | Implement CSE of call instructions in the most trivial case. This implements | Chris Lattner | 2004-03-15 | 1 | -11/+139 |
| | | | | | | GCSE/call_cse.ll llvm-svn: 12419 | ||||
* | In a "seeing the forest through the trees" kinda situation, I realized that a | Chris Lattner | 2004-02-05 | 1 | -227/+230 |
| | | | | | | | | | | complete rewrite of load-vn will make it a bit faster. This changes speeds up the gcse pass (which uses load-vn) from 25.45s to 0.42s on the testcase in PR209. I've also verified that this gives the exact same results as the old one. llvm-svn: 11132 | ||||
* | This is a big diff with no functionality change. We just reorder some code, | Chris Lattner | 2004-02-05 | 1 | -73/+60 |
| | | | | | | | which causes big reindentation. While I'm at it, I fix the fixme by removing some dead code. llvm-svn: 11131 | ||||
* | finegrainify namespacification | Chris Lattner | 2004-02-05 | 1 | -5/+2 |
| | | | | llvm-svn: 11130 | ||||
* | Fixed Chris' typo. | Tanya Lattner | 2004-02-05 | 1 | -1/+1 |
| | | | | llvm-svn: 11128 | ||||
* | Implement optimizations for handling large basic blocks. | Chris Lattner | 2004-02-05 | 1 | -29/+77 |
| | | | | llvm-svn: 11126 | ||||
* | Put all LLVM code into the llvm namespace, as per bug 109. | Brian Gaeke | 2003-11-11 | 1 | -2/+4 |
| | | | | llvm-svn: 9903 | ||||
* | Added LLVM project notice to the top of every C++ source file. | John Criswell | 2003-10-20 | 1 | -0/+7 |
| | | | | | | Header files will be on the way. llvm-svn: 9298 | ||||
* | Fixed spelling and grammar. | Misha Brukman | 2003-09-11 | 1 | -2/+2 |
| | | | | llvm-svn: 8478 | ||||
* | Spell `definitely' correctly. | Misha Brukman | 2003-09-11 | 1 | -1/+1 |
| | | | | llvm-svn: 8466 | ||||
* | Fix bug: RLE-Preserve-Volatile.ll | Chris Lattner | 2003-09-08 | 1 | -2/+6 |
| | | | | | | Volatile loads and stores must not be value numbered llvm-svn: 8398 | ||||
* | Spell `necessary' correctly. | Misha Brukman | 2003-08-18 | 1 | -1/+1 |
| | | | | llvm-svn: 7944 | ||||
* | If the alias analysis algorithm we are using can provide MUST alias information, | Chris Lattner | 2003-06-29 | 1 | -0/+5 |
| | | | | | | expose it directly as value numbering information llvm-svn: 6972 | ||||
* | Implement forwarding from stores to loads of must-aliased pointers. | Chris Lattner | 2003-06-16 | 1 | -14/+96 |
| | | | | | | This implements: GCSE/2003-06-13-LoadStoreEliminate.ll llvm-svn: 6694 | ||||
* | Calculate and pass load sizes to the alias analysis infrastructure | Chris Lattner | 2003-02-26 | 1 | -8/+19 |
| | | | | llvm-svn: 5635 | ||||
* | Initial implementation of value numbering for load instructions | Chris Lattner | 2002-08-30 | 1 | -0/+233 |
llvm-svn: 3540 |