summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* rdar://6827200 - [sema] reject statically allocated arrays of interface typesChris Lattner2009-04-271-1/+2
| | | | | | | Upgrade "array of interface" warning to an error. In addition to being a terrible idea, this crashes codegen. llvm-svn: 70178
* Change our silencing of C typedef redefinition handling to what we hadChris Lattner2009-04-271-1/+6
| | | | | | | | before r69391: typedef redefinition is an error by default, but if *either* the old or new definition are from a system header, we silence it. llvm-svn: 70177
* remove dead varChris Lattner2009-04-271-1/+0
| | | | llvm-svn: 70174
* Set up DeclsCursor.Chris Lattner2009-04-271-1/+35
| | | | llvm-svn: 70173
* add stmt/expr names to BlockInfo block.Chris Lattner2009-04-271-3/+77
| | | | llvm-svn: 70172
* drop the _ID suffixes from block names.Chris Lattner2009-04-271-6/+6
| | | | llvm-svn: 70169
* Turn PCH off by default, yet again. I'm happier about it this time, thoughDouglas Gregor2009-04-261-1/+1
| | | | llvm-svn: 70168
* add the decl names.Chris Lattner2009-04-261-2/+26
| | | | llvm-svn: 70167
* make llvm-bcanalyzer dump out PCH files symbolically. We should probablyChris Lattner2009-04-261-0/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eventually get an option to turn this off, but it is nice for looking at statistics. For example, the types block now prints: Block ID #11 (TYPES_BLOCK_ID): Num Instances: 1 Total Size: 895100b/111888B/27971.9W % of file: 1.55801 Num SubBlocks: 0 Num Abbrevs: 0 Num Records: 14899 % Abbrev Recs: 0 Code Histogram: 5478 TYPE_FUNCTION_PROTO 2683 TYPE_TYPEDEF 2460 TYPE_POINTER 2047 TYPE_ENUM 1553 TYPE_RECORD 283 TYPE_CONSTANT_ARRAY 274 TYPE_OBJC_INTERFACE 76 TYPE_INCOMPLETE_ARRAY 10 TYPE_VECTOR 9 TYPE_OBJC_QUALIFIED_ID 5 TYPE_FUNCTION_NO_PROTO 5 TYPE_EXT_QUAL 3 TYPE_TYPEOF_EXPR llvm-svn: 70166
* Trying turning on PCH by default yet again. We might actually a chance at ↵Douglas Gregor2009-04-261-1/+1
| | | | | | success now llvm-svn: 70164
* Some fixes for PCH (de-)serialization of Objective-C AST nodes:Douglas Gregor2009-04-263-28/+52
| | | | | | | | | | | | | | | | - Deal with the Receiver/ClassInfo shared storage in ObjCMessageExpr - Implement PCH support for ImplicitParamDecl - Fix the handling of the body of an ObjCMethodDecl - Several cast -> cast_or_null fixes - Make Selector::getIdentifierInfoForSlot work for 1-argument, NULL selectors. - Make Selector::getAsString() work with NULL selectors. - Fix the names of VisitObjCAtCatchStmt and VisitObjCAtFinallyStmt in the PCH reader and writer; these were never getting called. At this point, all of the pch-test tests pass for C and Objective-C. llvm-svn: 70163
* Add a bit more handling for declarations like "int a[*]".Eli Friedman2009-04-262-2/+15
| | | | llvm-svn: 70162
* The mysterious bug turns out to be an incredibly bone-headed mistake.Sebastian Redl2009-04-262-2/+3
| | | | llvm-svn: 70160
* Adjust to LLVM API changes that went into r70157.Chris Lattner2009-04-261-6/+7
| | | | llvm-svn: 70158
* Fix for PR4079: make sure to construct the member expressions for Eli Friedman2009-04-261-4/+9
| | | | | | | | | offsetof correctly in the presence of anonymous structs/unions. This could definitely use some cleanup, but I don't really want to mess with the anonymous union/struct code. llvm-svn: 70156
* Implement function-try-blocks. However, there's a very subtle bug that I ↵Sebastian Redl2009-04-2612-41/+128
| | | | | | can't track down. llvm-svn: 70155
* Remove getIntegerConstantExprValue in favor of using EvaluateAsInt.Eli Friedman2009-04-268-18/+13
| | | | llvm-svn: 70145
* Minor code cleanup.Eli Friedman2009-04-261-16/+4
| | | | llvm-svn: 70144
* Add PCH read/write support for ObjC statements.Steve Naroff2009-04-262-1/+130
| | | | llvm-svn: 70143
* implement PR4077: [Linux kernel] inscrutable error on inline asm ↵Chris Lattner2009-04-261-0/+18
| | | | | | | | | | | | | | | | | input/output constraint mismatch Before we emitted: $ clang t.c -S -m64 llvm: error: Unsupported asm: input constraint with a matching output constraint of incompatible type! Now we produce: $ clang t.c -S -m64 t.c:5:40: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'int' asm volatile("foo " : "=a" (a) :"0" (b)); ~~~ ~^~ llvm-svn: 70142
* in a tied operand, don't copy over the name or constraint string, just the ↵Chris Lattner2009-04-262-3/+1
| | | | | | flags. llvm-svn: 70137
* pull operands names "[foo]" into ConstraintInfo.Chris Lattner2009-04-263-33/+24
| | | | llvm-svn: 70136
* pull the constraint string into the ConstraintInfo structChris Lattner2009-04-263-25/+23
| | | | | | instead of passing it around in addition to it. llvm-svn: 70135
* Make sure we have a code in the node:-)Steve Naroff2009-04-261-0/+4
| | | | | | This fixes all the -emit-pch problems discovered by utils/pch-test.pl. llvm-svn: 70125
* Make reference class unification in conditional expressions check for ↵Sebastian Redl2009-04-261-6/+6
| | | | | | validity of the conversion. llvm-svn: 70121
* change TargetInfo::ConstraintInfo to be a struct that containsChris Lattner2009-04-264-44/+35
| | | | | | the enum along with some other data. llvm-svn: 70114
* Turn off PCH by default, againDouglas Gregor2009-04-261-1/+1
| | | | llvm-svn: 70113
* One more crazy try with PCH-by-defaultDouglas Gregor2009-04-261-1/+1
| | | | llvm-svn: 70112
* Make sure to pull in the target builtin records when initialize the AST ↵Douglas Gregor2009-04-261-1/+1
| | | | | | context, even if we're not going to initialize the __builin_* identifiers llvm-svn: 70111
* When writing a PCH file, write multiple type and declaration blocks asDouglas Gregor2009-04-262-12/+22
| | | | | | | | | | | necessary and iterate until all types and declarations have been written. This reduces the Cocoa.h PCH file size by about 4% (since we don't write types we don't need), and fixes problems where writing a declaration generates a new type. This doesn't seem to have any impact on performance either way. llvm-svn: 70109
* Turn of PCH by default. I got the info I was looking forDouglas Gregor2009-04-261-1/+1
| | | | llvm-svn: 70106
* split ObjC and C++ Statements out into their own headers.Chris Lattner2009-04-2610-6/+17
| | | | llvm-svn: 70105
* Correct the order of the parameters to CheckAssignmentConstraints in Eli Friedman2009-04-261-1/+1
| | | | | | | cleanup attribute checking. The difference isn't normally visible, but it can make a difference... llvm-svn: 70104
* Driver: Add -std-default= option.Daniel Dunbar2009-04-261-1/+16
| | | | | | | | | - This can be used to supply a default value for -std=; the idea is that this can be used in conjunction with CCC_ADD_ARGS or QA_OVERRIDE_GCC3_OPTIONS to change the default without having to modify the build system. llvm-svn: 70102
* Add option for AddAllArgsTranslated to control whether output argumentDaniel Dunbar2009-04-261-3/+11
| | | | | | should be joined or separate. llvm-svn: 70101
* implement PCH support for the rest of ExprObjC.h, includingChris Lattner2009-04-263-7/+114
| | | | | | the missing bits of ObjCMessageExpr. llvm-svn: 70100
* Another shot at switching PCH on by default, now that we've cleaned up some ↵Douglas Gregor2009-04-261-1/+1
| | | | | | bugs and improved performance. Will be reverted after Mr. Speedy gets done with it llvm-svn: 70099
* When calling the cleanup function specified by __attribute__((cleanup)), ↵Anders Carlsson2009-04-261-2/+13
| | | | | | make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>. llvm-svn: 70098
* Don't read all of the records in the PCH file's preprocessor block,Douglas Gregor2009-04-262-111/+46
| | | | | | | | | | | | most of which are ignored. Instead, move the __COUNTER__ value out to a PCH-level record (since it is handled eagerly) and move the header file information into the SourceManager block (which is also, currently, loaded eagerly). This results in another 17% performance improvement in the Cocoa-prefixed "Hello, World" with PCH. llvm-svn: 70097
* Fix for PR4074: allow subscripting non-lvalue arrays in C90 mode.Eli Friedman2009-04-251-2/+24
| | | | | | | I wasn't originally going to use this approach, but cases like test/Sema/expr-comma.c make things difficult. llvm-svn: 70096
* Lazily load the controlling macros for all of the headers known in theDouglas Gregor2009-04-253-7/+24
| | | | | | | | PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes us from reading 503 identifiers down to 37 and from 470 macros down to 4. It also results in an 8% performance improvement. llvm-svn: 70094
* "This fixes message sends to super in a way that both works with real code ↵Chris Lattner2009-04-251-20/+28
| | | | | | | | and passes the test in the test suite. It also fixes a crash when using recent versions of GNU libobjc and compiling modules that do not contain any constant strings but do contain a declaration of the constant string class and possible some other corner cases (thanks to Pete French for providing me with a test case for that one)." Patch by David Chisnall! llvm-svn: 70093
* minor diagnostics improvements.Chris Lattner2009-04-251-5/+5
| | | | llvm-svn: 70092
* Minor simplification.Eli Friedman2009-04-251-7/+2
| | | | llvm-svn: 70091
* Change isNullPointerConstant to be strict; hopefully this won't cause Eli Friedman2009-04-251-6/+2
| | | | | | any issues now that we have our own tgmath.h. llvm-svn: 70090
* Make VerifyIntegerConstantExpr print extension warnings for non-ICEs.Eli Friedman2009-04-251-7/+12
| | | | | | | Overall, I'm not particularly happy with the current situation regarding constant expression diagnostics, but I plan to improve it at some point. llvm-svn: 70089
* Silence gcc warnings.Eli Friedman2009-04-253-5/+5
| | | | llvm-svn: 70086
* fix PR4073 by making designated initializer checking code useChris Lattner2009-04-252-30/+17
| | | | | | | | | | | | | | VerifyIntegerConstantExpression instead of isIntegerConstantExpr. This makes it ext-warn but tolerate things that fold to a constant but that are not valid i-c-e's. There must be a bug in the i-c-e computation though, because it doesn't catch this case even with pedantic. This also switches the later code to use EvaluateAsInt which is simpler and handles everything that evaluate does. llvm-svn: 70081
* Optimize the loading of an identifier from a PCH file when given theDouglas Gregor2009-04-251-17/+35
| | | | | | | | | | identifier's ID. In this case, we know where the identifier's entry is located in the hash table (it starts right before the identifier string itself), so skip the hash table lookup and read the entry directly. The performance improvement here is, gain, hard to quantify, but it's the right thing to do. llvm-svn: 70078
* PCH optimization for the identifier table, where we separateDouglas Gregor2009-04-252-5/+62
| | | | | | | | | | | | | | | "interesting" identifiers (e.g., those where the IdentifierInfo has some useful information) from "uninteresting" identifiers (where the IdentifierInfo is just a name). This makes the hash table smaller (so searching in it should be faster) and, when loading "uninteresting" identifiers, we skip the lookup in the hash table. PCH file size is slightly smaller than before (since we don't emit the contents of the uninteresting IdentifierInfo structures). The Cocoa.h-prefixed "Hello, World" doesn't show any speedup, although we're getting to the point where system noise is a bit issue. llvm-svn: 70075
OpenPOWER on IntegriCloud