summaryrefslogtreecommitdiffstats
path: root/clang/Basic/TargetInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add more supported constraints.Anders Carlsson2008-02-181-0/+1
| | | | 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
* Don't attribute in file headers anymore. See llvmdev for theChris Lattner2007-12-291-2/+2
| | | | | | discussion of this change. llvm-svn: 45410
* TargetInfo no longer includes a reference to SourceManager.Ted Kremenek2007-12-121-6/+7
| | | | | | | | | | | | | | | 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
* Mega-patch: ripped SourceManager out of Diagnostic/DiagnosticClient. NowTed Kremenek2007-12-111-1/+1
| | | | | | | | | | | | | | | | | | 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
* Add getTargetPrefix to TargetInfo, to be used with target specific intrinsics.Anders Carlsson2007-12-081-0/+7
| | | | llvm-svn: 44712
* 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 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
* Add __builtin_va_list definitions for x86_64 and ppc64.Anders Carlsson2007-10-131-0/+5
| | | | llvm-svn: 42943
* 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
* 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
* 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
* 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-151-1/+0
| | | | | | | | | | | | | 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
* Optimize #define analysis for the common case of a single target.Chris Lattner2007-01-301-0/+18
| | | | llvm-svn: 39331
* Add support for target-specific builtins, including detecting nonportabilityChris Lattner2007-01-291-0/+56
| | | | | | | | | | | | | | | | | of source code. For example: $ clang INPUTS/carbon_h.c -arch i386 -arch ppc prints: ... /usr/lib/gcc/i686-apple-darwin8/4.0.1/include/mmintrin.h:51:3: note: use of a target-specific builtin function, source is not 'portable' __builtin_ia32_emms (); ^ because carbon.h pulls in xmmintrin.h, and __builtin_ia32_emms isn't a builtin on ppc. Though clang now supports target-specific builtins, the full table isn't implemented yet. llvm-svn: 39328
* Add new TargetInfo hooks for getting the set of target-specific #defines.Chris Lattner2006-10-141-0/+110
| | | | llvm-svn: 38979
* Add new TargetInfo class to clang.Chris Lattner2006-10-141-0/+40
llvm-svn: 38971
OpenPOWER on IntegriCloud