summaryrefslogtreecommitdiffstats
path: root/clang/Basic
Commit message (Collapse)AuthorAgeFilesLines
* A, q and Z are valid LLVM inline asm constraints.Lauro Ramos Venancio2008-02-271-5/+0
| | | | | | Fix regression in Applications/ClamAV/clamscan. llvm-svn: 47673
* Convert x86 target specific inline asm constraints to LLVM.Lauro Ramos Venancio2008-02-262-1/+38
| | | | llvm-svn: 47609
* In FileManager: use full paths to unique files and directories on Windows,Ted Kremenek2008-02-241-8/+106
| | | | | | | | since inodes are bogus abstraction on that platform. Patch by Argiris Kirtzidis! llvm-svn: 47535
* Added classes SolarisTargetInfo andGabor Greif2008-02-211-0/+67
| | | | | | | | | | | | | | | | | | SolarisSparcV8TargetInfo to be able to handle "sparc-" triple prefixes. Please be aware that this is a minimal kludge, that pretty much duplicates the features of DarwinPowerPCTargetInfo, and also incorrectly uses stuff from the PPC namespace. But in result "make test" now passes a lot of tests, the notable exceptions being the objc rewrite tests and mandel.c. llvm-svn: 47436
* fix the second half of PR2041: __restrict is ok in c90 mode, even ifChris Lattner2008-02-191-2/+4
| | | | | | restrict isn't. llvm-svn: 47316
* Add more supported constraints.Anders Carlsson2008-02-182-0/+3
| | | | llvm-svn: 47270
* Change alignment for doubles to 32 bits which is what X86 has.Anders Carlsson2008-02-171-1/+2
| | | | llvm-svn: 47234
* Even more inline asm codegen fixes.Anders Carlsson2008-02-061-4/+9
| | | | llvm-svn: 46784
* Handle the memory clobber.Anders Carlsson2008-02-051-0/+3
| | | | llvm-svn: 46780
* Fix PR1966 by ignoring non-error diagnostics from system headers even if ↵Chris Lattner2008-02-031-4/+10
| | | | | | | | they are *mapped* onto errors. llvm-svn: 46686
* the macro start and macro end bits in source location are dead, remove them.Chris Lattner2008-02-031-2/+2
| | | | llvm-svn: 46685
* Don't add an extra line to the end of the buffer, it doesn't really exist.Chris Lattner2008-01-241-1/+0
| | | | llvm-svn: 46330
* Fix the __SIZE_TYPE__ definition on x86_32. This fixes the alloca.c (wget ↵Lauro Ramos Venancio2008-01-201-1/+2
| | | | | | 1.10.2) compilation. llvm-svn: 46196
* Fix misspelling of "existent".Ted Kremenek2008-01-111-21/+21
| | | | | | | | Do not use std::cerr; use llvm::cerr instead. Patch provided by Sam Bishop! llvm-svn: 45880
* Fixed 80-col violation.Ted Kremenek2008-01-111-2/+2
| | | | llvm-svn: 45845
* remove attribution from makefiles.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45412
* Don't attribute in file headers anymore. See llvmdev for theChris Lattner2007-12-299-18/+18
| | | | | | discussion of this change. llvm-svn: 45410
* Added storage of the FileID of the the main source file of a translation unitTed Kremenek2007-12-191-0/+4
| | | | | | in SourceManager. llvm-svn: 45225
* Refactored inode and device number into FileEntry, and changed theTed Kremenek2007-12-181-8/+5
| | | | | | ADT storing FileEntry's in FileManager from a map to a set. llvm-svn: 45184
* When serializing SourceManager, we now serialize out absolute pathsTed Kremenek2007-12-181-1/+13
| | | | | | to serialized source files. llvm-svn: 45183
* Added to FileEntry a pointer to the <dev_t,ino_t> pair for the file, andTed Kremenek2007-12-181-2/+8
| | | | | | accessors to FileEntry to query these values. llvm-svn: 45171
* Add hack to SourceManager to support missing source files duringTed Kremenek2007-12-131-4/+8
| | | | | | | 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
* Fix file header.Chris Lattner2007-12-131-1/+1
| | | | llvm-svn: 44983
* TargetInfo no longer includes a reference to SourceManager.Ted Kremenek2007-12-124-13/+54
| | | | | | | | | | | | | | | Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation. Added many utility methods to FullSourceLoc to provide shorthand for: FullLoc.getManager().someMethod(FullLoc.getLocation()); instead we have: FullLoc.someMethod(); Modified TextDiagnostics (and related classes) to use this short-hand. llvm-svn: 44957
* Moved construction of TargetInfo objects out of the DriverTed Kremenek2007-12-121-0/+731
| | | | | | | | and into the "Basic" library. TargetInfo objects are now constructed from triples by calling the static method TargetInfo::CreateTargetInfo. llvm-svn: 44940
* Modified the internals of Diagnostic and DiagnosticClient to useTed Kremenek2007-12-111-1/+1
| | | | | | | | | | | | | | | | SourceManager*'s instead of SourceManager&'s. This allows the client specify a NULL SourceManager when using a default constructed SourceLocation. Thus the SourceManager can be NULL when the SourceLocation's isValid() == false. The interface to most clients of Diagnostic remains the same. Diagnostic::Report() is overload to either accept a SourceLocation and a SourceManager&, or neither. Thus clients that do not have a SourceManager cannot specify a SourceLocation. Modified TextDiagnostics* to use this new interface. Modified the driver to not passed in SourceManager when warning about "-I-". llvm-svn: 44887
* Mega-patch: ripped SourceManager out of Diagnostic/DiagnosticClient. NowTed Kremenek2007-12-112-3/+4
| | | | | | | | | | | | | | | | | | SourceManager is passed by reference, allowing the SourceManager to be associated with a specific translation unit, and not the entire execution of the driver. Modified all users of Diagnostics to comply with this new interface. Integrated SourceManager as a member variable of TargetInfo. TargetInfo will eventually be associated with a single translation unit (just like SourceManager). Made the SourceManager reference in ASTContext private. Provided accessor getSourceManager() for clients to use instead. Modified clients to comply with new interface. llvm-svn: 44878
* Added newline to end of file.Ted Kremenek2007-12-101-1/+1
| | | | llvm-svn: 44797
* Add getTargetPrefix to TargetInfo, to be used with target specific intrinsics.Anders Carlsson2007-12-081-0/+7
| | | | llvm-svn: 44712
* Removed dependence on including iostream (use llvm/Support/Streams.h instead).Ted Kremenek2007-12-051-9/+9
| | | | llvm-svn: 44635
* Implemented serialization of LangOptions.Ted Kremenek2007-12-051-0/+58
| | | | llvm-svn: 44624
* Renamed SourceManager::Read to SourceManager::CreateAndRegister.Ted Kremenek2007-12-051-7/+18
| | | | | | | Now sourcemanager deserializer automatically self-registers itself with the deserializer. llvm-svn: 44591
* Implemented initial serialization support for SourceManager.Ted Kremenek2007-12-051-36/+118
| | | | llvm-svn: 44590
* Removed serialization of FileEntry and DirectoryEntry. This objects willTed Kremenek2007-12-041-32/+1
| | | | | | now be lazily recreated upon deserialization. llvm-svn: 44585
* Implemented serialization of SrcMgr::ContentCache.Ted Kremenek2007-12-041-0/+54
| | | | llvm-svn: 44578
* Implemented serialization of FileEntry and DirectoryEntry.Ted Kremenek2007-12-041-0/+33
| | | | llvm-svn: 44573
* Implemented initial support for "-triple" option to the clang driver. ThisTed Kremenek2007-12-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | replaces the functionality previously provided by just "-arch" (which is still supported but has different semantics). The new behavior is as follows: (1) If the user does not specify -triple: (a) If no -arch options are specified, the target triple used is the host triple (in llvm/Config/config.h). (b) If one or more -arch's are specified (and no -triple), then there is one triple for each -arch, where the specified arch is substituted for the arch in the host triple. Example: host triple = i686-apple-darwin9 command: clang -arch ppc -arch ppc64 ... triples used: ppc-apple-darwin9 ppc64-apple-darwin9 (2) The user does specify a -triple (only one allowed): (a) If no -arch options are specified, the triple specified by -triple is used. E.g clang -triple i686-apple-darwin9 (b) If one or more -arch options are specified, then the triple specified by -triple is used as the primary target, and the arch's specified by -arch are used to create secondary targets. For example: clang -triple i686-apple-darwin9 -arch ppc -arch ppc64 has the following targets: i686-apple-darwin9 (primary target) ppc-apple-darwin9 ppc64-apple-darwin9 Other changes related to the changes to the driver: - TargetInfoImpl now includes the triple string. - TargetInfo::getTargetTriple returns the triple for its primary target. - test case test/Parser/portability.c has been updated because "-arch linux" is no longer valid ("linux" is an OS, not an arch); instead we use a bogus architecture "bogusW16W16" where WCharWidth=16 and WCharAlign=16. llvm-svn: 44551
* add support for custom client-specific diagnostics. As a testcase, make the Chris Lattner2007-12-021-5/+75
| | | | | | | | | | | | rewriter emit this error if it fails to rewrite an @encode: t.m:17:9: error: rewriter could not replace sub-expression due to macros c = ENC(char *)[2] + 4; ^~~~~~~~~~~ ... where ENC is: #define ENC @encode llvm-svn: 44498
* Fixed bug in the serialization of SelectorTable where we did not register theTed Kremenek2007-12-011-0/+9
| | | | | | | | | | pointer of MultiKeywordSelectors. Added optimization to the serialization of SelectorTable where we only serialize out MultiKeywordSelectors that are ever referenced by an object other than the SelectorTable. llvm-svn: 44483
* start partitioning the diagnostics into two classes: thoseChris Lattner2007-11-301-11/+21
| | | | | | | | 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
* Implemented serialization of SelectorTable and Selectors.Ted Kremenek2007-11-301-2/+77
| | | | | | | Modified serialization of IdentifierTable to self-register itself with the Deserializer. llvm-svn: 44471
* Add more semantic analysis for inline asm statements.Anders Carlsson2007-11-271-0/+124
| | | | llvm-svn: 44349
* Check that the clobber registers are valid.Anders Carlsson2007-11-251-2/+43
| | | | llvm-svn: 44311
* Add tables for GCC register names and aliases. This will be used for inline asmAnders Carlsson2007-11-241-0/+7
| | | | llvm-svn: 44308
* Break out bool/true/false support into a LangOptionNate Begeman2007-11-151-4/+15
| | | | llvm-svn: 44164
* Renamed all serialization "Materialize" methods to "Create" to conform withTed Kremenek2007-11-131-1/+1
| | | | | | the new serialization API. llvm-svn: 44035
* Changed the serialization of IdentifierTable to only serialize out entriesTed Kremenek2007-11-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | that are referenced in the ASTs. This assumes that we serialize out the decls/stmts first, and use the pointer-tracking logic in the Serializer to determine if an IdentifierInfo (or its string key) is ever referenced. This is a significant space optimization for serialized ASTs. Consider the following program: void foo(int x,int y) { return x > y ? x : y+1; } Here are the sizes of the files for the serialized ASTs: Full IdentifierTable: 23676 bytes Only-referenced Identifiers: 304 bytes. For this simple program, this is a 77% reduction in the file size of the serialized ASTs. llvm-svn: 43975
* rename getInstantiationLoc to match the scheme of isPhysicalLoc.Chris Lattner2007-11-091-1/+1
| | | | llvm-svn: 43969
* change source location to have two bits for macros, trackingChris Lattner2007-11-091-2/+2
| | | | | | | whether the location is the start and/or end of an expansion. These are currently not set or used by anything. llvm-svn: 43968
* Changed method call to reflect updated serialization API.Ted Kremenek2007-11-091-1/+1
| | | | llvm-svn: 43917
OpenPOWER on IntegriCloud