- Jan 22, 2009
-
-
Ted Kremenek authored
Fix RegionStore::getLValueElement() to handle the case when the base region is not an ElementRegion (also do some cleanups of its core logic). This gets array-struct.c to work with RegionStore. llvm-svn: 62781
-
Chris Lattner authored
descriptive. llvm-svn: 62775
-
-
Ted Kremenek authored
SymbolReaper::isLive(SymbolRef) now always returns true for SymbolRegionRvalues because these represent the symbolic values for parameters/globals upon entry to the function. These values are always ;live' because they represent constraints on the context of how the function was called. This will be useful for both summary generation but is also necessary to get RegionStore's lazy-binding of locations to symbols to work in practice with RemoveDeadBindings. llvm-svn: 62771
-
Ted Kremenek authored
their associated APIs. We no longer need separate SymbolData objects for fields, variables, etc. Instead, we now associated symbols with the "rvalue" of a MemRegion (i.e., the value stored at that region). Now we only have two kinds of SymbolData objects: SymbolRegionRValue and SymbolConjured. This cleanup also makes the distinction between a SymbolicRegion and a symbolic value that is a location much clearer. A SymbolicRegion represents a chunk of symbolic memory, while a symbolic location is just a "pointer" with different possible values. Without any specific knowledge, a symbolic location resolves (i.e., via a dereference) to a SymbolicRegion. In the future, when we do better alias reasoning, a symbolic location can become an alias for another location, thus merging the constraints on the referred SymbolicRegion with the other region. llvm-svn: 62769
-
Sebastian Redl authored
Uncomment the define in Ownership.h to disable the smart pointers. Disabled, the smart pointers no longer contain a pointer to the action, and no longer have special destruction or copying semantics. They are, compiler willing, raw pointers or ActionResult equivalents. llvm-svn: 62767
-
Douglas Gregor authored
llvm-svn: 62766
-
Mike Stump authored
llvm-svn: 62744
-
Douglas Gregor authored
designated initializers. This implementation should cover all of the constraints in C99 6.7.8, including long, complex designations and computing the size of incomplete array types initialized with a designated initializer. Please see the new test-case and holler if you find cases where this doesn't work. There are still some wrinkles with GNU's anonymous structs and anonymous unions (it isn't clear how these should work; we'll just follow GCC's lead) and with designated initializers for the members of a union. I'll tackle those very soon. CodeGen is still nonexistent, and there's some leftover code in the parser's representation of designators that I'll also need to clean up. llvm-svn: 62737
-
Fariborz Jahanian authored
the two Next's objc runtimes. More comments. llvm-svn: 62735
-
Daniel Dunbar authored
- Although gross, this is needed currently to ensure that we produce well formed debug information (to match pace with the assertions being added to DebugInfo in LLVM). llvm-svn: 62734
-
Fariborz Jahanian authored
No change in functionality. llvm-svn: 62729
-
- Jan 21, 2009
-
-
Ted Kremenek authored
llvm-svn: 62727
-
rdar://problem/6512717Ted Kremenek authored
Fix <rdar://problem/6512717> by correctly reading the right offset in the token data in PTHLexer::getSourceLocation(). llvm-svn: 62725
-
Steve Naroff authored
Fix Sema::Owned(ExprResult) to not use a ternary operator. Necessary to work around a Visual Studio compiler bug. Thanks to Doug Gregor for the suggestion. llvm-svn: 62723
-
Ted Kremenek authored
Static Analyzer: Replace LiveSymbols/DeadSymbols sets with a new object called "SymbolReaper". Right now it just consolidates the two and cleans up some client code, but shortly it will be used to enable "lazy computation" of live symbols for use with RegionStore. llvm-svn: 62722
-
Fariborz Jahanian authored
the new ObjC's abi. llvm-svn: 62721
-
Chris Lattner authored
This avoids call overhead and extraneous switches when parsing very simple declspecs like "int" "void" etc, which are pretty common :) llvm-svn: 62711
-
Chris Lattner authored
llvm-svn: 62708
-
Chris Lattner authored
and more idiomatic. llvm-svn: 62705
-
Chris Lattner authored
llvm-svn: 62704
-
Chris Lattner authored
David Chisnall llvm-svn: 62703
-
Chris Lattner authored
llvm-svn: 62677
-
Chris Lattner authored
llvm-svn: 62676
-
Chris Lattner authored
tells us whether Preprocessor::HandleIdentifier needs to be called. Because this method is only rarely needed, this saves a call and a bunch of random checks. This drops the time in HandleIdentifier from 3.52ms to .98ms on cocoa.h on my machine. llvm-svn: 62675
-
Chris Lattner authored
llvm-svn: 62674
-
-
Chris Lattner authored
llvm-svn: 62672
-
Chris Lattner authored
llvm-svn: 62671
-
Chris Lattner authored
file, just load them directly as ints. llvm-svn: 62668
-
Ted Kremenek authored
Because the RegionStore can reason about values beyond the reasoning power of BasicStore, this patch splits some of the test cases for the retain/release checker to have versions that are handled by RegionStore (more warnings) and BasicStore (less warnings). llvm-svn: 62667
-
Anders Carlsson authored
llvm-svn: 62666
-
Chris Lattner authored
this removes 4266 calls to LookupDecl. llvm-svn: 62662
-
Anders Carlsson authored
llvm-svn: 62656
-
Ted Kremenek authored
Static Analyzer: When generating plists for errors reports, generate one plist file per translation unit that contains all of the diagnostics. llvm-svn: 62647
-
Fariborz Jahanian authored
No change in functionality. llvm-svn: 62646
-
Steve Naroff authored
No functionality change. llvm-svn: 62640
-
rdar://problem/6510344Ted Kremenek authored
Fix: <rdar://problem/6510344> [pth] PTH slows down regular lexer considerably (when it has substantial work) Changes to IdentifierTable: - High-level summary: StringMap never owns IdentifierInfos. It just references them. - The string map now has StringMapEntry<IdentifierInfo*> instead of StringMapEntry<IdentifierInfo>. The IdentifierInfo object is allocated using the same bump pointer allocator as used by the StringMap. Changes to IdentifierInfo: - Added an extra pointer to point to the StringMapEntry<IdentifierInfo*> in the string map. This pointer will be null if the IdentifierInfo* is *only* used by the PTHLexer (that is it isn't in the StringMap). Algorithmic changes: - Non-PTH case: IdentifierInfo::get() will always consult the StringMap first to see if we have an IdentifierInfo object. If that StringMapEntry references a null pointer, we allocate a new one from the BumpPtrAllocator and update the reference in the StringMapEntry. - PTH case: We do the same lookup as with the non-PTH case, but if we don't get a hit in the StringMap we do a secondary lookup in the PTHManager for the IdentifierInfo. If we don't find an IdentifierInfo we create a new one as in the non-PTH case. If we do find and IdentifierInfo in the PTHManager, we update the StringMapEntry to refer to it so that the IdentifierInfo will be found on the next StringMap lookup. This way we only do a binary search in the PTH file at most once for a given IdentifierInfo. This greatly speeds things up for source files containing a non-trivial amount of code. Performance impact: While these changes do add some extra indirection in IdentifierTable to access an IdentifierInfo*, I saw speedups even in the non-PTH case as well. Non-PTH: For -fsyntax-only on Cocoa.h, we see a 6% speedup. PTH (with Cocoa.h in token cache): 11% speedup. I also did an experiment where we did -fsyntax-only on a source file including a large header and Cocoa.h, but the token cache did not contain the larger header. For this file, we were seeing a performance *regression* when using PTH of 3% over non-PTH. Now we are seeing a performance improvement of 9%! Tests: The serialization tests are now failing. I looked at this extensively, and I my belief is that this change is unmasking a bug rather than introducing a new one. I have disabled the serialization tests for now. llvm-svn: 62636
-
- Jan 20, 2009
-
-
Sebastian Redl authored
This allows more concise syntax when allocating an object using the ASTContext's allocator. Convert a few allocations to this operator to for test purposes. llvm-svn: 62623
-
Anders Carlsson authored
llvm-svn: 62620
-