- May 30, 2006
-
-
Evan Cheng authored
Fold c2 in (x << c1) | c2 where (c2 < c1) e.g. int test(int x) { return (x << 3) + 7; } This can be codegen'd as: leal 7(,%eax,8), %eax llvm-svn: 28550
-
Evan Cheng authored
llvm-svn: 28548
-
Andrew Lenharth authored
llvm-svn: 28546
-
Andrew Lenharth authored
uses DSA to make find targets of calls. It provides a very convinient interface to DSA results to do things with indirect calls, such as write a devirtualizer (which I have and may commit one of these days). llvm-svn: 28545
-
- May 29, 2006
-
-
Vladimir Prus authored
llvm-svn: 28538
-
Vladimir Prus authored
llvm-svn: 28537
-
Reid Spencer authored
llvm-svn: 28534
-
Owen Anderson authored
is now theoretically feature-complete. It has not, however, been thoroughly test, and is still considered experimental. llvm-svn: 28529
-
- May 28, 2006
-
-
Owen Anderson authored
other calculations on each individually, rather than trying to delay it and do them all at the end. llvm-svn: 28527
-
- May 27, 2006
-
-
Owen Anderson authored
the iterated Dominance Frontier of the loop-closure Phi's. This is the second phase of the LCSSA pass. The third phase (coming soon) will be to update all uses of loop variables to use the loop-closure Phi's instead. llvm-svn: 28524
-
Chris Lattner authored
ldecod, lencod, and SPASS. llvm-svn: 28523
-
Chris Lattner authored
makes it so that it constant folds instructions on the fly. This is good for several reasons: 0. Many instructions are constant foldable after inlining, particularly if inlining a call with constant arguments. 1. Without this, the inliner has to allocate memory for all of the instructions that can be constant folded, then a subsequent pass has to delete them. This gets the job done without this extra work. 2. This makes the inliner *pass* a bit more aggressive: in particular, it partially solves a phase order issue where the inliner would inline lots of code that folds away to nothing, but think that the resultant function is big because of this code that will be gone. Now the code never exists. This is the first part of a 2-step process. The second part will be smart enough to see when this implicit constant folding propagates a constant into a branch or switch instruction, making CFG edges dead. This implements Transforms/Inline/inline_constprop.ll llvm-svn: 28521
-
Chris Lattner authored
llvm-svn: 28520
-
Chris Lattner authored
llvm-svn: 28519
-
Chris Lattner authored
Refactor some code to expose an interface to constant fold and instruction given it's opcode, typeand operands. llvm-svn: 28517
-
Chris Lattner authored
SimplifySelectOps would eliminate a Select, delete it, then return true. The clients would see that it did something and return null. The top level would see a null return, and decide that nothing happened, proceeding to process the node in other ways: boom. The fix is simple: clients of SimplifySelectOps should return the select node itself. In order to catch really obnoxious boogs like this in the future, add an assert that nodes are not deleted. We do this by checking for a sentry node type that the SDNode dtor sets when a node is destroyed. llvm-svn: 28514
-
Owen Anderson authored
llvm-svn: 28512
-
Evan Cheng authored
instead of MVT::i1. Either is fine except MVT::i32 is probably a legal type for most (if not all) platforms while MVT::i1 is not. llvm-svn: 28511
-
Evan Cheng authored
RET chain, value1, sign1, value2, sign2, ... llvm-svn: 28510
-
Evan Cheng authored
RET chain, value1, sign1, value2, sign2 llvm-svn: 28509
-
- May 26, 2006
-
-
Owen Anderson authored
llvm-svn: 28507
-
Owen Anderson authored
there's still a lot of work to be done on it. llvm-svn: 28506
-
Evan Cheng authored
llvm-svn: 28505
-
Evan Cheng authored
vector arguments, not three. llvm-svn: 28504
-
Chris Lattner authored
llvm-svn: 28503
-
Chris Lattner authored
nonccc calls (we were dropping the CC and tail flag). This broke several FORTRAN programs. Testcase here: Regression/Assembler/2006-05-26-VarargsCallEncode.ll llvm-svn: 28501
-
Evan Cheng authored
llvm-svn: 28499
-
Evan Cheng authored
llvm-svn: 28498
-
Evan Cheng authored
llvm-svn: 28497
-
Evan Cheng authored
llvm-svn: 28496
-
Owen Anderson authored
and documentation updates soo. llvm-svn: 28495
-
Rafael Espindola authored
Add lr as a hard coded operand of bx llvm-svn: 28494
-
Evan Cheng authored
llvm-svn: 28493
-
Evan Cheng authored
llvm-svn: 28492
-
Evan Cheng authored
llvm-svn: 28491
-
Chris Lattner authored
llvm-svn: 28490
-
Chris Lattner authored
No functionality change. llvm-svn: 28489
-
Evan Cheng authored
llvm-svn: 28488
-
Chris Lattner authored
the program. This exposes more opportunities for the instcombiner, and implements vec_shuffle.ll:test6 llvm-svn: 28487
-
Chris Lattner authored
extractelement from the SV's source. This implement vec_shuffle.ll:test[45] llvm-svn: 28485
-