Chris Lattner
9c691703ce
remove redundant test
...
llvm-svn: 40386
2007-07-22 06:40:36 +00:00
Chris Lattner
9b7962495f
avoid a small bit of string traffic by not storing the ""'s around a string in CurFilename
...
llvm-svn: 40385
2007-07-22 06:38:50 +00:00
Chris Lattner
146762e7a4
At one point there were going to be lexer and parser tokens.
...
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
2007-07-20 16:59:19 +00:00
Chris Lattner
dc5c055fd1
Reimplement SourceLocation. Instead of having a
...
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
2007-07-20 16:37:10 +00:00
Chris Lattner
23b7eb677d
Finally bite the bullet and make the major change: split the clang namespace
...
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
2007-06-15 23:05:46 +00:00
Chris Lattner
2ea9dd7fc0
ProcessInputFile no longer mutates LangInfo.
...
llvm-svn: 39210
2006-11-21 06:18:11 +00:00
Chris Lattner
b352e3edb5
Change KeepComments/KeepMacroComments modes to be facets of the preprocessor
...
state, not aspects of the language standard being parsed.
llvm-svn: 39209
2006-11-21 06:17:10 +00:00
Chris Lattner
96327eaa52
first step refactoring driver so that it can process multiple input files
...
at once.
llvm-svn: 39207
2006-11-21 05:52:55 +00:00
Chris Lattner
87f267ef4e
eliminate global variables now that PPCallbacks can have state
...
llvm-svn: 39205
2006-11-21 05:02:33 +00:00
Chris Lattner
b8d6d5a81d
Formalize preprocessor callbacks together into a PPCallbacks structure, instead
...
of having a loose collection of function pointers. This also allows clients to
maintain state, and reduces the size of the Preprocessor.h interface.
llvm-svn: 39203
2006-11-21 04:09:30 +00:00
Chris Lattner
9916c5ca7e
Remove GNU C++ min/max operator extension support, they have been removed
...
from gcc mainline.
llvm-svn: 39067
2006-10-27 05:24:37 +00:00
Chris Lattner
9f547a4fdd
Fix regression in my last commit
...
llvm-svn: 39013
2006-10-18 06:06:41 +00:00
Chris Lattner
8fd6ee1f2f
silence warning
...
llvm-svn: 39009
2006-10-18 04:02:50 +00:00
Chris Lattner
4beb0381ed
Trigraphs are not enabled in -fpreprocessed mode.
...
llvm-svn: 38796
2006-07-29 17:50:10 +00:00
Chris Lattner
cd028fc1f6
Fix -E mode to enter the main file *after* -E mode configures the preprocessor.
...
llvm-svn: 38784
2006-07-29 06:35:08 +00:00
Chris Lattner
457fc15bc5
Implement comment saving mode: the -C and -CC options.
...
llvm-svn: 38783
2006-07-29 06:30:25 +00:00
Chris Lattner
331ad778b0
Implement paste avoidance, implementing Preprocessor/output_paste_avoid.c
...
llvm-svn: 38767
2006-07-28 06:56:01 +00:00
Chris Lattner
ecc39e9325
Change Lexer::Stringify to not add ""'s around the string.
...
llvm-svn: 38708
2006-07-15 05:23:31 +00:00
Chris Lattner
67c3848e4e
Cleanup some obsolete comments.
...
llvm-svn: 38673
2006-07-04 23:24:26 +00:00
Chris Lattner
ef9eae1c44
Change the Preprocessor::getSpelling interface to let it be zero-copy in
...
the common case.
llvm-svn: 38671
2006-07-04 22:33:12 +00:00
Chris Lattner
f46be6cb02
Switch to using unix "write" when available, instead of stdio. This speeds up
...
-E -P mode by 10% (i.e. takes away almost all i/o time).
llvm-svn: 38669
2006-07-04 22:19:33 +00:00
Chris Lattner
728b4dc26a
improve comments
...
llvm-svn: 38668
2006-07-04 21:28:37 +00:00
Chris Lattner
ff3f5f4b77
fix compile error
...
llvm-svn: 38667
2006-07-04 21:25:59 +00:00
Chris Lattner
03cbe1fc02
Minor code cleanup
...
llvm-svn: 38666
2006-07-04 21:24:33 +00:00
Chris Lattner
3338ba87d5
Make -P mode faster and closer to GCC output by not emitting newlines at all.
...
This allows the SourceManager to not compute line number information for each buffer.
llvm-svn: 38665
2006-07-04 21:19:39 +00:00
Chris Lattner
73b6a2f62d
Match GCC behavior better in -P mode.
...
llvm-svn: 38663
2006-07-04 19:40:52 +00:00
Chris Lattner
deb3701c23
Switch from using iostreams to using stdio for -E mode output. This speeds
...
up clang -E iostream by 30%.
llvm-svn: 38660
2006-07-04 19:24:06 +00:00
Chris Lattner
5de858cbdd
minor cleanup
...
llvm-svn: 38659
2006-07-04 19:04:44 +00:00
Chris Lattner
09e3cdf9ef
Split the -E mode printer out to a separate .cpp file.
...
llvm-svn: 38658
2006-07-04 19:04:05 +00:00