- Nov 07, 2004
-
-
Misha Brukman authored
llvm-svn: 17549
-
Misha Brukman authored
llvm-svn: 17548
-
Chris Lattner authored
llvm-svn: 17547
-
Chris Lattner authored
llvm-svn: 17545
-
Chris Lattner authored
llvm-svn: 17544
-
Reid Spencer authored
llvm-svn: 17535
-
- Nov 06, 2004
-
-
Reid Spencer authored
externally visible defined symbols from a bytecode file. llvm-svn: 17503
-
Reid Spencer authored
llvm-svn: 17500
-
Reid Spencer authored
yet supported but writing works. Way too early to review this. More to come llvm-svn: 17499
-
- Nov 05, 2004
-
-
Reid Spencer authored
llvm-svn: 17498
-
John Criswell authored
llvm-svn: 17488
-
Chris Lattner authored
llvm-svn: 17485
-
Chris Lattner authored
llvm-svn: 17484
-
Chris Lattner authored
llvm-svn: 17483
-
Chris Lattner authored
llvm-svn: 17482
-
Chris Lattner authored
llvm-svn: 17481
-
- Nov 04, 2004
-
-
Nate Begeman authored
int test(int x) { return 32768 - x; } Fixed by teaching the function that checks a constant's validity to be used as an immediate argument about subtract-from instructions. llvm-svn: 17476
-
Brian Gaeke authored
llvm-svn: 17464
-
- Nov 03, 2004
-
-
Chris Lattner authored
llvm-svn: 17457
-
- Nov 02, 2004
-
-
Chris Lattner authored
This method is really a gross hack, but at least we can make it work on the targets we support right now. This bug fix stops a crash in a testcase reduced from 176.gcc llvm-svn: 17443
-
Tanya Lattner authored
Added gross hacks such as creating my own def-use map, and picking on Instruction that I can add all my TmpInstructions to its MCFI. llvm-svn: 17441
-
Chris Lattner authored
llvm-svn: 17431
-
Chris Lattner authored
* Disable broken transforms for simplifying (setcc (cast X to larger), CI) where CC is not != or == llvm-svn: 17422
-
- Nov 01, 2004
-
-
Chris Lattner authored
llvm-svn: 17406
-
Chris Lattner authored
#define CL0(a) case a: f(); goto c; #define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \ CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9) #define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \ CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9) #define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \ CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9) #define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \ CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9) void f(); void a() { int b; c: switch (b) { CL4(1) } } This comes from GCC PR 15524 llvm-svn: 17390
-
Chris Lattner authored
This speeds up simplifycfg on this program, from 44.87s to 0.29s (with a profiled build): #define CL0(a) case a: goto c; #define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \ CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9) #define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \ CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9) #define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \ CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9) #define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \ CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9) void f(); void a() { int b; c: switch (b) { CL4(1) } } This testcase is contrived to expose N^2 behavior, but this patch should speedup simplifycfg on any programs that use large switch statements. This testcase comes from GCC PR17895. llvm-svn: 17389
-
- Oct 31, 2004
-
-
Chris Lattner authored
llvm-svn: 17377
-
Chris Lattner authored
llvm-svn: 17375
-
Chris Lattner authored
llvm-svn: 17367
-
- Oct 30, 2004
-
-
Reid Spencer authored
llvm-svn: 17359
-
Chris Lattner authored
llvm-svn: 17358
-
Chris Lattner authored
1. Calls to external global VARIABLES should not be treated as a call to an external function 2. Efficiently deleting an element from a vector by using std::swap with the back, then pop_back is NOT a good way to keep the vector sorted. 3. Our hope of having stuff get deleted by making them redundant just won't work. In particular, if we have three calls in sequence that should be merged: A, B, C first we unify B into A. To be sure that they appeared identical (so B would be erased) we set B = A. On the next step, we unified C into A and set C = A. Unfortunately, this is no guarantee that C = B, so we would fail to delete the dead call. Switch to a more explicit scheme. llvm-svn: 17357
-
Chris Lattner authored
llvm-svn: 17356
-
Chris Lattner authored
* change some uses of NH.getNode() in a bool context to use !NH.isNull() * Fix a bunch of places where we depended on the (undefined) order of evaluation of arguments to function calls to ensure that getNode() was called before getOffset(). In practice, this was NOT happening. llvm-svn: 17354
-
Tanya Lattner authored
Fixed issue with generating the partial order. It now adds the nodes not in recurrences in sets for each connected component. llvm-svn: 17351
-
Misha Brukman authored
* Move file comment to the top of the header where it belongs llvm-svn: 17349
-
- Oct 29, 2004
-
-
Brian Gaeke authored
llvm-svn: 17347
-
Brian Gaeke authored
llvm-svn: 17346
-
Misha Brukman authored
llvm-svn: 17340
-
Brian Gaeke authored
printed pointer value if sizeof(unsigned) != pointer size. Instead, use uintptr_t. llvm-svn: 17338
-