summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Switch the X86TargetInfo object from a string representation of theChandler Carruth2011-09-281-57/+179
| | | | | | | | | | | | | | | | | | selected CPU model to the enumeration. This parses the string representation once using a StringSwitch on SetCPU. It returns an error for strings which are not recognized (yay!). Finally it replaces ridiculous if-chains with switches that cover all enumerators. The last change required adding several missing entries to the features function. These were obvious on inspection. Yay for a pattern that gives warnings when we miss one. No new test cases yet, as I want to get the 64-bit errors working first. I'll then start fleshing out the testing more. Currently I'm primarily testing on Linux, but I'm hoping check whether there are interesting differences on darwin before long... llvm-svn: 140685
* Introduce an enumeration for the x86 CPUs recognized by Clang. I'veChandler Carruth2011-09-281-0/+124
| | | | | | | tried to give these nice doxyments, but if I've gotten any of my history wrong, please chime in. llvm-svn: 140684
* Clean up a bit of the uses of CPU in the TargetInfo classes. This makesChandler Carruth2011-09-281-11/+6
| | | | | | | | | | | | it an error if a CPU is provided for a target that doesn't implement logic handling CPU settings, to match the ABI settings. It also removes the CPU parameter from the getDefaultFeatures method. This parameter was always filled in with the same value as setCPU was called with, and at this point every single target implementation that referenced the CPU within this function has needed to store the CPU via setCPU anyways in order to implement other interface points. llvm-svn: 140683
* Begin fixing Clang's predefined macros for various architectures. ThisChandler Carruth2011-09-281-6/+101
| | | | | | | | | | | | | | | | is *very* much a WIP that I'll be refining over the next several commits, but I need to get this checkpoint in place for sanity. This also adds a much more comprehensive test for architecture macros, which is roughly generated by inspecting the behavior of a trunk build of GCC. It still requires some massaging, but eventually I'll even check in the script that generates these so that others can use it to append more tests for more architectures, etc. Next up is a bunch of simplification of the Targets.cpp code, followed by a lot more test cases once we can reject invalid architectures. llvm-svn: 140673
* Rename Diagnostic to DiagnosticsEngine as per issue 5397David Blaikie2011-09-251-1/+1
| | | | llvm-svn: 140478
* Fix missing includes for llvm_unreachableDavid Blaikie2011-09-231-0/+1
| | | | llvm-svn: 140368
* Switch assert(0/false) llvm_unreachable.David Blaikie2011-09-231-2/+2
| | | | llvm-svn: 140367
* PTX: Clean up target options codeJustin Holewinski2011-09-221-79/+27
| | | | llvm-svn: 140320
* Define Mips64 TargetInfo classes.Akira Hatanaka2011-09-201-0/+144
| | | | llvm-svn: 140174
* Clean up TargetInfo class hierarchy. Define a base class from which TargetInfosAkira Hatanaka2011-09-201-126/+122
| | | | | | of Mips32 big and little endian derive. llvm-svn: 140170
* Clarify PNaCl target characteristics: set LongDoubleWidth, PtrDiffType, ↵Ivan Krasin2011-09-201-7/+5
| | | | | | | | | IntPtrType, change __builtin_va_list to from a structure to int[4] (same alignment and size, but with a simpler representation). Patch by David Meyer! llvm-svn: 140144
* Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear ↵Francois Pichet2011-09-171-4/+4
| | | | | | | | that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag. Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag. llvm-svn: 139987
* PTX: Define target optionsJustin Holewinski2011-09-151-0/+89
| | | | llvm-svn: 139789
* Add comment.Akira Hatanaka2011-09-141-0/+1
| | | | llvm-svn: 139700
* O64 will not be supported.Akira Hatanaka2011-09-131-5/+0
| | | | llvm-svn: 139655
* mips*-*-psp is no longer supported as a target.Akira Hatanaka2011-09-131-4/+0
| | | | llvm-svn: 139654
* Switch LangOptions over to a .def file that describes header of theDouglas Gregor2011-09-131-1/+1
| | | | | | | | | | language options. Use that .def file to declare the LangOptions class and initialize all of its members, eliminating a source of annoying initialization bugs. AST serialization changes are next up. llvm-svn: 139605
* Clang/PNaCl: Improve test coverage for PNaClTargetInfo (type aligns), fixes ↵Ivan Krasin2011-08-291-0/+2
| | | | | | | | | | nits: - wrong alignment for double (it was 4, but 8 is desired), - added checks for _REENTRANT define, - fixed the issue that defines were not tested (because the check for inside #ifdef). llvm-svn: 138775
* PNaClTargetInfo: add __ELF__, _REENTRANT and _GNU_SOURCE defines and update ↵Ivan Krasin2011-08-251-0/+7
| | | | | | the test llvm-svn: 138607
* Follow up to r138470 (Add PNaCl TargetInfo). I've occasionally submitted ↵Ivan Krasin2011-08-241-1/+6
| | | | | | wrong patch. llvm-svn: 138489
* Add PNaCl TargetInfo.Ivan Krasin2011-08-241-0/+72
| | | | llvm-svn: 138470
* "-mavx" should also enable all other SSE levels.Bruno Cardoso Lopes2011-08-181-1/+2
| | | | llvm-svn: 137905
* Additional comments and whitespace.Chad Rosier2011-08-041-1/+2
| | | | llvm-svn: 136892
* Add partial support for using anonymous bitfields (e.g., int : 0) to enforce Chad Rosier2011-08-041-0/+10
| | | | | | | | | | | | | | | | alignment. This fixes cases where the anonymous bitfield is followed by a non-bitfield member. E.g., struct t4 { int foo : 1; long : 0; char bar; }; Part of rdar://9859156 llvm-svn: 136858
* Remove dead code flagged by GCC's -Wunused-but-set-variable.Benjamin Kramer2011-07-311-3/+0
| | | | llvm-svn: 136581
* Add support for the 'Q' arm memory constraint.Eric Christopher2011-07-291-1/+4
| | | | | | Fixes rdar://9866494 llvm-svn: 136524
* After further discussion it has been determined that alignof should report Chad Rosier2011-07-261-4/+2
| | | | | | the preferred alignment. Thus, revert r135934, r135935, and r135940. llvm-svn: 136062
* Allow target to specify about using minimum alignment vs preferred. Takes ↵Chad Rosier2011-07-251-2/+4
| | | | | | | | | care of FIXME: Override "preferred align" for double and long long for ARM apcs-gnu ABI. Also part of rdar://9802874 llvm-svn: 135940
* remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner2011-07-231-12/+12
| | | | | | | | LLVM.h imports them into the clang namespace. llvm-svn: 135852
* Define the _MIPS_SIM builtin macro on MIPS platforms. Patch by Robert Millan!Bruno Cardoso Lopes2011-07-211-1/+19
| | | | llvm-svn: 135675
* Refactor r135502 to avoid an empty if else condition, per Eric's suggestion ↵Chad Rosier2011-07-191-4/+8
| | | | | | (good call!). llvm-svn: 135510
* Clang asserts "Invalid environment!" when using -ccc-host-triple Chad Rosier2011-07-191-0/+4
| | | | | | | | arch-pc-win32-macho (e.g., x86_64-pc-win32-macho), which appears to be a false positive. rdar://9786307 llvm-svn: 135502
* simplifyChris Lattner2011-07-141-1/+1
| | | | llvm-svn: 135170
* StringMap::first() is about to start returning a StringRef, adapt.Chris Lattner2011-07-141-1/+2
| | | | llvm-svn: 135166
* Disable avx feature from corei7-avx, and use -mavx for now. Right now, if ↵Bruno Cardoso Lopes2011-07-111-1/+1
| | | | | | | | | -mavx is specified, 128 avx code is used and we're not sure yet if this the behavior we want (and if it does, some improvements are needed before relying on it). llvm-svn: 134939
* Enable "avx" feature, so it can be seen by llvmBruno Cardoso Lopes2011-07-111-1/+1
| | | | llvm-svn: 134935
* Change -mno-mmx to be more compatible with gcc. Specifically, -mno-mmx ↵Eli Friedman2011-07-081-37/+53
| | | | | | | | | | | | should not imply -mno-sse. Note that because we don't usually touch the MMX registers anyway, all -mno-mmx needs to do is tweak the x86-32 calling convention a little for vectors that look like MMX vectors, and prevent the definition of __MMX__. clang doesn't actually stop the user from using MMX inline asm operands or MMX builtins in -mno-mmx mode; as a QOI issue, it would be nice to diagnose, but I doubt it really matters much. <rdar://problem/9694837> llvm-svn: 134770
* Fix a FIXME in clang ARM driver that was exposed as a bug with ARM backendEvan Cheng2011-07-081-11/+2
| | | | | | | | | | | | | change. Previously clang was passing the following feature strings to the ARM backend when CPU is cortex-a8: +neon,-vfp2,-vfp3 This used to work because -vfp2,-vfp3 had no effect after +neon. Now that the features are controlled by individual bits (with implied hierarchy), the net effect is all three features will be turned off. llvm-svn: 134691
* Fix a typo in the fpsr register and add the fpcr register.Eric Christopher2011-07-071-5/+5
| | | | | | Fixes PR10299 and rdar://9740322 llvm-svn: 134654
* FreeBSD gets FreeBSD target, just mipsel.Joerg Sonnenberger2011-07-071-1/+1
| | | | llvm-svn: 134619
* Fix C&P errorJoerg Sonnenberger2011-07-061-1/+1
| | | | llvm-svn: 134490
* Remove unused member of Builtin::Info.Eli Friedman2011-07-051-8/+8
| | | | llvm-svn: 134443
* Hook up mipsel-netbsd and mipsel-freebsd for OS specific handling.Joerg Sonnenberger2011-07-051-4/+11
| | | | llvm-svn: 134425
* Use OS-specific configuration for mips-netbsd and mips-freebsd.Joerg Sonnenberger2011-07-051-4/+11
| | | | llvm-svn: 134422
* Don't define _BIG_ENDIAN for NetBSD/PowerPC.Joerg Sonnenberger2011-07-051-1/+2
| | | | llvm-svn: 134411
* Fix indentationJoerg Sonnenberger2011-07-051-3/+3
| | | | llvm-svn: 134410
* Add explicit default case for -Wswitch-enum.Joerg Sonnenberger2011-07-041-0/+2
| | | | llvm-svn: 134399
* Use switch(os) style consistently. Add a bunch of NetBSD branches.Joerg Sonnenberger2011-07-041-10/+27
| | | | llvm-svn: 134393
* On PowerPC, both FreeBSD and NetBSD use ints for (s)size_tJoerg Sonnenberger2011-07-041-1/+5
| | | | llvm-svn: 134392
* Update for llvm commit r134291.Eric Christopher2011-07-021-1/+2
| | | | | | Fixes rdar://9714064 llvm-svn: 134292
OpenPOWER on IntegriCloud