summaryrefslogtreecommitdiffstats
path: root/clang/Basic
Commit message (Collapse)AuthorAgeFilesLines
...
* Rewrote serialization of IdentifierInfo and IdentifierTable to use methods EmitTed Kremenek2007-11-081-45/+63
| | | | | | | | | and Materialize/Read instead of using specializations of SerializeTrait<>. The resulting code is much cleaner. We are also setting the stage so that only the parts of the IdentifierTable that are ever referenced within the ASTs are serialized, and not the whole table. llvm-svn: 43904
* Added registration to deserialization engine of IdentifierInfo* asTed Kremenek2007-11-051-0/+2
| | | | | | IdentifierInfos are deserialized. llvm-svn: 43741
* Simplified Serialization code for SourceLocation and SourceRange, andTed Kremenek2007-11-011-7/+14
| | | | | | | | | | | | | updated it to the recently updated Serialization API. Changed clients of SourceLocation serialization to call the appropriate new methods. Updated Decl serialization code to put new skeleton serialization code in place that is much better than the older trait-specialization approach. llvm-svn: 43625
* Updated a comment to hopefully silence a Lattner warning.Ted Kremenek2007-10-311-2/+2
| | | | llvm-svn: 43562
* Updated some comments.Ted Kremenek2007-10-301-5/+8
| | | | | | | | 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
* Removed SrcMgr::FileInfo and SrcMgr::InfoRec and replaced them with aTed Kremenek2007-10-301-53/+42
| | | | | | | single class: ContentCache. This simplifies the logic in SourceManager and makes the ownership of MemoryBuffers clearer. llvm-svn: 43518
* Implemented serialization of SourceLocation and SourceRange objects.Ted Kremenek2007-10-251-0/+30
| | | | llvm-svn: 43343
* Modified current clients of Bitcode-Object serialization to use theTed Kremenek2007-10-242-63/+32
| | | | | | | | | | new split-header file configuration (Serialize.h and Deserialize.h) now in place in the core LLVM repository. Removed unneeded SerializeTrait specializations for enums in TokenKinds.h llvm-svn: 43306
* Implemented serialization for IdentifierInfo and IdentifierTable.Ted Kremenek2007-10-232-1/+100
| | | | | | | Updated serialization test code in the driver to test serialization of these types. llvm-svn: 43266
* Unbreak mingw32. Maybe there should be something like libClandSystem? :)Anton Korobeynikov2007-10-161-1/+1
| | | | llvm-svn: 43029
* Add __builtin_va_list definitions for x86_64 and ppc64.Anders Carlsson2007-10-131-0/+5
| | | | llvm-svn: 42943
* Push the rewriting APIs along. Build a trivial client that replaces tabsChris Lattner2007-10-111-0/+7
| | | | | | | with x's for now. The APIs are all unimplemented, so it doesn't do anything yet! :) llvm-svn: 42868
* avoid accessing off the end of identifiers.Chris Lattner2007-10-101-0/+1
| | | | llvm-svn: 42841
* move IdentifierTable.h from liblex to libbasic.Chris Lattner2007-10-071-0/+374
| | | | llvm-svn: 42730
* speed up clang startup another 28% by avoiding std::vector<std::string> Chris Lattner2007-10-061-41/+18
| | | | | | for holding builtin target-specific macros. llvm-svn: 42689
* speed up clang startup time by about 23% by avoiding lots of Chris Lattner2007-10-061-21/+29
| | | | | | stringmap operations when there are no secondary targets. llvm-svn: 42688
* work around bugs and missing features in apfloat.Chris Lattner2007-09-221-2/+4
| | | | llvm-svn: 42235
* Use APFloat for the representation of FP immediates, ask the targetChris Lattner2007-09-221-0/+28
| | | | | | for *which* apfloat to use for a particular type. llvm-svn: 42234
* Removed clang solution file for VC++, which didn't work properly because of ↵Hartmut Kaiser2007-09-121-1/+2
| | | | | | | | hard coded paths in the llvm project files. Changed windows detection to use LLVM pp constant. llvm-svn: 41878
* remove the FATAL classifier.Chris Lattner2007-09-061-2/+0
| | | | llvm-svn: 41736
* VC++ doesn't define S_ISDIRChris Lattner2007-09-031-0/+3
| | | | llvm-svn: 41688
* Add #ifdefs to make the source portable to windows. Patch contributedChris Lattner2007-09-031-1/+9
| | | | | | by Hartmut Kaiser! llvm-svn: 41684
* constify a method.Chris Lattner2007-08-301-1/+1
| | | | llvm-svn: 41600
* Fix a bug in my previous commitChris Lattner2007-08-021-1/+1
| | | | llvm-svn: 40719
* Increase the macro id cache to look up several recent entries, not just the ↵Chris Lattner2007-08-021-11/+14
| | | | | | | | | | | | | | | | | | | 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
* Use a smallstring instead of an std::string in FileChanged to avoid some ↵Chris Lattner2007-07-241-1/+1
| | | | | | | | malloc traffic. This speeds up -E on xalancbmk by 2.4% llvm-svn: 40461
* check in an experiment that didn't work out, to allow for future investigation.Chris Lattner2007-07-241-5/+27
| | | | llvm-svn: 40460
* Add a cache to SourceManager to accellerate line # lookup. This is aChris Lattner2007-07-241-51/+96
| | | | | | | | | | | 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
* Switch TargetInfo::getTargetDefines from using an std::map<std::string, ...> ↵Chris Lattner2007-07-221-32/+54
| | | | | | | | | to using a llvm::StringMap. This dramatically reduces the startup time of the preprocessor, speeding up -Eonly on xalankbmk by 2.2%. llvm-svn: 40396
* Add support for reusing macroid's with negative physical loc deltas. ThisChris Lattner2007-07-211-4/+3
| | | | | | keeps the MacroInfo table more compact. llvm-svn: 40281
* remove some old cruftChris Lattner2007-07-201-27/+1
| | | | llvm-svn: 40111
* improve comments, implement a trivial single-entry cache in Chris Lattner2007-07-201-2/+21
| | | | | | | | | 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
* Reimplement SourceLocation. Instead of having a Chris Lattner2007-07-201-54/+20
| | | | | | | | | | | | | | | | | 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
* Make octal constant lexing use AdvanceToTokenCharacter to give moreChris Lattner2007-07-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Change SourceManager::getInstantiationLoc to take virtual locations, doing itsChris Lattner2007-07-151-4/+5
| | | | | | virtual->physical mapping explicitly. llvm-svn: 39867
* A significant refactoring of the type size stuff to also Chris Lattner2007-07-141-4/+7
| | | | | | compute type alignment. This info is needed for struct layout. llvm-svn: 39850
* add missing headerGabor Greif2007-07-121-0/+2
| | | | | | (needed on Solaris) llvm-svn: 39781
* remove location tracking for target infoChris Lattner2007-06-221-1/+1
| | | | llvm-svn: 39671
* Finally bite the bullet and make the major change: split the clang namespaceChris Lattner2007-06-155-8/+4
| | | | | | | | | | | | | 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
* Submitted by: Bill WendlingBill Wendling2007-06-101-0/+4
| | | | | | | | | | | Reviewed by: Chris Lattner - Added a method "IgnoreDiagnostic" so that the diagnostic client can tell the diagnostic object that it doesn't want to handle a particular diagnostic message. In which case, it won't be counted as either a diagnostic or error. llvm-svn: 39641
* Submitted by: Bill WendlingBill Wendling2007-06-081-1/+2
| | | | | | - Say! why don't we increment the NumDiagnostics variable too? llvm-svn: 39616
* Submitted by: Bill WendlingBill Wendling2007-06-081-1/+5
| | | | | | | | | Reviewed by: Chris Lattner - Make the counting of errors and diagnostic messages sane. Place them into the Diagnostic class instead of in the DiagnosticClient class. llvm-svn: 39615
* track whether an error has been emitted.Chris Lattner2007-05-281-0/+5
| | | | llvm-svn: 39502
* improve const correctnessChris Lattner2007-05-191-1/+1
| | | | llvm-svn: 39460
* Bug #:Steve Naroff2007-05-181-2/+4
| | | | | | | | | | | | | | | | | | | | Submitted by: Reviewed by: An important, but truly mind numbing change. Added 6 flavors of Sema::Diag() that take 1 or two SourceRanges. Considered adding 3 flavors (using default args), however this wasn't as clear. Removed 2 flavors of Sema::Diag() that took LexerToken's (they weren't used). Changed all the typechecking routines to pass the appropriate range(s). Hacked the diagnostic machinery and driver to acccommodate the new data. What's left? A FIXME in clang.c to use the ranges. Chris offered to do the honors:-) Which includes taking us to the end of an identifier:-) llvm-svn: 39456
* Add support for inserting up to 10 strings in a diagnostic, with %0, %1, %2,Chris Lattner2007-05-161-2/+2
| | | | | | etc. llvm-svn: 39447
* Adjust to change in MemoryBuffer interfaceChris Lattner2007-05-061-1/+1
| | | | llvm-svn: 39434
* Remove the clang::SourceBuffer class, switch to the llvm::MemoryBuffer class.Chris Lattner2007-04-292-291/+11
| | | | llvm-svn: 39426
* Refactor the SourceBuffer code so that it is safe to move to the LLVMChris Lattner2007-04-292-11/+116
| | | | | | | support library, where it can be used by other LLVM clients. There are some ugly fixme's in the short-term. llvm-svn: 39425
* minor cleanupsChris Lattner2007-04-292-39/+29
| | | | llvm-svn: 39424
OpenPOWER on IntegriCloud