- Nov 27, 2008
-
-
Chris Lattner authored
llvm-svn: 60166
-
Bill Wendling authored
inlined" message. llvm-svn: 60165
-
Chris Lattner authored
llvm-svn: 60164
-
Chris Lattner authored
llvm-svn: 60163
-
Chris Lattner authored
llvm-svn: 60162
-
Bill Wendling authored
llvm-svn: 60161
-
Chris Lattner authored
just simple threading. llvm-svn: 60157
-
Bill Wendling authored
llvm-svn: 60156
-
Misha Brukman authored
llvm-svn: 60153
-
Sanjiv Gupta authored
llvm-svn: 60149
-
Chris Lattner authored
1. Make it fold blocks separated by an unconditional branch. This enables jump threading to see a broader scope. 2. Make jump threading able to eliminate locally redundant loads when they feed the branch condition of a block. This frequently occurs due to reg2mem running. 3. Make jump threading able to eliminate *partially redundant* loads when they feed the branch condition of a block. This is common in code with lots of loads and stores like C++ code and 255.vortex. This implements thread-loads.ll and rdar://6402033. Per the fixme's, several pieces of this should be moved into Transforms/Utils. llvm-svn: 60148
-
Evan Cheng authored
llvm-svn: 60145
-
Evan Cheng authored
llvm-svn: 60141
-
Evan Cheng authored
On x86 favors folding short immediate into some arithmetic operations (e.g. add, and, xor, etc.) because materializing an immediate in a register is expensive in turns of code size. e.g. movl 4(%esp), %eax addl $4, %eax is 2 bytes shorter than movl $4, %eax addl 4(%esp), %eax llvm-svn: 60139
-
Dale Johannesen authored
llvm-svn: 60137
-
Evan Cheng authored
llvm-svn: 60135
-
Ted Kremenek authored
llvm-svn: 60134
-
- Nov 26, 2008
-
-
Mikhail Glushenkov authored
llvm-svn: 60127
-
Bill Wendling authored
llvm-svn: 60125
-
Bill Wendling authored
the conditional for the BRCOND statement. For instance, it will generate: addl %eax, %ecx jo LOF instead of addl %eax, %ecx ; About 10 instructions to compare the signs of LHS, RHS, and sum. jl LOF llvm-svn: 60123
-
Chris Lattner authored
performance in most cases on the Grawp tester, but does speed some things up (like shootout/hash by 15%). This also doesn't impact compile time in a noticable way on the Grawp tester. It also, of course, gets the testcase it was designed for right :) llvm-svn: 60120
-
Bill Wendling authored
llvm-svn: 60113
-
Bill Wendling authored
llvm-svn: 60112
-
Devang Patel authored
llvm-svn: 60111
-
Evan Cheng authored
llvm-svn: 60110
-
Duncan Sands authored
and operation legalization does something useful. llvm-svn: 60108
-
Mikhail Glushenkov authored
llvm-svn: 60105
-
Sanjiv Gupta authored
llvm-svn: 60102
-
Mikhail Glushenkov authored
llvm-svn: 60101
-
Mikhail Glushenkov authored
llvm-svn: 60100
-
Mikhail Glushenkov authored
llvm-svn: 60099
-
Sanjiv Gupta authored
Custom lower AND, OR, XOR bitwise operations. llvm-svn: 60098
-
Dan Gohman authored
llvm-svn: 60095
-
Dan Gohman authored
and the LiveInterval.h top-level comment and accordingly. This fixes blocks having spurious live-in registers in boundary cases. llvm-svn: 60092
-
Chris Lattner authored
llvm-svn: 60088
-
Devang Patel authored
llvm-svn: 60087
-
Ted Kremenek authored
Add 'tell' method to raw_fd_ostream that clients can use to query the current location in the file the stream is writing to. llvm-svn: 60085
-
Chris Lattner authored
heuristic: the value is already live at the new memory operation if it is used by some other instruction in the memop's block. This is cheap and simple to compute (moreso than full liveness). This improves the new heuristic even more. For example, it cuts two out of three new instructions out of 255.vortex:DbmFileInGrpHdr, which is one of the functions that the heuristic regressed. This overall eliminates another 40 instructions from 403.gcc and visibly reduces register pressure in 255.vortex (though this only actually ends up saving the 2 instructions from the whole program). llvm-svn: 60084
-
Nick Lewycky authored
__attribute__ notation which is supported on more platforms. llvm-svn: 60083
-
Chris Lattner authored
phrased in terms of liveness instead of as a horrible hack. :) In pratice, this doesn't change the generated code for either 255.vortex or 403.gcc, but it could cause minor code changes in theory. This is framework for coming changes. llvm-svn: 60082
-