- Apr 13, 2010
-
-
Devang Patel authored
llvm-svn: 101171
-
Evan Cheng authored
llvm-svn: 101170
-
Evan Cheng authored
Expand postra machine licm's capability a little more. If an instruction's register operands are all loop invariants, then it's safe to hoist it. llvm-svn: 101167
-
Jakob Stoklund Olesen authored
Sometimes it is desirable to sink instructions along a critical edge: x = ... if (a && b) ... else use(x); The 'a && b' condition creates a critical edge to the else block, but we still want to sink the computation of x into the block. The else block is dominated by the parent block, so we are not pushing instructions into new code paths. llvm-svn: 101165
-
Evan Cheng authored
llvm-svn: 101163
-
Evan Cheng authored
Re-apply 101075 and fix it properly. Just reuse the debug info of the branch instruction being optimized. There is no need to --I which can deref off start of the BB. llvm-svn: 101162
-
Chris Lattner authored
patch by Marius Wachtler! llvm-svn: 101160
-
Eric Christopher authored
in a nightly tester. llvm-svn: 101158
-
Evan Cheng authored
Teach postra machine licm to hoist more obvious invariants, e.g. instructions with no source operands. llvm-svn: 101154
-
Dan Gohman authored
llvm-svn: 101148
-
Dan Gohman authored
MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. llvm-svn: 101147
-
Dan Gohman authored
the rest of CodeGen. llvm-svn: 101146
-
Dan Gohman authored
llvm-svn: 101145
-
Dan Gohman authored
llvm-svn: 101144
-
Dan Gohman authored
llvm-svn: 101143
-
Dan Gohman authored
that one operand is always greater than another. llvm-svn: 101142
-
Dan Gohman authored
llvm-svn: 101141
-
Eric Christopher authored
llvm-svn: 101139
-
Benjamin Kramer authored
llvm-svn: 101138
-
Benjamin Kramer authored
llvm-svn: 101131
-
Benjamin Kramer authored
We have some code in llvm and clang where a BumpPtrAllocator is declared in a class but never used in the common case. Stop wasting memory there. llvm-svn: 101130
-
Owen Anderson authored
llvm-svn: 101125
-
Chris Lattner authored
llvm-svn: 101118
-
Owen Anderson authored
llvm-svn: 101117
-
Chris Lattner authored
patch by 'ether'. llvm-svn: 101116
-
Bob Wilson authored
recognize all the valid rotated immediates. This fixes the disassembler issue and will also help codegen for some unusual constant values. llvm-svn: 101114
-
Dan Gohman authored
numerator is an induction variable. For example, with code like this: for (i=0;i<n;++i) x[i%n] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the remainder. llvm-svn: 101113
-
Daniel Dunbar authored
Type::getInt{1,8,...}[Ptr]Ty, so code can consistently use the methods on Type without occasionally needed to call IntegerType::get. llvm-svn: 101111
-
Daniel Dunbar authored
llvm-svn: 101110
-
Chris Lattner authored
patch by Sylvere Teissier! llvm-svn: 101106
-
Sean Callanan authored
after edis. Really, there ought to be some mechanism to ensure that PARALLEL_DIRS get built after DIRS. llvm-svn: 101095
-
Dan Gohman authored
llvm-svn: 101086
-
-
Dan Gohman authored
they're used a lot by getNodeForGEP, which can be called a lot. This speeds up -iv-users by around 15% on several testcases. llvm-svn: 101083
-
Bill Wendling authored
llvm-svn: 101081
-
Bill Wendling authored
llvm-svn: 101079
-
Bill Wendling authored
llvm-svn: 101077
-
Bill Wendling authored
If we have this situation: jCC L1 jmp L2 L1: ... L2: ... We can get a small performance boost by emitting this instead: jnCC L2 L1: ... L2: ... This testcase shows an example of this: float func(float x, float y) { double product = (double)x * y; if (product == 0.0) return product; return product - 1.0; } llvm-svn: 101075
-
Dan Gohman authored
llvm-svn: 101074
-
- Apr 12, 2010
-
-
Sean Callanan authored
libEnhancedDisassembly, so we now build the static library in all cases (although the shared library is only built when requested/possible). Also, fixed a bug where edis wasn't properly initializing the targets it uses. llvm-svn: 101072
-