| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 62704
|
| |
|
|
|
|
| |
David Chisnall
llvm-svn: 62703
|
| |
|
|
|
|
| |
groups, and fix misdeclaration of some -W options.
llvm-svn: 62702
|
| |
|
|
| |
llvm-svn: 62701
|
| |
|
|
| |
llvm-svn: 62700
|
| |
|
|
| |
llvm-svn: 62698
|
| |
|
|
|
|
| |
look for crt3.o appropriately.
llvm-svn: 62694
|
| |
|
|
| |
llvm-svn: 62677
|
| |
|
|
| |
llvm-svn: 62676
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 62674
|
| |
|
|
| |
llvm-svn: 62673
|
| |
|
|
| |
llvm-svn: 62672
|
| |
|
|
| |
llvm-svn: 62671
|
| |
|
|
| |
llvm-svn: 62670
|
| |
|
|
| |
llvm-svn: 62669
|
| |
|
|
|
|
| |
file, just load them directly as ints.
llvm-svn: 62668
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 62666
|
| |
|
|
|
|
| |
this removes 4266 calls to LookupDecl.
llvm-svn: 62662
|
| |
|
|
|
|
|
|
| |
- Toolchain is responsible for providing list of prefixes to search.
- Implement -print-file-name=xxx and -print-prog-name=xxx driver options.
llvm-svn: 62659
|
| |
|
|
| |
llvm-svn: 62656
|
| |
|
|
| |
llvm-svn: 62655
|
| |
|
|
| |
llvm-svn: 62654
|
| |
|
|
|
|
|
|
|
|
|
| |
- For now forces generation of plist files, need to think about the
right interface.
- Changed -fsyntax-only mode to be its own phase (more consistent).
- Add -WA, for passing options verbatim to analyzer.
llvm-svn: 62649
|
| |
|
|
|
|
| |
plist file per translation unit that contains all of the diagnostics.
llvm-svn: 62647
|
| |
|
|
|
|
| |
No change in functionality.
llvm-svn: 62646
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 62640
|
| |
|
|
| |
llvm-svn: 62637
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
individual checker options.
llvm-svn: 62634
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 62621
|
| |
|
|
| |
llvm-svn: 62620
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- This is a hack to allow the Darwin linker to get -final_output when
doing universal builds; the mechanism should be generalized.
- Handle multiple redundant -arch arguments correctly.
- Forward -arch_multiple and -final_output to gcc when necessary.
- Simplified implementation of derived gcc tools.
llvm-svn: 62618
|
| |
|
|
| |
llvm-svn: 62614
|
| |
|
|
|
|
| |
caused by my previous commit.
llvm-svn: 62613
|
| |
|
|
|
|
|
|
| |
When using a BumpPtrAllocator, this reduces malloc overhead from 2.2->1.9% (for Cocoa.h).
At this point, malloc() has dropped the fourth most expensive routine (behind Preprocessor::HandleIdentifier()).
llvm-svn: 62612
|
| |
|
|
| |
llvm-svn: 62611
|
| |
|
|
| |
llvm-svn: 62609
|
| |
|
|
|
|
| |
case.
llvm-svn: 62607
|
| |
|
|
|
|
| |
Add debug hook to DeclContext.
llvm-svn: 62605
|
| |
|
|
| |
llvm-svn: 62601
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function DeclaratorChunk in common cases. This uses a fixed array in
Declarator when it is small enough for the first function declarator chunk
in a declarator.
This eliminates all malloc/free traffic from DeclaratorChunk::getFunction
when running on Cocoa.h except for five functions: signal/bsd_signal/sigset,
which have multiple Function DeclChunk's, and
CFUUIDCreateWithBytes/CFUUIDGetConstantUUIDWithBytes, which take more than
16 arguments.
This patch was pair programmed with Steve.
llvm-svn: 62599
|
| |
|
|
| |
llvm-svn: 62586
|
| |
|
|
|
|
| |
struct.
llvm-svn: 62585
|
| |
|
|
|
|
|
|
|
| |
va_list is a struct, like x86-64.
If anyone has a better idea for how to do the check in the if
statements, suggestions are welcome.
llvm-svn: 62582
|
| |
|
|
|
|
| |
document both it and DeclContext::addDecl properly
llvm-svn: 62581
|
| |
|
|
|
|
|
|
| |
builtins.
Also, a minor tweak to va_copy for consistency.
llvm-svn: 62574
|
| |
|
|
|
|
| |
now fully independent of the gcc driver when targetting Darwin/x86.
llvm-svn: 62570
|