summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* It has finally happened. Spiller is now using live interval info.Evan Cheng2009-04-217-43/+96
| | | | | | This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. llvm-svn: 69743
* Fix rdar://6814047, a crash on invalid in blocks code I noticed whenChris Lattner2009-04-212-7/+8
| | | | | | working on the previous fix. llvm-svn: 69742
* Fix: <rdar://problem/6777209> false Dereference of null pointer in loop: ↵Ted Kremenek2009-04-212-1/+40
| | | | | | | | | | pointer increment/decrement preserves non-nullness When the StoreManager doesn't reason well about pointer-arithmetic, propagate the non-nullness constraint on a pointer value when performing pointer arithmetic uisng ++/--. llvm-svn: 69741
* Tweak pretty-printing of constraints.Ted Kremenek2009-04-211-1/+1
| | | | llvm-svn: 69740
* Don't bother writing a visible-declarations record for the translationDouglas Gregor2009-04-211-3/+5
| | | | | | | unit into the PCH file, since we won't be performing name lookup into it anyway. Reduces the size of the Carbon.h PCH file by ~200k. llvm-svn: 69739
* fix marking of nested blocks with the "hasBlockDeclRefExprs" toChris Lattner2009-04-212-12/+43
| | | | | | | | mark exactly the blocks which have references that are "live through". This fixes a rejects valid: rdar://6808730 - [sema] [blocks] block rejected at global scope llvm-svn: 69738
* Lazy deserialization of the declaration chains associated withDouglas Gregor2009-04-2114-89/+455
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | identifiers from a precompiled header. This patch changes the primary name lookup method for entities within a precompiled header. Previously, we would load all of the names of declarations at translation unit scope into a large DenseMap (inside the TranslationUnitDecl's DeclContext), and then perform a special "last resort" lookup into this DeclContext when we knew there was a PCH file (see Sema::LookupName). Now, when we see an identifier named for the first time, we load all of the declarations with that name that are visible from the translation unit into the IdentifierInfo's chain of declarations. Thus, the explicit "look into the translation unit's DeclContext" code is gone, and Sema effectively uses the same IdentifierInfo-based name lookup mechanism whether we are using a PCH file or not. This approach should help PCH scale with the size of the input program rather than the size of the PCH file. The "Hello, World!" application with Carbon.h as a PCH file now loads 20% of the identifiers in the PCH file rather than 85% of the identifiers. 90% of the 20% of identifiers loaded are actually loaded when we deserialize the preprocessor state. The next step is to make the preprocessor load macros lazily, which should drastically reduce the number of types, declarations, and identifiers loaded for "Hello, World". llvm-svn: 69737
* this is a warning now, return a well formed ast.Chris Lattner2009-04-212-2/+2
| | | | llvm-svn: 69731
* Refactor 'BasicStoreManager::CastRegion' and 'RegionStoreManager::CastRegion'Ted Kremenek2009-04-214-67/+61
| | | | | | | | into StoreManager::CastRegion. Both methods were practically identical, and this is core logic that is common to all StoreManagers since it defines the basic invariants of the abstract memory model. llvm-svn: 69730
* force a 32-bit triple.Chris Lattner2009-04-211-1/+1
| | | | llvm-svn: 69729
* Make sure to mark the interface as completed when we see anDaniel Dunbar2009-04-214-5/+11
| | | | | | | | | @implementation that closes a @class delcaration. - I don't know how to make a test case for this, but this strengthens the invariants that hold internally. The functionality change here is the edit to SemaDeclObjC.cpp. llvm-svn: 69728
* Force triple (test case fails for platforms with the non-fragile ABI).Daniel Dunbar2009-04-211-1/+1
| | | | llvm-svn: 69727
* We no longer accept @defs with the non-fragile ABI.Daniel Dunbar2009-04-211-0/+2
| | | | llvm-svn: 69721
* temporarily downgrade to a warning.Chris Lattner2009-04-212-3/+3
| | | | llvm-svn: 69720
* Plist diagnostics: Remove deprecated single-point locations in control-flowTed Kremenek2009-04-211-8/+1
| | | | | | pieces. llvm-svn: 69719
* Patch to diagnose use of objc's @defs in nonfragile abi.Fariborz Jahanian2009-04-213-0/+9
| | | | llvm-svn: 69710
* When turning (ashr(shl(x, n), n)) into sext(trunc(x)), the width of theDan Gohman2009-04-212-1/+30
| | | | | | | | type to truncate to should be the number of bits of the value that are preserved, not the number that are clobbered with sign-extension. This fixes regressions in ldecod. llvm-svn: 69704
* Added over-release test case.Ted Kremenek2009-04-211-1/+8
| | | | llvm-svn: 69703
* Recommit 69694 but this time also include the header changes (sorry for breakingTed Kremenek2009-04-212-1/+18
| | | | | | the build). llvm-svn: 69702
* reject sizeof(itf) when itf is a forward declared interface, or whenChris Lattner2009-04-213-5/+29
| | | | | | in non-fragile abi mode. rdar://6811884 llvm-svn: 69701
* Support --with-llvmgccdir and friends in llvmc, take 2.Mikhail Glushenkov2009-04-214-9/+62
| | | | | | | | | Should now work when building with objdir != srcdir and when llvm-gcc is not available. Thanks to Duncan Sands for testing and advice! llvm-svn: 69700
* Fix emission of static tentative definitions referenced from other static ↵Douglas Gregor2009-04-211-9/+11
| | | | | | functions llvm-svn: 69699
* Revert 69694 (use of undefined getSymbol)Daniel Dunbar2009-04-211-10/+0
| | | | llvm-svn: 69697
* More objc2's ivar layout bitmap. No change in functionality.Fariborz Jahanian2009-04-211-5/+26
| | | | llvm-svn: 69695
* Add pretty-printing for CodeTextRegions.Ted Kremenek2009-04-211-0/+10
| | | | llvm-svn: 69694
* Lexically order the implementation of MemRegion 'print' methods. No ↵Ted Kremenek2009-04-211-18/+18
| | | | | | functionality change. llvm-svn: 69688
* don't bother emitting a zero byte memset at all. We used to get themChris Lattner2009-04-211-2/+5
| | | | | | | | | | | | | | | | | in cases like this: typedef struct { short instance; char name[0]; } ATTR_LIST_ENTRY2; void test() { ATTR_LIST_ENTRY2 X = (ATTR_LIST_ENTRY2) { .instance = 7, }; } While it is safe to emit them, it is pretty silly. llvm-svn: 69687
* Use 'getAs<CodeTextRegion>' instead of 'dyn_cast<CodeTextRegion>' to handle anyTed Kremenek2009-04-211-1/+1
| | | | | | layered regions. llvm-svn: 69686
* Test case for revision 69683.Devang Patel2009-04-211-0/+32
| | | | llvm-svn: 69684
* Grammar fix.Ted Kremenek2009-04-211-1/+1
| | | | llvm-svn: 69682
* Explictly track tentative definitions within Sema, then hand thoseDouglas Gregor2009-04-2112-63/+103
| | | | | | | | | | | | | | | tentative definitions off to the ASTConsumer at the end of the translation unit. Eliminate CodeGen's internal tracking of tentative definitions, and instead hook into ASTConsumer::CompleteTentativeDefinition. Also, tweak the definition-deferal logic for C++, where there are no tentative definitions. Fixes <rdar://problem/6808352>, and will make it much easier for precompiled headers to cope with tentative definitions in the future. llvm-svn: 69681
* fix a crash on a pointless but valid zero-length memset, rdar://6808691Chris Lattner2009-04-212-13/+31
| | | | llvm-svn: 69680
* Silence warnings.Anton Korobeynikov2009-04-211-5/+5
| | | | | | Patch by Jay Foad! llvm-svn: 69679
* Drop obsolete reference to __eprintf.Anton Korobeynikov2009-04-211-2/+0
| | | | | | Patch by Jay Foad! llvm-svn: 69678
* 'The "or die" is intended to catch the case where nm returned aAnton Korobeynikov2009-04-211-3/+4
| | | | | | | | | non-zero exit status, so nm will already have printed some error messages.' Patch by Jay Foad! llvm-svn: 69677
* Fix test typo.Daniel Dunbar2009-04-211-1/+1
| | | | llvm-svn: 69676
* Use an ASTRecordLayout to compute the sizeof an interface, notDaniel Dunbar2009-04-212-7/+42
| | | | | | | | | addRecordToClass. - Among other things, this fixes a crash when applying sizeof to an interface with synthesized ivars, although things still aren't "correct" here. llvm-svn: 69675
* Add pch reader/writer support for most of DeclObjC.h. Very close to ↵Steve Naroff2009-04-215-18/+289
| | | | | | | | reading/writing all ObjC AST nodes that we will encounter in header files (still a few FIXME's). Once selector support is in place, we should be able to take this for a spin (and add test cases). llvm-svn: 69674
* Get rid of what looks like a copy-and-pasted typo.Duncan Sands2009-04-211-3/+3
| | | | | | Spotted by gcc-4.5. llvm-svn: 69673
* TLS_addr64 and TLS_addr32 define RDI and EAX. They don't use them.Rafael Espindola2009-04-212-2/+2
| | | | | | This fixes PR4002. llvm-svn: 69672
* implement semantic analysis for @synchronized, fixing a crash on invalidChris Lattner2009-04-215-70/+32
| | | | | | rdar://6810940 - @synchronized has no sema checks llvm-svn: 69670
* this time with more workingness.Chris Lattner2009-04-211-1/+0
| | | | llvm-svn: 69669
* Pass and return aggregate types directly to function calls.Sanjiv Gupta2009-04-212-1/+42
| | | | llvm-svn: 69668
* add support for goto checking and @synchronized blocks,Chris Lattner2009-04-215-4/+36
| | | | | | rdar://6810106 llvm-svn: 69667
* fix massive testsuite failures from Alexei's patch due to inverted logic.Chris Lattner2009-04-211-9/+7
| | | | llvm-svn: 69666
* Handle direct aggregate type arguments.Sanjiv Gupta2009-04-212-51/+36
| | | | llvm-svn: 69665
* Split preprocessor initialization logic out of clang-cc intoChris Lattner2009-04-215-486/+625
| | | | | | libfrontend. Patch by Alexei Svitkine! llvm-svn: 69664
* document new form of -fdiagnostics-print-source-range-inChris Lattner2009-04-211-3/+4
| | | | llvm-svn: 69663
* rename -fprint-source-range-info -> -fdiagnostics-print-source-range-info.Chris Lattner2009-04-213-2/+9
| | | | | | Temporarily accept both of them, I'll rip out the old one after awhile. llvm-svn: 69662
* Fix PR4027 + rdar://6808859, we were rejecting implicit casts ofChris Lattner2009-04-212-0/+7
| | | | | | aggregates even though we already accept explicit ones. Easy fix. llvm-svn: 69661
OpenPOWER on IntegriCloud