- Nov 05, 2004
-
-
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
-
- Oct 28, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 17313
-
Reid Spencer authored
llvm-svn: 17307
-
Alkis Evlogimenos authored
llvm-svn: 17306
-
Reid Spencer authored
llvm-svn: 17305
-
Reid Spencer authored
llvm-svn: 17304
-
Reid Spencer authored
Correct the dependency of the Lexer.o file on the constructed llvmAsmParser.h header file. It is not the Lexer.cpp file that depends on the header, its the output of compiling Lexer.cpp, Lexer.o llvm-svn: 17289
-
Reid Spencer authored
llvm-svn: 17286
-
Reid Spencer authored
llvm-svn: 17284
-
- Oct 27, 2004
-
-
Chris Lattner authored
and work better with VC++. Patch contributed by Morten Ofstad! llvm-svn: 17281
-
Nate Begeman authored
Move destructor out of line to avoid vtable emission in every file that includes the header. Thanks to sabre. llvm-svn: 17278
-
Chris Lattner authored
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20041018/019708.html exposed ANOTHER latent bug in this xform, which caused Prolangs-C/bison to fill the zion nightly tester disk up and make the tester barf. This is obviously not a good thing, so lets fix this bug shall we? :) llvm-svn: 17276
-
Nate Begeman authored
llvm-svn: 17275
-
Chris Lattner authored
llvm-svn: 17270
-
- Oct 26, 2004
-
-
Chris Lattner authored
the strings for basic block labels in some cases. This amounted to about 120K of memory for namd, a medium sized program. llvm-svn: 17262
-