summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Mark another TypeForDecl const and make getObjCInterfaceType's argument const.Daniel Dunbar2009-04-226-10/+9
| | | | llvm-svn: 69772
* Rework the shadow struct that is layed out for Objective-C classes.Daniel Dunbar2009-04-224-64/+128
| | | | | | | | | | | | | | | | | | | - Superclasses are now always laid out their shadow structure at the first field. - Prior to this, the entire class heirarchy was flattened into a single structure which meant that alignment, padding, and bitfields weren't packed correctly (the ASTRecordLayout was correct however, which meant our debug info didn't coincide with ivar offsets, for example). - This is still very suboptimal, but I believe the ivar layout itself is now at least close to correct. - <rdar://problem/6773388> error: objc[29823]: layout bitmap sliding backwards llvm-svn: 69771
* Fix rdar://6814950 - stdint.h isn't "-pedantic -std=c89" clean,Chris Lattner2009-04-223-3/+12
| | | | | | | | | | | | | | | | | | | | by marking the predefines buffer as a system header. The problem with stdint is that it was getting problems like this: /Volumes/Projects/cvs/llvm/Debug/lib/clang/1.0/include/stdint.h:43:9: warning: 'long long' is an extension when C99 mode is not enabled typedef __INT64_TYPE__ int64_t; ^ <built-in>:73:29: note: instantiated from: #define __INT64_TYPE__ long long ^ We correctly silence warnings in system headers, but only if the spelling location of the token came from the system header. This is designed so that if you use a system macro in your code that you don't get punished for its definition. This is all cool except that the predefines buffer wasn't considered a system header. llvm-svn: 69770
* move 64-bit abi functions to lazy model, everything is lazy now, yay.Chris Lattner2009-04-221-75/+81
| | | | llvm-svn: 69767
* remove the last of the non-lazy objc runtime functions for the 32-bit ABI,Chris Lattner2009-04-221-54/+56
| | | | | | 7 left for 64-bit ABI. llvm-svn: 69766
* number of non-lazy runtime functions from 9 -> 4.Chris Lattner2009-04-221-44/+47
| | | | llvm-svn: 69765
* make message send functions lazy, we're down from 14 non-lazy functions to 9.Chris Lattner2009-04-221-64/+65
| | | | llvm-svn: 69764
* move more EH stuff to being lazily created. An empty .m file now Chris Lattner2009-04-221-52/+54
| | | | | | produces just 14 dead "declares" in llvm ir instead of 19. llvm-svn: 69763
* make try/catch objc runtime functions be lazily generated.Chris Lattner2009-04-221-22/+26
| | | | | | rdar://6809612 llvm-svn: 69762
* rename testChris Lattner2009-04-221-0/+0
| | | | llvm-svn: 69761
* Fix a problem with objc foreach loop. It turns out that objc mode changesChris Lattner2009-04-222-10/+18
| | | | | | | | | | | | for scoping to match C99 even when in C89 mode. This patch fixes this (eliminating a "redefinition of thisKey" error), and also prevents non-sensical diagnostics in -pedantic mode like this: t.m:7:8: warning: variable declaration in for loop is a C99-specific feature for (id thisKey in keys) ; ^ llvm-svn: 69760
* Test PCH support for VLAsDouglas Gregor2009-04-223-2/+5
| | | | llvm-svn: 69758
* Eliminate a FIXME in one of the PCH test casesDouglas Gregor2009-04-221-2/+2
| | | | llvm-svn: 69757
* Fix some mishandling of the attr(gnu_inline) mode when used withChris Lattner2009-04-225-25/+23
| | | | | | | | | | extern. Previously we would warn about it and ignore the attribute. This is incorrect, it should be handled as a c89 "extern inline" function. Many thanks to Matthieu Castet for pointing this out and beating me over the head until I got it. PR3988: extern inline function are not externally visible llvm-svn: 69756
* Lazy deserialization of macro definitions for precompiled headers.Douglas Gregor2009-04-215-55/+161
| | | | | | | | | | | | | | | This optimization improves performance on the Carbon-prefixed "Hello, World!" example by 57%. For reference, we're now about 2.25x faster than GCC PCH. We're also pulling in far less of the PCH file: *** PCH Statistics: 411/20693 types read (1.986179%) 2553/59230 declarations read (4.310316%) 1093/44646 identifiers read (2.448148%) 1/32954 statements read (0.003035%) 21/6187 macros read (0.339421%) llvm-svn: 69755
* Fix crash reported in PR 3991. The analyzer doesn't reason about ObjCKVCExpr.Ted Kremenek2009-04-212-0/+68
| | | | llvm-svn: 69754
* Update Xcode project with recently added files.Steve Naroff2009-04-211-0/+10
| | | | llvm-svn: 69753
* use predicate instead of hand-rolled loopChris Lattner2009-04-211-11/+4
| | | | llvm-svn: 69752
* This patch is largely due to Zhongxing Xu. I've simply applied it because ofTed Kremenek2009-04-211-11/+31
| | | | | | | | some refactoring I did recently to StoreManager. StoreManager::CastRegion: Handle casts to void* by stripping TypedViewRegions. llvm-svn: 69751
* apply Eli's patch to fix PR4008, with a testcase. Thanks Eli!Chris Lattner2009-04-212-7/+20
| | | | llvm-svn: 69750
* De-pImpl-ify ScalarEvolution. The pImpl pattern doesn't provide muchDan Gohman2009-04-212-459/+274
| | | | | | | practical benefit in the case of ScalarEvolution, and it's otherwise a nuisance. llvm-svn: 69749
* Resolve merge conflict better.Mike Stump2009-04-211-9/+9
| | | | llvm-svn: 69748
* fix PR4026: Clang can't codegen __func__ without implicit castChris Lattner2009-04-212-6/+14
| | | | llvm-svn: 69747
* Tighten up blocks type checking. This was discussed back in theMike Stump2009-04-216-14/+22
| | | | | | r56595 timeframe, but left undone. Radar 6812711 llvm-svn: 69745
* Lazy deserialization of identifiers in PCH files fixed a problem withDouglas Gregor2009-04-211-9/+1
| | | | | | name lookup of structures declared within other structures. llvm-svn: 69744
* 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
OpenPOWER on IntegriCloud