summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* elimiante some virtual calls.Chris Lattner2007-08-302-157/+33
| | | | llvm-svn: 41589
* Allow a SourceManager to optionally be passed into Stmt::dumpChris Lattner2007-08-303-5/+25
| | | | llvm-svn: 41588
* Change LegalFPImmediates to use APFloat.Dale Johannesen2007-08-3011-35/+141
| | | | | | | | | Add APFloat interfaces to ConstantFP, SelectionDAG. Fix integer bit in double->APFloat conversion. Convert LegalizeDAG to use APFloat interface in ConstantFPSDNode uses. llvm-svn: 41587
* Added comments about -dump-cfg and -view-cfg modes for the clang driver.Ted Kremenek2007-08-291-10/+19
| | | | llvm-svn: 41586
* Added an (optional) explicit "Label" statement to CFGBlock. If aTed Kremenek2007-08-292-53/+81
| | | | | | | | | | | | block begins with a label or case statement, CFGBlock::getLabel() will return the corresponding LabelStmt/CaseStmt/DefaultStmt. LabelStmts and SwitchCases no longer appear within the "executable" statements of a CFGBlock. More cleanups on visualization/pretty-printing of CFGs (less verbose). llvm-svn: 41585
* Fix use of declaration inside case blockAnton Korobeynikov2007-08-291-1/+2
| | | | llvm-svn: 41584
* cleanup context-sensitive objc keyword recognition. Patch by Fariborz Jahanian.Chris Lattner2007-08-293-5/+20
| | | | llvm-svn: 41583
* Spaces not tabs.Neil Booth2007-08-292-2/+2
| | | | llvm-svn: 41582
* Ensure we diagnose long long literals in C90 mode.Neil Booth2007-08-293-0/+15
| | | | llvm-svn: 41581
* Added GraphTraits to source-level CFGs (CFG and CFGBlock) to allowTed Kremenek2007-08-295-43/+182
| | | | | | | | | | | | | | | | | | | | (LLVM-provided) graph algorithms such as DFS and graph visualization to work effortless on source-level CFGs. Further cleanup on pretty printing of CFGs. CFGBlock::dump and CFGBlock::print now take the parent CFG as an argument. This allows CFGBlocks to print their own appropriate label indicating whether or not they are the Entry/Exit/IndirectGotoBlock without the CFG::print routine doing it instead. Added Graphviz visualization for CFGs: CFG::viewCFG. This employs the GraphTraits just implemented. Added "-view-cfg" mode the to clang driver. This is identical to "-dump-cfg" except that it calls Graphviz to visualize the CFGs instead of dumping them to the terminal. llvm-svn: 41580
* Change LiveRange so it keeps a pointer to the VNInfo rather than an index.Evan Cheng2007-08-295-352/+316
| | | | | | | 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
* Lower FRAME_TO_ADDR_OFFSET to zero by default (if not custom lowered)Anton Korobeynikov2007-08-291-1/+13
| | | | llvm-svn: 41578
* Move getX86RegNum into X86RegisterInfo and use itDuncan Sands2007-08-296-88/+80
| | | | | | | | in the trampoline lowering. Lookup the jump and mov opcodes for the trampoline rather than hard coding them. llvm-svn: 41577
* Alphabetize Raul's entry.Raul Herbster2007-08-291-3/+4
| | | | llvm-svn: 41576
* Added checking (during parsing) of comparison of floating point values using ↵Ted Kremenek2007-08-293-1/+18
| | | | | | | | == or !=. This is the same functionality gcc provides via --Wfloat-equal. llvm-svn: 41574
* Teach Type::is[un]SignedIntegerType about enum decls. This allows the code ↵Chris Lattner2007-08-293-3/+43
| | | | | | | | | generator 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
* Implement GCC-compatible layout and typing of enum constants and enum decl. Chris Lattner2007-08-292-12/+65
| | | | | | A small bit of codegen work is still pending. llvm-svn: 41571
* add some accessorsChris Lattner2007-08-291-0/+3
| | | | llvm-svn: 41570
* New contributor addedRaul Herbster2007-08-291-1/+3
| | | | llvm-svn: 41569
* Updating configure script to enable MIPS.Tanya Lattner2007-08-291-25/+30
| | | | llvm-svn: 41568
* Silence implicit 64->32-bit conversion warnings.Chris Lattner2007-08-291-20/+6
| | | | llvm-svn: 41567
* getMinSignedBits needs to take into consider the sign bit when the value is ↵Chris Lattner2007-08-291-1/+1
| | | | | | positive. llvm-svn: 41566
* update theseChris Lattner2007-08-292-2/+2
| | | | llvm-svn: 41565
* Fix a null dereference Neil ran intoChris Lattner2007-08-291-1/+2
| | | | llvm-svn: 41564
* remove some ugly code now that implicit defs are being generated in this ↵Chris Lattner2007-08-291-15/+0
| | | | | | case, thanks Steve! llvm-svn: 41560
* Re-teach Expr::isNullPointerConstant() about ImplicitCastExpr:-)Steve Naroff2007-08-291-7/+2
| | | | | | | | | | This fixes the following bug submitted by Neil... const char *f (void) { return 0; } ...which would incorrectly warn with -pedantic enabled. llvm-svn: 41559
* Implement default argument promotions (for old-style function calls and ↵Steve Naroff2007-08-282-3/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Teach Expr::isNullPointerConstant() about ImplicitCastExpr's.Steve Naroff2007-08-281-0/+8
| | | | | | | | | | | | | | | | 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
* Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used byDan Gohman2007-08-283-1/+145
| | | | | | scheduling. llvm-svn: 41556
* Finish converting decls over to the new invalid decl API.Steve Naroff2007-08-284-24/+36
| | | | | | Also removed an old FIXME (FIXME: "auto func();" passes through...). llvm-svn: 41555
* Added support for indirect-gotos (GCC extension) in source-level CFGs.Ted Kremenek2007-08-282-18/+81
| | | | | | | | | | 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
* Update win32 VStudio project files to keep pace with recently added and ↵Chuck Rose III2007-08-284-16/+27
| | | | | | deleted files llvm-svn: 41553
* Move the "invalid decl" idiom up to Decl (where we have some bits to steal:-)Steve Naroff2007-08-284-20/+37
| | | | | | | | 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
* Emit a slightly better warning for unused values for unary and binary operators:Chris Lattner2007-08-281-1/+15
| | | | | | | | t2.c:3:18: warning: expression result unused x = ++x, ++y, y+2; ~~~~~~~~~~~~^ ~~~ llvm-svn: 41551
* add a sourcelocation to binary operator to keep track of the location of the ↵Chris Lattner2007-08-282-13/+19
| | | | | | operator. llvm-svn: 41550
* Added support for GCC-style statement expressions in source-level CFGs.Ted Kremenek2007-08-281-0/+11
| | | | llvm-svn: 41549
* Change EnumDecl to store its corresponding integer type Chris Lattner2007-08-286-39/+15
| | | | | | | directly in it. Remove TargetInfo::getEnumPolicy, as there is only one policy that we support right now. llvm-svn: 41548
* Added support for comma expressions and DeclStmts which may haveTed Kremenek2007-08-281-4/+34
| | | | | | arbitrarily complex control-flow in their subexpressions. llvm-svn: 41547
* Fixed return-of-stack-address checker to correctly handle stack/globalTed Kremenek2007-08-281-5/+6
| | | | | | | | | | | | | | | | | 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
* extwarn about VLAs in C89 mode.Chris Lattner2007-08-283-4/+16
| | | | llvm-svn: 41545
* c++'0x has long long also.Chris Lattner2007-08-281-1/+1
| | | | llvm-svn: 41544
* warn about long long when in c89 mode.Chris Lattner2007-08-283-0/+11
| | | | llvm-svn: 41543
* Tweak declaration...Steve Naroff2007-08-282-3/+3
| | | | llvm-svn: 41542
* new testcaseChris Lattner2007-08-281-0/+5
| | | | llvm-svn: 41541
* Removed special-casing in CFG construction for ParenExprs.Ted Kremenek2007-08-281-10/+1
| | | | llvm-svn: 41540
* Recover most of the compile time regression due to recent live interval changes.Evan Cheng2007-08-284-98/+100
| | | | | | | | 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
* fix 80 col violationChris Lattner2007-08-281-1/+2
| | | | llvm-svn: 41533
* compute the required destination type for an enum, emitting various warnings.Chris Lattner2007-08-284-2/+93
| | | | | TODO: update the types of the constants and the enum. llvm-svn: 41532
* remove dead method.Chris Lattner2007-08-281-5/+0
| | | | llvm-svn: 41531
* add a diagnostic:Chris Lattner2007-08-282-0/+16
| | | | | | | | 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
OpenPOWER on IntegriCloud