| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402
|
| |
|
|
| |
llvm-svn: 47540
|
| |
|
|
| |
llvm-svn: 45540
|
| |
|
|
|
|
| |
discussion of this change.
llvm-svn: 45410
|
| |
|
|
| |
llvm-svn: 44976
|
| |
|
|
|
|
|
|
| |
that are builtin and those that are aren't. This is a bunch
of API refactoring that will make this possible, but there is
no functionality change yet.
llvm-svn: 44473
|
| |
|
|
| |
llvm-svn: 43125
|
| |
|
|
|
|
| |
the lexer, where it can be shared.
llvm-svn: 43090
|
| |
|
|
|
|
| |
object in order to do its thing.
llvm-svn: 43084
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
predefined macros. Previously, these were handled by the driver,
now they are handled by the preprocessor.
Some fallout of this:
1. Instead of preprocessing two buffers (the predefines, then the
main source file) we now start preprocessing the main source
file and inject the predefines as a "psuedo #include" from the
main source file.
2. #1 allows us to nuke the Lexer::IsMainFile flag and simplify
Preprocessor::isInPrimaryFile.
3. The driver doesn't have to know about standard #defines, the
preprocessor knows, which is nice for people wanting to define
their own drivers.
4. This allows us to put normal tokens in the predefine buffer,
for example a definition for __builtin_va_list that is
target-specific, and a typedef for id in objc.
llvm-svn: 42818
|
| |
|
|
| |
llvm-svn: 42799
|
| |
|
|
| |
llvm-svn: 42728
|
| |
|
|
| |
llvm-svn: 41685
|
| |
|
|
|
|
|
|
| |
malloc traffic.
This speeds up -E on xalancbmk by 2.4%
llvm-svn: 40461
|
| |
|
|
|
|
|
|
| |
memorybuffer instead of a pointer to the memorybuffer itself. This
reduces coupling and eliminates a pointer dereference on a hot path.
This speeds up -Eonly on 483.xalancbmk by 2.1%
llvm-svn: 40394
|
| |
|
|
|
|
| |
compiler inline it. This speeds up -Eonly on 483.xalancbmk by about 1%
llvm-svn: 40393
|
| |
|
|
|
|
|
|
|
|
|
| |
// foo
// bar
// baz
we'd get two levels of call (bcpl & whitespace) for each line, leading to some
seriously deep stacks in some cases.
llvm-svn: 40384
|
| |
|
|
|
|
|
|
| |
int i = /*/ */ 1;
Thanks to Neil for pointing this out.
llvm-svn: 40379
|
| |
|
|
|
|
|
| |
Since that point is now long gone, we should rename LexerToken to
Token, as it is the only kind of token we have.
llvm-svn: 40105
|
| |
|
|
|
|
| |
buffer*.
llvm-svn: 40104
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
a // comment, this reduces noise in the llvm testsuite.
llvm-svn: 39636
|
| |
|
|
|
|
|
|
|
| |
Submitted by: Bill Wendling
Reviewed by: Chris Lattner
- Removed unneeded <iostream> header.
llvm-svn: 39484
|
| |
|
|
| |
llvm-svn: 39426
|
| |
|
|
|
|
| |
state, not aspects of the language standard being parsed.
llvm-svn: 39209
|
| |
|
|
| |
llvm-svn: 39093
|
| |
|
|
|
|
|
|
|
| |
filenames (and also '#pragma GCC dependency' of course). Now, assuming
no cleaning is needed, we can go all the way from lexing the filename to
doing filename lookups with no mallocs. This speeds up user PP time from
0.077 to 0.075s for Cocoa.h (2.6%).
llvm-svn: 39092
|
| |
|
|
|
|
| |
from gcc mainline.
llvm-svn: 39067
|
| |
|
|
| |
llvm-svn: 39061
|
| |
|
|
| |
llvm-svn: 39060
|
| |
|
|
| |
llvm-svn: 39059
|
| |
|
|
| |
llvm-svn: 38998
|
| |
|
|
| |
llvm-svn: 38969
|
| |
|
|
| |
llvm-svn: 38960
|
| |
|
|
| |
llvm-svn: 38783
|
| |
|
|
|
|
| |
test/Lexer/badstring_in_if0.c
llvm-svn: 38751
|
| |
|
|
|
|
| |
tok::unknown token.
llvm-svn: 38749
|
| |
|
|
|
|
|
| |
into when a hard error is found. This simplifies logic and eliminates the need
for the preprocessor to know about raw mode.
llvm-svn: 38746
|
| |
|
|
|
|
| |
Preprocessor/macro_fn_lparen_scan2.c.
llvm-svn: 38744
|
| |
|
|
|
|
|
|
| |
lexer. This makes more logical sense and also unbreaks the case when the
lexer hasn't been pushed onto the PP include stack. This is the case when
pasting identifiers. This patch implements macro_paste_bcpl_comment.c.
llvm-svn: 38736
|
| |
|
|
|
|
| |
stack depth sampled by shark from ~34 to ~17 frames when preprocessing <iostream>.
llvm-svn: 38726
|
| |
|
|
| |
llvm-svn: 38711
|
| |
|
|
| |
llvm-svn: 38708
|
| |
|
|
|
|
| |
tok::unknown tokens. This fixes test/Lexer/unknown-char.c
llvm-svn: 38703
|
| |
|
|
|
|
| |
it more rightly belongs.
llvm-svn: 38702
|
| |
|
|
|
|
|
|
|
|
| |
is an intra-lexer property, not a inter-lexer property, so it makes sense
for it to be define here. It also makes no sense for macros, and allows us
to define it more carefully in the header.
While I'm at it, improve comments and structuring in Lexer.h
llvm-svn: 38701
|
| |
|
|
|
|
|
| |
completely reversible. This implements tests 3/4 of
test/Preprocessor/macro_fn_lparen_scan.c
llvm-svn: 38699
|
| |
|
|
|
|
|
|
| |
before lexing a token. This speeds the common case where tokens are
separated by small amount of whitespace. This makes a slight but
reproducible positive effect lexing a preprocessed carbon.h.
llvm-svn: 38691
|
| |
|
|
| |
llvm-svn: 38681
|