- Aug 29, 2007
-
-
Evan Cheng authored
Changes related modules so VNInfo's are not copied. This decrease copy coalescing time by 45% and overall compilation time by 10% on siod. llvm-svn: 41579
-
Anton Korobeynikov authored
llvm-svn: 41578
-
Duncan Sands authored
in the trampoline lowering. Lookup the jump and mov opcodes for the trampoline rather than hard coding them. llvm-svn: 41577
-
Raul Herbster authored
llvm-svn: 41576
-
Ted Kremenek authored
This is the same functionality gcc provides via --Wfloat-equal. llvm-svn: 41574
-
Chris Lattner authored
to emit signed comparisons when needed for enum decl references. This implements test/CodeGen/enum.c. I think enums should be good now. llvm-svn: 41572
-
Chris Lattner authored
A small bit of codegen work is still pending. llvm-svn: 41571
-
Chris Lattner authored
llvm-svn: 41570
-
Raul Herbster authored
llvm-svn: 41569
-
Tanya Lattner authored
llvm-svn: 41568
-
Chris Lattner authored
llvm-svn: 41567
-
Chris Lattner authored
llvm-svn: 41566
-
Chris Lattner authored
llvm-svn: 41565
-
Chris Lattner authored
llvm-svn: 41564
-
Chris Lattner authored
llvm-svn: 41560
-
Steve Naroff authored
This fixes the following bug submitted by Neil... const char *f (void) { return 0; } ...which would incorrectly warn with -pedantic enabled. llvm-svn: 41559
-
Steve Naroff authored
Implement default argument promotions (for old-style function calls and variable argument lists). [dylan:~/llvm/tools/clang] admin% cat x.c int printf(const char *, ...); int oldschool(); void foo() { float f; short i; printf("foo %f", 1.0f); oldschool(f,i); } [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang x.c -parse-ast-dump int printf(char const *, ...); int oldschool(); void foo() (CompoundStmt 0x3105f00 (DeclStmt 0x3105ba0 0x3105ce0 "float f") (DeclStmt 0x3105c90 0x3105d10 "short i") (CallExpr 0x3105df0 'int' (ImplicitCastExpr 0x3105dc0 'int (*)(char const *, ...)' (DeclRefExpr 0x3105c20 'int (char const *, ...)' Decl='printf' 0x3105bd0)) (ImplicitCastExpr 0x3105dd0 'char const *' (StringLiteral 0x3105d60 'char *' "foo %f")) (ImplicitCastExpr 0x3105de0 'double' (FloatingLiteral 0x3105d80 'float' 1.000000))) (CallExpr 0x3105ed0 'int' (ImplicitCastExpr 0x3105ea0 'int (*)()' (DeclRefExpr 0x3105e20 'int ()' Decl='oldschool' 0x3105c40)) (ImplicitCastExpr 0x3105eb0 'double' (DeclRefExpr 0x3105e40 'float' Decl='f' 0x3105ce0)) (ImplicitCastExpr 0x3105ec0 'int' (DeclRefExpr 0x3105e60 'short' Decl='i' 0x3105d10)))) llvm-svn: 41558
-
- Aug 28, 2007
-
-
Steve Naroff authored
This fixes the following (recent) regression noticed by Keith Bauer (thanks!). void func(void *a); main() { void *p; p = 0; func(0); } ...which now works as you would expect. llvm-svn: 41557
-
Dan Gohman authored
scheduling. llvm-svn: 41556
-
Steve Naroff authored
Finish converting decls over to the new invalid decl API. Also removed an old FIXME (FIXME: "auto func();" passes through...). llvm-svn: 41555
-
Ted Kremenek authored
This involves the construction of a specialized "dispatch" block that all basic blocks containing indirect gotos unconditionally transfer control-flow to. The successors of the dispatch block has as its successors all of the blocks containing labels whose address was taken somewhere in the function. llvm-svn: 41554
-
Chuck Rose III authored
llvm-svn: 41553
-
Steve Naroff authored
Move the "invalid decl" idiom up to Decl (where we have some bits to steal:-) Converted ParmVarDecl, FileVarDecl, BlockVarDecl, and Sema::ParseIdentifierExpr() to use the idiom. Updated array-constraint.c to make sure we no longer get "undeclared identifier" errors:-) llvm-svn: 41552
-
Chris Lattner authored
t2.c:3:18: warning: expression result unused x = ++x, ++y, y+2; ~~~~~~~~~~~~^ ~~~ llvm-svn: 41551
-
Chris Lattner authored
llvm-svn: 41550
-
Ted Kremenek authored
llvm-svn: 41549
-
Chris Lattner authored
directly in it. Remove TargetInfo::getEnumPolicy, as there is only one policy that we support right now. llvm-svn: 41548
-
Ted Kremenek authored
arbitrarily complex control-flow in their subexpressions. llvm-svn: 41547
-
Ted Kremenek authored
variables that have a pointer type, or arrays that contain pointers. This fixes a crash on the following code: int *h[3]; int **foo(int i) { return &(h[i]); } This bug was reported by Keith Bauer (thanks!). llvm-svn: 41546
-
Chris Lattner authored
llvm-svn: 41545
-
Chris Lattner authored
llvm-svn: 41544
-
Chris Lattner authored
llvm-svn: 41543
-
Steve Naroff authored
llvm-svn: 41542
-
Chris Lattner authored
llvm-svn: 41541
-
Ted Kremenek authored
llvm-svn: 41540
-
Evan Cheng authored
1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector. The former performs slowly when the vector size is very large. llvm-svn: 41536
-
Chris Lattner authored
llvm-svn: 41533
-
Chris Lattner authored
TODO: update the types of the constants and the enum. llvm-svn: 41532
-
Chris Lattner authored
llvm-svn: 41531
-
Chris Lattner authored
t.c:1:12: warning: ISO C restricts enumerator values to range of 'int' (180388626432 is too large) enum e {A, B = 42LL << 32, C = -4, D = 12456 }; ^ llvm-svn: 41530
-