- 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: 28549
-
Evan Cheng authored
llvm-svn: 28548
-
Reid Spencer authored
tests. The output in a few cases still doesn't compile, however. llvm-svn: 28547
-
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
-
-
Chris Lattner authored
llvm-svn: 28544
-
Chris Lattner authored
llvm-svn: 28543
-
Reid Spencer authored
llvm-svn: 28542
-
Reid Spencer authored
1. Get rid of old AsmWriter cruft that's not needed. 2. Implement several instructions. Enough to get by globalvars.ll and alignment.ll in the Feature test suite. 3. Handle constants properly (don't repeat definitions). 4. Make the output compatible with llvm-dis for diff purposes. llvm-svn: 28541
-
Reid Spencer authored
llvm-svn: 28540
-
Reid Spencer authored
llvm-svn: 28539
-
Vladimir Prus authored
llvm-svn: 28538
-
Vladimir Prus authored
llvm-svn: 28537
-
Reid Spencer authored
1. Return the module from the MakeModule function so it can be verified. 2. Make sure types get generated with their names llvm-svn: 28536
-
Reid Spencer authored
llvm-svn: 28535
-
Reid Spencer authored
llvm-svn: 28534
-
Reid Spencer authored
llvm-svn: 28533
-
Reid Spencer authored
llvm-svn: 28532
-
Owen Anderson authored
llvm-svn: 28531
-
Owen Anderson authored
llvm-svn: 28530
-
Owen Anderson authored
is now theoretically feature-complete. It has not, however, been thoroughly test, and is still considered experimental. llvm-svn: 28529
-
Reid Spencer authored
This is a safekeeping commit. The program is not finished. It currently handles modules, types, global variables and function declarations. Blocks and instructions remain to be done. llvm-svn: 28528
-
- 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
-
Reid Spencer authored
"libdir" for some reason. Changing to llvmlibsdir instead fixes it. llvm-svn: 28526
-
Reid Spencer authored
committed). This infrastructure is only activated when RUNLLVM2CPP=1 is specified on the make command line. Currently it is only supported in the Feature test suite. llvm-svn: 28525
-
- 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
llvm-svn: 28522
-
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
llvm-svn: 28518
-
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
and operands. llvm-svn: 28516
-
Chris Lattner authored
fly if it can. llvm-svn: 28515
-
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
-
Chris Lattner authored
use-after-deleted errors. llvm-svn: 28513
-
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
-