| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
discussion of this change.
llvm-svn: 45410
|
| |
|
|
|
|
| |
in SourceManager.
llvm-svn: 45225
|
| |
|
|
|
|
| |
to serialized source files.
llvm-svn: 45183
|
| |
|
|
|
|
|
| |
deserialization. Eventually this should be replaced with a lazy-reading
mechanism that only reads source files when they are needed by clients.
llvm-svn: 45007
|
| |
|
|
| |
llvm-svn: 44797
|
| |
|
|
| |
llvm-svn: 44635
|
| |
|
|
|
|
|
| |
Now sourcemanager deserializer automatically self-registers itself with
the deserializer.
llvm-svn: 44591
|
| |
|
|
| |
llvm-svn: 44590
|
| |
|
|
| |
llvm-svn: 44578
|
| |
|
|
| |
llvm-svn: 43969
|
| |
|
|
|
|
|
| |
whether the location is the start and/or end of an expansion.
These are currently not set or used by anything.
llvm-svn: 43968
|
| |
|
|
| |
llvm-svn: 43562
|
| |
|
|
|
|
|
|
| |
Disabled assignments for ContentCache.
Copy-ctor for ContentCache now has an assertion preventing it to
be copied from an object that already has an allocated buffer.
llvm-svn: 43526
|
| |
|
|
|
|
|
| |
single class: ContentCache. This simplifies the logic in
SourceManager and makes the ownership of MemoryBuffers clearer.
llvm-svn: 43518
|
| |
|
|
| |
llvm-svn: 43029
|
| |
|
|
|
|
|
| |
with x's for now. The APIs are all unimplemented, so it doesn't do
anything yet! :)
llvm-svn: 42868
|
| |
|
|
|
|
|
|
| |
hard coded paths in the llvm project files.
Changed windows detection to use LLVM pp constant.
llvm-svn: 41878
|
| |
|
|
|
|
| |
by Hartmut Kaiser!
llvm-svn: 41684
|
| |
|
|
| |
llvm-svn: 41600
|
| |
|
|
| |
llvm-svn: 40719
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
last one.
This is important in insane cases like the one dannyb sent me recently:
#define F0(a) void a(){}
#define F1(a) F0(a##0) F0(a##1) F0(a##2) F0(a##3) F0(a##4) F0(a##5) F0(a##6) F0(a##7)
#define F2(a) F1(a##0) F1(a##1) F1(a##2) F1(a##3) F1(a##4) F1(a##5) F1(a##6) F1(a##7)
#define F3(a) F2(a##0) F2(a##1) F2(a##2) F2(a##3) F2(a##4) F2(a##5) F2(a##6) F2(a##7)
#define F4(a) F3(a##0) F3(a##1) F3(a##2) F3(a##3) F3(a##4) F3(a##5) F3(a##6) F3(a##7)
#define F5(a) F4(a##0) F4(a##1) F4(a##2) F4(a##3) F4(a##4) F4(a##5) F4(a##6) F4(a##7)
#define F6(a) F5(a##0) F5(a##1) F5(a##2) F5(a##3) F5(a##4) F5(a##5) F5(a##6) F5(a##7)
F6(f)
cpp is great. :)
llvm-svn: 40715
|
| |
|
|
|
|
|
|
| |
malloc traffic.
This speeds up -E on xalancbmk by 2.4%
llvm-svn: 40461
|
| |
|
|
| |
llvm-svn: 40460
|
| |
|
|
|
|
|
|
|
|
|
| |
bottleneck for -E computation, because every token that starts a line needs
to determine *which* line it is on (so -E mode can insert the appropriate
vertical whitespace). This optimization improves this common case where
it is striding through the line # table.
This speeds up -E on xalancbmk by 3.2%
llvm-svn: 40459
|
| |
|
|
|
|
| |
keeps the MacroInfo table more compact.
llvm-svn: 40281
|
| |
|
|
| |
llvm-svn: 40111
|
| |
|
|
|
|
|
|
|
| |
SourceManager::getInstantiationLoc. With this change, every token
expanded from a macro doesn't get its own MacroID. :)
This reduces # macro IDs in carbon.h from 16805 to 9197
llvm-svn: 40108
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fileid/offset pair, it now contains a bit discriminating between
mapped locations and file locations. This separates the tables for
macros and files in SourceManager, and allows better separation of
concepts in the rest of the compiler. This allows us to have *many*
macro instantiations before running out of 'addressing space'.
This is also more efficient, because testing whether something is a
macro expansion is now a bit test instead of a table lookup (which
also used to require having a srcmgr around, now it doesn't).
This is fully functional, but there are several refinements and
optimizations left.
llvm-svn: 40103
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
accurate diagnostics. For test/Lexer/comments.c we now emit:
int x = 000000080; /* expected-error {{invalid digit}} */
^
constants.c:7:4: error: invalid digit '8' in octal constant
00080; /* expected-error {{invalid digit}} */
^
The last line is due to an escaped newline. The full line looks like:
int y = 0000\
00080; /* expected-error {{invalid digit}} */
Previously, we emitted:
constants.c:4:9: error: invalid digit '8' in octal constant
int x = 000000080; /* expected-error {{invalid digit}} */
^
constants.c:6:9: error: invalid digit '8' in octal constant
int y = 0000\
^
which isn't too bad, but the new way is better for the user,
regardless of whether there is an escaped newline or not.
All the other lexer-related diagnostics should switch over
to using AdvanceToTokenCharacter where appropriate. Help
wanted :).
This implements test/Lexer/constants.c.
llvm-svn: 39906
|
| |
|
|
|
|
| |
virtual->physical mapping explicitly.
llvm-svn: 39867
|
| |
|
|
|
|
| |
(needed on Solaris)
llvm-svn: 39781
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
out of the llvm namespace. This makes the clang namespace be a sibling of
llvm instead of being a child.
The good thing about this is that it makes many things unambiguous. The
bad things is that many things in the llvm namespace (notably data structures
like smallvector) now require an llvm:: qualifier. IMO, libsystem and libsupport
should be split out of llvm into their own namespace in the future, which will fix
this issue.
llvm-svn: 39659
|
| |
|
|
| |
llvm-svn: 39434
|
| |
|
|
| |
llvm-svn: 39426
|
| |
|
|
|
|
|
| |
support library, where it can be used by other LLVM clients. There are
some ugly fixme's in the short-term.
llvm-svn: 39425
|
| |
|
|
| |
llvm-svn: 39424
|
| |
|
|
| |
llvm-svn: 39028
|
| |
|
|
|
|
| |
reduces the number of FileID's made and tracked.
llvm-svn: 38752
|
| |
|
|
| |
llvm-svn: 38722
|
| |
|
|
| |
llvm-svn: 38672
|
| |
|
|
| |
llvm-svn: 38664
|
| |
|
|
| |
llvm-svn: 38604
|
| |
|
|
|
|
| |
single use.
llvm-svn: 38599
|
| |
|
|
| |
llvm-svn: 38596
|
| |
|
|
| |
llvm-svn: 38594
|
| |
|
|
|
|
| |
MacroExpansion fileid's, loop over them until we get to something real.
llvm-svn: 38590
|
| |
|
|
| |
llvm-svn: 38579
|
| |
|
|
|
|
| |
when reporting a diagnostic.
llvm-svn: 38577
|
| |
|
|
| |
llvm-svn: 38560
|
| |
|
|
|
|
| |
instantiations.
llvm-svn: 38558
|