Ted Kremenek
62224c1d7f
Add more PTH diagnostics for invalid PTH files, etc.
...
llvm-svn: 63232
2009-01-28 21:02:43 +00:00
Ted Kremenek
3b0589e4b4
Enhance PTHManager::Create() to take an optional Diagnostic* argument that can be used to report issues such as a missing PTH file.
...
llvm-svn: 63231
2009-01-28 20:49:33 +00:00
Ted Kremenek
5241832d1d
Fix TextDiagnosticPrinter::HandleDiagnostic to handle invalid FullSourceLocs that do not have a SourceManager.
...
llvm-svn: 63230
2009-01-28 20:47:47 +00:00
Ted Kremenek
bf16554640
Add method FullSourceLoc::getBufferData().
...
llvm-svn: 63229
2009-01-28 20:46:26 +00:00
Ted Kremenek
3587d0b762
Tweak doxygen comment. No functionality change.
...
llvm-svn: 63228
2009-01-28 20:45:37 +00:00
Steve Naroff
16c8e598ae
Name change (isTypeName->getTypeName).
...
Since it doesn't return a bool, is shouldn't be prefixed with 'is'.
llvm-svn: 63226
2009-01-28 19:39:02 +00:00
Daniel Dunbar
ad0d48d372
Fix test case (for -### printing version)
...
llvm-svn: 63223
2009-01-28 19:30:43 +00:00
Daniel Dunbar
36ccb30a35
ccc: Support -v; invent a version number for ccc for now, will be
...
shared with clang eventually.
llvm-svn: 63220
2009-01-28 19:26:20 +00:00
Steve Naroff
b04867265c
Change Parser::ParseFunctionDeclarator() to annotate typename tokens.
...
This removes ~10% of the calls to Sema::isTypeName(), which amount to a little less than a 1% reduction in usertime (for Cocoa.h).
llvm-svn: 63219
2009-01-28 19:16:40 +00:00
Fariborz Jahanian
b042a59230
Some refactoring of common code. No change in functionality.
...
llvm-svn: 63218
2009-01-28 19:12:34 +00:00
Sebastian Redl
ed8f200318
Implement pointer to member handling in static_cast.
...
Fix a stupid mistake in UnwrapSimilarPointers that made any two member pointers compatible as long as the pointee was the same.
Make a few style corrections as suggested by Chris.
llvm-svn: 63215
2009-01-28 18:33:18 +00:00
Douglas Gregor
fb03466388
Complete semantic checking for typedef redeclarations in C++. The
...
rules are slightly different than in C, and now we handle both
dialects properly.
llvm-svn: 63211
2009-01-28 17:15:10 +00:00
Steve Naroff
aec0f37d11
Remove 'NamespaceNameOnly' argument to Sema::LookupDecl(). It is unused.
...
Even though Sema::LookupDecl() is deprecated, it's still used all over the place. Simplifying the interface will make it easier to understand/optimize/convert.
llvm-svn: 63210
2009-01-28 16:09:22 +00:00
Steve Naroff
49f97d7eb2
Remove 'enableLazyBuiltinCreation' argument to Sema::LookupDecl(). It is unused.
...
Even though Sema::LookupDecl() is deprecated, it's still used all over the place. Simplifying the interface will make it easier to understand/optimize/convert.
llvm-svn: 63208
2009-01-28 15:51:12 +00:00
Ted Kremenek
cdca288cf8
Updated checker build.
...
llvm-svn: 63200
2009-01-28 15:05:42 +00:00
Ted Kremenek
882214b676
Update comment.
...
llvm-svn: 63192
2009-01-28 07:10:33 +00:00
Chris Lattner
22ebe7ba66
long long and double have 64-bit alignment on x86-64.
...
llvm-svn: 63191
2009-01-28 06:58:19 +00:00
Chris Lattner
5fdc227326
add some basic file headers
...
llvm-svn: 63188
2009-01-28 06:31:57 +00:00
Ted Kremenek
4daeccf28f
retain/release checker: Improve diagnostics to indicate that CF objects are not automatically garbage collected.
...
llvm-svn: 63187
2009-01-28 06:25:48 +00:00
Ted Kremenek
f0ec316a04
retain/release checker: Indicate whether a tracked object is a Core Foundation or Objective-C object.
...
llvm-svn: 63186
2009-01-28 06:06:36 +00:00
Chris Lattner
e1d49c2572
add diagnostics files to xcode proj
...
llvm-svn: 63185
2009-01-28 06:02:52 +00:00
Ted Kremenek
bdaa384453
retain/release checker: More diagnostic refactoring.
...
llvm-svn: 63184
2009-01-28 06:01:42 +00:00
Ted Kremenek
aeb115f93a
retain/release checker: Embed an "object type" into the RetEffect/RetVal objects to help distinguish between Objective-C and Core Foundation objects (for better diagnostics).
...
llvm-svn: 63183
2009-01-28 05:56:51 +00:00
Chris Lattner
64d8fc25d6
fix a crash I introduced, thanks to Ted for the awesome reduced
...
testcase :)
llvm-svn: 63182
2009-01-28 05:42:38 +00:00
Ted Kremenek
21114f21c4
retain/release checker: More cleanups (no real functionality change).
...
llvm-svn: 63181
2009-01-28 05:29:13 +00:00
Ted Kremenek
ff3c2bdfee
Fix diagnostic truncated by my last patch.
...
llvm-svn: 63180
2009-01-28 05:18:08 +00:00
Ted Kremenek
758fda632b
retain/release checker: More diagnostic refactoring.
...
llvm-svn: 63179
2009-01-28 05:15:02 +00:00
Ted Kremenek
c4118ac79c
retain/release checker: Output the name of the function that allocates an object.
...
llvm-svn: 63178
2009-01-28 05:06:46 +00:00
Ted Kremenek
424c61ff6d
Refactor some diagnostic code to use raw_string_ostream. No functionality change.
...
llvm-svn: 63177
2009-01-28 04:47:13 +00:00
Ted Kremenek
99ae4120d6
Remove '#if 0' code.
...
llvm-svn: 63176
2009-01-28 04:37:52 +00:00
Ted Kremenek
062115af59
Patch by Alexei Svitkine: Refactor Sema::ParseAST API to allow clients to pass as an argument a TranslationUnit object whose contents live beyond the call to ParseAST.
...
llvm-svn: 63175
2009-01-28 04:29:29 +00:00
Mike Stump
5d1ebe90b3
Add a preliminary version number.
...
llvm-svn: 63168
2009-01-28 02:43:35 +00:00
Daniel Dunbar
6ec8a4d9e3
ABITest: Support --test-layout option for generating
...
size/alignment/offsetof based tests of types instead of calling
convention tests.
llvm-svn: 63167
2009-01-28 02:01:23 +00:00
Fariborz Jahanian
3d3426f321
Set visibility of ivar offset symbols according to
...
accessibility of the ivar (related to objc2's
non-fragile abi).
llvm-svn: 63166
2009-01-28 01:36:42 +00:00
Fariborz Jahanian
40a4bcd49b
Generation of ivar-offset symbols in objc2's non-fragile abi.
...
Changed section names for meta-data (to match current gcc).
llvm-svn: 63163
2009-01-28 01:05:23 +00:00
Ted Kremenek
1502b7e288
On Windows use a BumpPtrAllocator for the UniqueFileContainer's StringMap.
...
llvm-svn: 63162
2009-01-28 01:01:07 +00:00
Nuno Lopes
b81d94ff58
add test for PR2502, which was already fixed some time ago
...
llvm-svn: 63160
2009-01-28 00:44:33 +00:00
Ted Kremenek
bb2f25b40f
FileManager: Use a BumpPtrAllocator for the StringMaps DirEntries and FileEntries.
...
Performance impact (clang -fsyntax-only INPUTS/Cocoa_h.m):
non-PTH: 0.4% improvement
PTH: 0.8% improvement
llvm-svn: 63159
2009-01-28 00:44:12 +00:00
Nuno Lopes
bb537dc189
fix PR3427: fix debuginfo for incomplete array types
...
llvm-svn: 63158
2009-01-28 00:35:17 +00:00
Ted Kremenek
5c04bd81ed
Add a some comments to designate Windows-specific/Unix-specific code. No functionality change.
...
llvm-svn: 63157
2009-01-28 00:27:31 +00:00
Steve Naroff
99c0cdf899
Finish making AST BumpPtrAllocation runtime configurable (based on -disable-free).
...
snaroff% time ../../Release-Asserts/bin/clang INPUTS/Cocoa_h.m
0.179u 0.051s 0:00.23 95.6% 0+0k 0+0io 0pf+0w
snaroff% time ../../Release-Asserts/bin/clang INPUTS/Cocoa_h.m -disable-free
0.169u 0.052s 0:00.22 95.4% 0+0k 0+0io 0pf+0w
llvm-svn: 63153
2009-01-27 23:20:32 +00:00
Sebastian Redl
a5a77a6dc6
Add handling of member pointers to reinterpret_cast.
...
llvm-svn: 63150
2009-01-27 23:18:31 +00:00
Fariborz Jahanian
e19a1f15ae
After talking to our runtime guru, I added a comment.
...
llvm-svn: 63141
2009-01-27 22:27:56 +00:00
Ted Kremenek
3efd355b9d
Updated checker build.
...
llvm-svn: 63140
2009-01-27 22:24:33 +00:00
Steve Naroff
096bab711e
Convert types over to placement new() that takes an ASTContext.
...
Also changed FunctionTypeProto to be allocated with 8-byte alignment (noticed by Doug). I couldn't think of any reason to allocate on 16-byte boundaries. If anyone remembers why we were doing this, let me know!
llvm-svn: 63137
2009-01-27 22:08:43 +00:00
Steve Naroff
13ae6f47cd
Remove many references to ASTContext::getAllocator(), replacing them with calls to the recently added placement new (which uses ASTContext's allocator for memory). Also added ASTContext::Deallocate().
...
This will simplify runtime replacement of ASTContext's allocator. Keeping the allocator private (and removing getAllocator() entirely) is also goodness.
llvm-svn: 63135
2009-01-27 21:25:57 +00:00
Daniel Dunbar
f4a0cba545
ccc/Darwin/clang: Fix a mistranslation for the llvm-backend; llvm-gcc
...
doesn't set the relocation model when -mdynamic-no-pic is present.
llvm-svn: 63129
2009-01-27 20:42:58 +00:00
Anders Carlsson
570c357ded
If an input constraint refers to an output constraint, it should have the same constraint info as the output constraint. Fixes PR3417
...
llvm-svn: 63127
2009-01-27 20:38:24 +00:00
Fariborz Jahanian
7415caa3d4
ivar meta-data generation for nonfragile-abi.
...
Still more work to do in this area.
llvm-svn: 63126
2009-01-27 19:38:51 +00:00
Daniel Dunbar
2ad3ff0bd6
ccc: Normalize machine name to i386 for platforms which report the
...
machine as x86_64.
llvm-svn: 63122
2009-01-27 19:29:51 +00:00
Chris Lattner
75441a3870
eliminate some random .ll file outputs
...
llvm-svn: 63117
2009-01-27 18:56:08 +00:00
Fariborz Jahanian
7ec8851c89
Fixed a typo in getPreferredTypeAlign method.
...
llvm-svn: 63116
2009-01-27 18:55:00 +00:00
Chris Lattner
7687a998a4
add new headers
...
llvm-svn: 63113
2009-01-27 18:34:53 +00:00
Chris Lattner
660419289a
Add the new .def files
...
llvm-svn: 63112
2009-01-27 18:34:32 +00:00
Chris Lattner
7368d581c1
Split the single monolithic DiagnosticKinds.def file into one
...
.def file for each library. This means that adding a diagnostic
to sema doesn't require all the other libraries to be rebuilt.
Patch by Anders Johnsen!
llvm-svn: 63111
2009-01-27 18:30:58 +00:00
Ted Kremenek
422d81dcd4
Fix bug in BasicStore::getLValueElement where if the base of an array subscript expression was an ElementRegion we stacked another ElementRegion on top of that.
...
This fixes PR 3422.
llvm-svn: 63110
2009-01-27 18:29:03 +00:00
Chris Lattner
a3402cd524
add a new "getPreferredTypeAlign" method to return the preferred alignment
...
of a type. The implementation is currently something of a hack, but is
sufficient for now and allows clients to be built on it.
llvm-svn: 63108
2009-01-27 18:08:34 +00:00
Eli Friedman
3f66b84c86
Support CodeGen for __extension__ operator on aggregates.
...
llvm-svn: 63101
2009-01-27 09:03:41 +00:00
Eli Friedman
eb3a9b03ab
Fix for PR3418: make sure to handle the RHS of expressions starting with
...
__extension__. This sort of construct shows up in the gcc source code.
llvm-svn: 63100
2009-01-27 08:43:38 +00:00
Chris Lattner
f1ca7d3e02
Introduce a new PresumedLoc class to represent the concept of a location
...
as reported to the user and as manipulated by #line. This is what __FILE__,
__INCLUDE_LEVEL__, diagnostics and other things should follow (but not
dependency generation!).
This patch also includes several cleanups along the way:
- SourceLocation now has a dump method, and several other places
that did similar things now use it.
- I cleaned up some code in AnalysisConsumer, but it should probably be
simplified further now that NamedDecl is better.
- TextDiagnosticPrinter is now simplified and cleaned up a bit.
This patch is a prerequisite for #line, but does not actually provide
any #line functionality.
llvm-svn: 63098
2009-01-27 07:57:44 +00:00
Chris Lattner
c360bf2e48
rename getFullFilePos -> getFileOffset.
...
llvm-svn: 63097
2009-01-27 06:27:13 +00:00
Ted Kremenek
dd62885f40
Use string comparison rather than '=='.
...
llvm-svn: 63095
2009-01-27 05:34:28 +00:00
Chris Lattner
bf648a3a63
Fix a bug that I noticed by inspection.
...
llvm-svn: 63094
2009-01-27 05:34:03 +00:00
Chris Lattner
6d61c3e6df
make -print-stats print stats about the amount of the SLoc
...
address space we used up. Some interesting data:
For c99-intconst-1.c:
6912762 SLocEntry's allocated, 25592386B of Sloc address space used.
For cocoa.h:
26469 SLocEntry's allocated, 10278752B of Sloc address space used.
For carbon.h:
27364 SLocEntry's allocated, 12398141B of Sloc address space used.
Clearly 2G of sloc address space should be enough for anyone?!
llvm-svn: 63093
2009-01-27 05:22:43 +00:00
Chris Lattner
8d3f4a4b2f
improvements for GNU objc runtime support, patch by David Chisnall!
...
llvm-svn: 63092
2009-01-27 05:06:01 +00:00
Daniel Dunbar
d678d3d970
x86_64: Classify __m64 and __m128 "correctly".
...
- gcc appears to be classifying <1 x double> as INTEGER which is
odd. Will investigate later.
llvm-svn: 63086
2009-01-27 02:01:34 +00:00
Chris Lattner
9b415d6142
add SparcV8 asm register info support. Patch by Ben Lickly!
...
llvm-svn: 63085
2009-01-27 01:58:38 +00:00
Ted Kremenek
a3f462e49a
PathDiagnostics:
...
- Add the distinction between the 'bug type' and the 'bug description'
HTMLDiagnostics:
- Output the bug type field as HTML comments
scan-build:
- Use the bug type field instead of the bug description for the HTML table.
- Radar filing now automatically picks up the bug description in the title (addresses <rdar://problem/6265970>)
llvm-svn: 63084
2009-01-27 01:53:39 +00:00
Daniel Dunbar
0f4aa3cbb1
Implement support for coercion to wider types during ABI handling.
...
- Code quality is poor, but simple.
llvm-svn: 63083
2009-01-27 01:36:03 +00:00
Ted Kremenek
725fb43012
Have 'Analyzer Failures' files be named to reflect the category of problem.
...
llvm-svn: 63080
2009-01-27 01:19:08 +00:00
Ted Kremenek
8d178f4357
PTH: Use Token::setLiteralData() to directly store a pointer to cached spelling data in the PTH file. This removes a ton of code for looking up spellings using sourcelocations in the PTH file. This simplifies both PTH-generation and reading.
...
Performance impact for -fsyntax-only on Cocoa.h (with Cocoa.h in the PTH file):
- PTH generation time improves by 5%
- PTH reading improves by 0.3%.
llvm-svn: 63072
2009-01-27 00:01:05 +00:00
Fariborz Jahanian
d0e8e85afc
Added a FIXME.
...
llvm-svn: 63071
2009-01-26 23:49:05 +00:00
Daniel Dunbar
7a88d1fcc4
Fix definition of __builtin_ia32_vec_set_v2di and de-XFAIL
...
builtins-x86.c.
llvm-svn: 63069
2009-01-26 23:43:02 +00:00
Daniel Dunbar
fd346a3644
Pull EmitReturnBlock out of FinishFunction and catch unified return
...
case correctly.
llvm-svn: 63068
2009-01-26 23:27:52 +00:00
Fariborz Jahanian
2612e149ef
Build method-description-list for category meta-data
...
as well (for nonfragile-abi).
llvm-svn: 63062
2009-01-26 22:58:07 +00:00
Douglas Gregor
f829825d04
Some micro-optimizations for DISABLE_SMART_POINTERS:
...
- When it's safe, ActionResult uses the low bit of the pointer for
the "invalid" flag rather than a separate "bool" value. This keeps
GCC from generating some truly awful code, for a > 3x speedup in the
result-passing microbenchmark.
- When DISABLE_SMART_POINTERS is defined, store an ActionResult
within ASTOwningResult rather than an ASTOwningPtr. Brings the
performance benefits of the above to smart pointers with
DISABLE_SMART_POINTERS defined.
Sadly, these micro-benchmark performance improvements don't seem to
make much of a difference on Cocoa.h right now. However, they're
harmless and might help with future optimizations.
llvm-svn: 63061
2009-01-26 22:44:13 +00:00
Chris Lattner
9240b3eccb
rename getSpelledCharacterAt to getSpellingOfSingleCharacterNumericConstant,
...
optimize it to use the LiteralData when possible.
llvm-svn: 63060
2009-01-26 22:36:52 +00:00
Chris Lattner
d381721810
Fix a bug I introduced in my changes, which caused MeasureTokenLength
...
to crash when given an instantiation location. Thanks to Fariborz for
the testcase.
llvm-svn: 63057
2009-01-26 22:24:27 +00:00
Sebastian Redl
b44ab5f25d
Add support for member pointers to const_cast.
...
llvm-svn: 63055
2009-01-26 22:19:12 +00:00
Ted Kremenek
327d00cd45
Silence warning.
...
llvm-svn: 63054
2009-01-26 22:16:12 +00:00
Ted Kremenek
2483a6126f
Add version number to PTH files.
...
llvm-svn: 63052
2009-01-26 22:15:00 +00:00
Ted Kremenek
978b5becea
Add version number checking to PTH files.
...
llvm-svn: 63047
2009-01-26 21:50:21 +00:00
Ted Kremenek
eb8c8fbd63
Embed the offset of the PTH table inside the prologue of the PTH file. This will help improve gradual versioning of PTH files instead of relying that the PTH table is at a fixed offset.
...
llvm-svn: 63045
2009-01-26 21:43:14 +00:00
Fariborz Jahanian
99113fd577
Method decription meta-data and its setting in class_ro_t
...
meta-data.
llvm-svn: 63043
2009-01-26 21:38:32 +00:00
Daniel Dunbar
94a6f25738
Add Ignore ABIArgInfo kind, for handling void & empty structures.
...
llvm-svn: 63039
2009-01-26 21:26:08 +00:00
Daniel Dunbar
336dbba387
Skip emission of final return block if possible (e.g., functions with
...
a unified return).
llvm-svn: 63038
2009-01-26 21:25:20 +00:00
Chris Lattner
357b57d749
remove my hacks that aggressively threw away multiple
...
instantiation history in an effort to speed up c99-intconst-1.c.
Now that multiple nested instantiations are allowed, we just
make them and don't pay the cost of lookups. With the other
changes that went in before this, reverting this is actually
a speedup for c99-intconst-1.c, speeding it up from 1.96s to 1.80s,
and preserves much better loc info.
llvm-svn: 63036
2009-01-26 20:24:53 +00:00
Chris Lattner
7e20927756
allow _Pragmas formed from #defines to keep their full instantiation
...
history
llvm-svn: 63035
2009-01-26 20:15:46 +00:00
Chris Lattner
2d86c700bf
now that everything properly handles multiply instantiated
...
source locations, allow creation of them. We can now say that
a token was instantiated here, then here, then here.
llvm-svn: 63034
2009-01-26 20:08:26 +00:00
Chris Lattner
659ac5f087
make getInstantiationLoc and getSpellingLoc handle multiply instantiated
...
locations, and move the slow case out of line. No perf change on cocoa.h
llvm-svn: 63033
2009-01-26 20:04:19 +00:00
Sebastian Redl
a7bc8473a3
Remove an implemented FIXME and extend test cases. Follow-up on Doug's review.
...
llvm-svn: 63032
2009-01-26 19:54:48 +00:00
Sebastian Redl
54cb4c88e1
Correct size assumption; fixes a crash on amd64.
...
llvm-svn: 63031
2009-01-26 19:54:12 +00:00
Chris Lattner
31af4e08d1
fix a negated conditional in getDecomposedInstantiationLocSlowCase,
...
which I think is rdar://6527005, and make getDecomposedSpellingLocSlowCase
handle nested spelling locations.
llvm-svn: 63030
2009-01-26 19:41:58 +00:00
Chris Lattner
9892ea2fbb
minor speedups/cleanups for -E mode.
...
llvm-svn: 63029
2009-01-26 19:33:54 +00:00
Chris Lattner
5a7971e0c3
This change refactors some of the low-level lexer interfaces a bit.
...
Token now has a class of kinds for "literals", which include
numeric constants, strings, etc. These tokens can optionally have
a pointer to the start of the token in the lexer buffer. This
makes it faster to get spelling and do other gymnastics, because we
don't have to go through source locations.
This change is performance neutral, but will make other changes
more feasible down the road.
llvm-svn: 63028
2009-01-26 19:29:26 +00:00
Daniel Dunbar
827c763051
ABITestGen: Add generation of vector types.
...
llvm-svn: 63024
2009-01-26 19:05:20 +00:00
Fariborz Jahanian
0c8d060715
Meta-data for nonfragile-abi's categories
...
llvm-svn: 63020
2009-01-26 18:32:24 +00:00
Chris Lattner
cde6e757cf
make sure we have a definition of uintptr_t.
...
llvm-svn: 63019
2009-01-26 18:21:04 +00:00
Steve Naroff
8f93bd5936
Many updates to Windows project files.
...
llvm-svn: 63018
2009-01-26 18:09:40 +00:00
Daniel Dunbar
02fe821021
Comment fix.
...
llvm-svn: 63016
2009-01-26 18:02:34 +00:00
Daniel Dunbar
a7ff032643
ccc: -o should not be automatically forwarded to generic gcc tools.
...
llvm-svn: 63015
2009-01-26 18:00:14 +00:00
Daniel Dunbar
f3a06113c7
ccc: Recognize -emit-llvm [-S].
...
- Unlike llvm-gcc, this doesn't yet treat -emit-llvm output as a
linker input.
llvm-svn: 63014
2009-01-26 17:09:15 +00:00
Chris Lattner
b5fba6f8d8
start plumbing together the line table information. So far we just
...
unique the Filenames in #line directives, assigning them UIDs.
llvm-svn: 63010
2009-01-26 07:57:50 +00:00
Chris Lattner
43a85b1e4c
Lazily paging in file contents is a big win for PTH, strip out the old
...
testing code.
llvm-svn: 63006
2009-01-26 07:37:49 +00:00
Chris Lattner
273fc663df
Bitmangle file characteristic bits into the low bits of
...
the content cache pointer. This saves 105876 bytes on
cocoa.h because it shrinks the SLocEntry union, which
we have a big array of. It would be nice to use
PointerIntPair here, but we can't because it is in a
union.
llvm-svn: 63004
2009-01-26 06:49:09 +00:00
Chris Lattner
76e689636b
add parsing and constraint enforcement for GNU line marker directives.
...
llvm-svn: 63003
2009-01-26 06:19:46 +00:00
Ted Kremenek
e9193283c6
Use tag classes instead of typedefs for GDM entries 'ConstNotEq' and 'ConstEq'. This avoids collisions in the GDM.
...
llvm-svn: 63002
2009-01-26 06:04:53 +00:00
Chris Lattner
5a8057bc18
add another sanity test.
...
llvm-svn: 63001
2009-01-26 05:44:13 +00:00
Chris Lattner
38d7fd252a
a few minor cleanups
...
llvm-svn: 63000
2009-01-26 05:30:54 +00:00
Chris Lattner
100c65e810
parse and enforce required constraints on #line directives. Right now
...
we just discard them.
llvm-svn: 62999
2009-01-26 05:29:08 +00:00
Chris Lattner
d6d0619fb4
added to wrong directory
...
llvm-svn: 62997
2009-01-26 04:36:31 +00:00
Chris Lattner
5fe12615c2
an insane macro testcase.
...
llvm-svn: 62996
2009-01-26 04:36:10 +00:00
Chris Lattner
ad13cf4e7a
eagerly resolve the spelling locations of macro argument preexpansions.
...
This reduces fsyntax-only time on c99-intconst-1.c from 2.43s down to
2.01s (20%), reducing the number of fileid lookups from 2529040 linear
and 64771121 binary to 5625902 linear and 4151182 binary.
This knocks getFileID down to only 4.6% of compile time on this testcase.
At this point, malloc/free is over 35% of compile time, primarily allocating
MacroArgs objects and their argument preexpansion vectors.
I don't feel like malloc avoiding right now, so I'm just going to call
this good.
llvm-svn: 62994
2009-01-26 04:33:10 +00:00
Chris Lattner
5a5d67101b
Eagerly resolve the spelling location of the tokens in a definition
...
of a macro. Since these tokens may themselves be from macro
expansions, we need to resolve down to the spelling loc when the
macro ends up being instantiated. Instead of resolving this for
each token expanded from the macro definition, just do it once when
the macro is defined. This speeds up clang on c99-intconst-1.c from
2.66s to 2.43s (9.5%), reducing the FileID lookups from 407244 linear and
114175649 binary to 2529040 linear and 64771121 binary.
llvm-svn: 62993
2009-01-26 04:06:48 +00:00
Chris Lattner
dd9babc79a
Only resolve a macro's instantiation loc once per macro, instead of once
...
per token lexed from it. This speeds up clang on c99-intconst-1.c from
the GCC testsuite from 3.64s to 2.66s (36%). This reduces the number of
binary search FileID lookups from 251570522 to 114175649 on this testcase.
llvm-svn: 62992
2009-01-26 03:46:22 +00:00
Eli Friedman
16c88df1a0
PR3269: create an empty InitListExpr as a child for the
...
CompoundLiteralExpr so that there aren't any null pointers in the AST.
llvm-svn: 62981
2009-01-26 01:33:06 +00:00
Chris Lattner
4fa23625ab
Check in the long promised SourceLocation rewrite. This lays the
...
ground work for implementing #line, and fixes the "out of macro ID's"
problem.
There is nothing particularly tricky about the code, other than the
very performance sensitive SourceManager::getFileID() method.
llvm-svn: 62978
2009-01-26 00:43:02 +00:00
Sebastian Redl
cf8e1fa58e
Update C++ status table with new member pointer conversion capabilities.
...
llvm-svn: 62977
2009-01-26 00:11:25 +00:00
Chris Lattner
3138e81621
improve ASTContext::getDeclAlign comment, as suggested by Eli.
...
llvm-svn: 62975
2009-01-25 23:06:38 +00:00
Chris Lattner
4f765fb198
use simpler method
...
llvm-svn: 62974
2009-01-25 22:02:19 +00:00
Sebastian Redl
72b597d6b6
Implement implicit conversions for pointers-to-member.
...
llvm-svn: 62971
2009-01-25 19:43:20 +00:00
Sebastian Redl
8b2540439f
Introduce an explicit case for member pointers in CodeGenTypes. However, it simply asserts.
...
llvm-svn: 62960
2009-01-25 13:35:30 +00:00
Sebastian Redl
a865ade730
Fix compile error from r62953.
...
llvm-svn: 62959
2009-01-25 13:34:47 +00:00
Eli Friedman
8bad1c5903
One more case for Expr::isConstantInitializer; I think this covers
...
everything that we aren't intending to implement in Expr::Evaluate.
llvm-svn: 62953
2009-01-25 03:27:40 +00:00
Eli Friedman
384da27131
Enhancements to Expr::isConstantInitializer to deal with a few
...
cases it couldn't deal with before.
llvm-svn: 62952
2009-01-25 03:12:18 +00:00
Eli Friedman
7139af42ce
Rename Expr::isConstantExpr to Expr::isConstantInitializer; this more
...
accurately states what the function is trying to do and how it is
different from Expr::isEvaluatable. Also get rid of a parameter that is both
unused and inaccurate.
llvm-svn: 62951
2009-01-25 02:32:41 +00:00
Eli Friedman
cf2b7ba4a7
Get rid of some code that should be unnecessary.
...
llvm-svn: 62950
2009-01-25 02:10:46 +00:00
Eli Friedman
c69d454d5a
Make the constant folder aware of
...
__builtin___CFStringMakeConstantString. (We get into trouble in
GenerateStaticBlockVarDecl if the constant folder isn't accurate.)
llvm-svn: 62949
2009-01-25 01:54:01 +00:00
Eli Friedman
529a99bcf4
Fix the address of a label to be properly considered and emitted as a
...
constant.
llvm-svn: 62948
2009-01-25 01:21:06 +00:00
Eli Friedman
8b7c52658b
Fix for PR2100: merge types for variables.
...
llvm-svn: 62947
2009-01-24 23:49:55 +00:00
Eli Friedman
588395702f
Correct test; sorry for any inconvenience.
...
llvm-svn: 62946
2009-01-24 23:44:26 +00:00
Fariborz Jahanian
a887e63434
Compute instaceStart/instanceSize fields of the class_ro_t meta-data
...
for objc2's non-fragile abi.
llvm-svn: 62945
2009-01-24 23:43:01 +00:00
Sebastian Redl
c6d52f5dfb
Make tentative parsing of pointer-to-member decls work, and fix other stuff pointed out by Doug.
...
llvm-svn: 62944
2009-01-24 23:29:36 +00:00
Eli Friedman
52cc016f21
PR3062: statement expressions should be illegal at file scope. I don't
...
think this has any significant effects at the moment, but it could
matter if we start constant-folding statement expressions like gcc does.
llvm-svn: 62943
2009-01-24 23:09:00 +00:00
Eli Friedman
8549e5dcc8
Fix for PR2910: implement CodeGen for non-constant offsetof.
...
Note that there are still other issues in this area; see PR3396.
llvm-svn: 62942
2009-01-24 22:38:55 +00:00
Eli Friedman
2aa38fea35
Refactor sizeof handling to use constant folding logic for constant
...
sizeof expressions.
llvm-svn: 62941
2009-01-24 22:19:05 +00:00
Chris Lattner
6806131c6b
add initial support for the gcc "alignof(decl) is the alignment of the decl
...
not the type" semantics. This can definitely be improved, but is better than
what we had.
llvm-svn: 62939
2009-01-24 21:53:27 +00:00
Sebastian Redl
887ce84b2b
Undo accidental disabling of smart pointers.
...
llvm-svn: 62937
2009-01-24 21:36:33 +00:00
Chris Lattner
5eca6ada3a
Implement C99 6.5.3.4p1, rejecting sizeof(bitfield)
...
llvm-svn: 62936
2009-01-24 21:29:22 +00:00
Fariborz Jahanian
4723fb70a9
Patch to build class meta-data for each implementation
...
of class in objc2's nonfragile abi.
llvm-svn: 62935
2009-01-24 21:21:53 +00:00
Sebastian Redl
9ed6efdd75
Add support for declaring pointers to members.
...
Add serialization support for ReferenceType.
llvm-svn: 62934
2009-01-24 21:16:55 +00:00
Chris Lattner
04964bbebe
remove a bunch of alignment handling code out of CGExprScalar, since
...
alignment must always be a constant. Just let the constant folder
do it.
llvm-svn: 62933
2009-01-24 21:09:45 +00:00
Chris Lattner
24aeeab05c
Improve handling of alignof. alignof(VLA) now works properly for example.
...
llvm-svn: 62932
2009-01-24 21:09:06 +00:00
Chris Lattner
7bf46469f3
fix some const-correctness issues.
...
llvm-svn: 62931
2009-01-24 21:08:33 +00:00
Chris Lattner
096d3ecb51
remove dead code.
...
llvm-svn: 62930
2009-01-24 20:24:49 +00:00
Fariborz Jahanian
9e3ad5220d
This patch builds the meta-class object for each
...
implemented class in objc2's nonfrigile abi.
llvm-svn: 62929
2009-01-24 20:21:50 +00:00
Chris Lattner
8dff017695
Fix PR3386 by handling GCC's rules for alignof, which are substantially
...
different than those for sizeof. Reject alignof(bitfield) like gcc does.
llvm-svn: 62928
2009-01-24 20:17:12 +00:00
Chris Lattner
619393762b
fix a fixme, don't leak the expr on error.
...
llvm-svn: 62927
2009-01-24 19:49:13 +00:00
Chris Lattner
b1355b1545
minor formatting changes, no functionality change.
...
llvm-svn: 62926
2009-01-24 19:46:37 +00:00
Daniel Dunbar
134a02586e
Fix invalid evaluation of _Complex float (real & imaginary parts had
...
mismatched semantics).
- Enforce this in APValue.
llvm-svn: 62924
2009-01-24 19:08:01 +00:00