- May 25, 2004
-
-
Reid Spencer authored
llvm-svn: 13754
-
Reid Spencer authored
llvm-svn: 13751
-
- May 19, 2004
-
-
Brian Gaeke authored
effects as) CloneFunctionInto(). llvm-svn: 13601
-
Brian Gaeke authored
CloneTrace, and because it is primarily an operation on ValueMaps. It is now a global (non-static) function which can be pulled in using ValueMapper.h. llvm-svn: 13600
-
- May 12, 2004
-
-
Chris Lattner authored
give the extracted function a more useful name than just foo_code. llvm-svn: 13493
-
Chris Lattner authored
instruction in them. llvm-svn: 13490
-
Chris Lattner authored
PHI node entries from multiple outside-the-region blocks. This also fixes extraction of the entry block in a function. Yaay. This has successfully block extracted all (but one) block from the score_move function in obsequi (out of 33). Hrm, I wonder which block the bug is in. :) llvm-svn: 13489
-
Chris Lattner authored
* Add a stub for the severSplitPHINodes which will allow us to bbextract bb's with PHI nodes in them soon. * Remove unused arguments from findInputsOutputs * Dramatically simplify the code in findInputsOutputs. In particular, nothing really cares whether or not a PHI node is using something. * Move moveCodeToFunction to after emitCallAndSwitchStatement as that's the order they get called. * Fix a bug where we would code extract a region that included a call to vastart. Like 'alloca', calls to vastart must stay in the function that they are defined in. * Add some comments. llvm-svn: 13482
-
Chris Lattner authored
from the extracted region. If the return has 0 or 1 exit blocks, the new function returns void. If it has 2 exits, it returns bool, otherwise it returns a ushort as before. This allows us to use a conditional branch instruction when there are two exit blocks, as often happens during block extraction. llvm-svn: 13481
-
Chris Lattner authored
1. Get rid of the silly abort block. When doing bb extraction, we get one abort block for every block extracted, which is kinda annoying. 2. If the switch ends up having a single destination, turn it into an unconditional branch. I would like to add support for conditional branches, but to do this we will want to have the function return a bool instead of a ushort. llvm-svn: 13478
-
- May 02, 2004
-
-
Chris Lattner authored
llvm-svn: 13316
-
Chris Lattner authored
llvm-svn: 13315
-
Chris Lattner authored
llvm-svn: 13312
-
Chris Lattner authored
Turning "if (A < B && B < C)" into "if (A < B & B < C)" llvm-svn: 13311
-
Chris Lattner authored
llvm-svn: 13307
-
Chris Lattner authored
llvm-svn: 13306
-
- Apr 24, 2004
-
-
Misha Brukman authored
* Commandline option (for now) controls that flag that is passed in llvm-svn: 13141
-
- Apr 21, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 13091
-
- Apr 17, 2004
-
-
Chris Lattner authored
llvm-svn: 13011
-
- Apr 16, 2004
-
-
Brian Gaeke authored
Debian.) llvm-svn: 12986
-
Chris Lattner authored
Basically we were using SimplifyCFG as a huge sledgehammer for a simple optimization. Because simplifycfg does so many things, we can't use it for this purpose. llvm-svn: 12977
-
- Apr 13, 2004
-
-
Chris Lattner authored
llvm-svn: 12919
-
- Apr 10, 2004
-
-
Chris Lattner authored
if (C) V1 |= V2; into: Vx = V1 | V2; V1 = select C, V1, Vx when the expression can be evaluated unconditionally and is *cheap* to execute. This limited form of if conversion is quite handy in lots of cases. For example, it turns this testcase into straight-line code: int in0 ; int in1 ; int in2 ; int in3 ; int in4 ; int in5 ; int in6 ; int in7 ; int in8 ; int in9 ; int in10; int in11; int in12; int in13; int in14; int in15; long output; void mux(void) { output = (in0 ? 0x00000001 : 0) | (in1 ? 0x00000002 : 0) | (in2 ? 0x00000004 : 0) | (in3 ? 0x00000008 : 0) | (in4 ? 0x00000010 : 0) | (in5 ? 0x00000020 : 0) | (in6 ? 0x00000040 : 0) | (in7 ? 0x00000080 : 0) | (in8 ? 0x00000100 : 0) | (in9 ? 0x00000200 : 0) | (in10 ? 0x00000400 : 0) | (in11 ? 0x00000800 : 0) | (in12 ? 0x00001000 : 0) | (in13 ? 0x00002000 : 0) | (in14 ? 0x00004000 : 0) | (in15 ? 0x00008000 : 0) ; } llvm-svn: 12798
-
- Apr 08, 2004
-
-
Chris Lattner authored
llvm-svn: 12779
-
- Apr 02, 2004
-
-
Chris Lattner authored
llvm-svn: 12618
-
Chris Lattner authored
This actually causes us to turn code like: return C ? A : B; into a select instruction. llvm-svn: 12617
-
- Apr 01, 2004
-
-
Chris Lattner authored
llvm-svn: 12597
-
- Mar 31, 2004
-
-
Chris Lattner authored
this and the other patches 253.perlbmk links again. llvm-svn: 12565
-
- Mar 30, 2004
-
-
Chris Lattner authored
pass can eliminate many nasty cases of them, start generating them in the optimizers llvm-svn: 12545
-
- Mar 18, 2004
-
-
Chris Lattner authored
With this fix we now successfully extract all 149 loops from 256.bzip2 without crashing or miscompiling the program! llvm-svn: 12493
-
Chris Lattner authored
llvm-svn: 12489
-
Chris Lattner authored
llvm-svn: 12487
-
Chris Lattner authored
llvm-svn: 12486
-
Chris Lattner authored
1. Names were not put on the new arguments created (ok, this just helps sanity :) 2. Fix outgoing pointer values 3. Do not insert stores for values that had not been computed 4. Fix some wierd problems with the outset calculation This fixes CodeExtractor/2004-03-14-DominanceProblem.ll, making the extractor work on at least one simple case! llvm-svn: 12484
-
Chris Lattner authored
exposed the fact that the header was not self-contained. There is a reason we do things :) llvm-svn: 12481
-
- Mar 17, 2004
-
-
Chris Lattner authored
llvm-svn: 12465
-
Chris Lattner authored
llvm-svn: 12456
-
- Mar 16, 2004
-
-
Chris Lattner authored
llvm-svn: 12441
-
- Mar 15, 2004
-
-
Chris Lattner authored
llvm-svn: 12406
-
Chris Lattner authored
Simplify the input/output finder. All elements of a basic block are instructions. Any used arguments are also inputs. An instruction can only be used by another instruction. llvm-svn: 12405
-