aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/Targets.cpp
AgeCommit message (Collapse)Author
2012-12-04Adapt to LLVM commit 169291 which streamlines the usage of NaCl/NativeClientEli Bendersky
in the triple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169292 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-30Don't emit a warning with an input/output parameter. We assume the user ↵Bill Wendling
knows what they're doing here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169059 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-30Don't warn if the input size is less than the register size. Also don't warn ifBill Wendling
the output size is greater than the register size. No truncation occurs with those. Reword warning to make it clearer what's the problem is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169054 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Add ARM cortex-a5 subtargetQuentin Colombet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168958 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29Revert commit revision r168953, to change the commit message, which was emptyQuentin Colombet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168956 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-29git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168953 ↵Quentin Colombet
91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-27Fix the definition of the vfork() builtin on Haiku. PR14378.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168674 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-26Add missing "break". Thanks to Craig for spotting it.Eli Friedman
I'm looking at ways to fix the relevant test so it can catch this sort of mistake. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168618 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Enable inlining of 4 byte atomic ops on ppc32, 8 byte atomic ops on ppc64.Benjamin Kramer
Also fixes a bit/byte mismatch when checking if a target supports atomic ops of a certain size. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168260 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Add missing features for misc x86 CPUs to CPU feature translation. Patch by ↵Eli Friedman
Jung-uk Kim. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168239 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17Clean up X86 target feature translation code slightly. No intended ↵Eli Friedman
functional change. Patch by Jung-uk Kim. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168237 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16Since CreateTargetInfo is taking ownership of the target options, passDouglas Gregor
it as a pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168136 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14Remove the cellspu port.Eric Christopher
Approved by Chris Lattner. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167983 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-12The register constraint could mean a 16- or 8-bit register.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167735 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-12Check that the input size is correct for the given constraint.Bill Wendling
The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot place a 64-bit value into the 32-bit register. Error out instead of causing the compiler to spew general badness. <rdar://problem/12415959> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167717 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-10Add clang support of RTM from TSXMichael Liao
- New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature - Builtin macro '__RTM__' is defined if RTM feature is enabled - RTM intrinsic header is added and introduces 3 new intrinsics, namely '_xbegin', '_xend', and '_xabort'. - 3 new builtins are added to keep compatible with gcc, namely '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'. - Test cases for pre-defined macro and new intrinsic codegen are added. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167665 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-08Set TLSSupported to false on Haiku.Benjamin Kramer
Haiku does not support this (yet). Leaving it set to true leads to configure scripts detecting __thread being available and Clang emitting code for it, resulting in binaries the runtime_loader will refuse to load. Patch by Jonathan Schleifer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167576 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-05Rename LangOptions members for address sanitizer and thread sanitizer fromRichard Smith
*Sanitizer to Sanitize* in preparation for later patches. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167405 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-29This patch adds alignment information for long double to the 64-bit PowerPCBill Schmidt
ELF subtarget. The existing description string is moved from PPC64TargetInfo to its DarwinTargetInfo subclass, to avoid any changes to the Darwin ABI. PPC64TargetInfo now has two possible description strings: one for FreeBSD, which requires 8-byte alignment, and a default string that requires 16-byte alignment. I've added a test for PPC64 Linux to verify the 16-byte alignment. If somebody wants to add a separate test for FreeBSD, that would be great. Note that there is a companion patch to update the alignment information in LLVM, which I am committing now as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166927 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25Recommit Eric's code to validate ASM string's constraints and modifiers.Bill Wendling
This code checks the ASM string to see if the output size is able to fit within the variable specified as the output. For instance, scalar-to-vector conversions may not really work. It's on by default, but can be turned off with a flag if you think you know what you're doing. This is placed under a flag ('-Wasm-operand-widths') and flag group ('-Wasm'). <rdar://problem/12284092> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166737 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25Modify the targets to set appropriate calling convention defaults and C ↵David Tweed
variables when using a gnueabihf or aapcs-vfp target. Tested by me and Wei-Ren Chen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166679 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25Revert r166647 to rethink the patch...Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166655 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25Add some support for diagnosing possibly mismatched constraint, type size andBill Wendling
modifiers. (From an idea by Eric...) <rdar://problem/12284092> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166647 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22Fix pre-commit refacto failure.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166431 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22driver/Darwin: Follow up to last patch, M-class CPUs are AAPCS but not EABI.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166430 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Serialize TargetOptions into an AST file, and make sure that we keepDouglas Gregor
target options around so they can be accessed at any point (rather than keeping them transient). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166072 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16Add pnaclcall convention to Native Client targets.Derek Schuff
Because PNaCl bitcode must be target-independent, it uses some different bitcode representations from other targets (e.g. byval and sret for structures). This means that without additional type information, it cannot meet some native ABI requirements for some targets (e.g. passing structures containing unions by value on x86-64). To allow generation of code which uses the correct native ABIs, we also support triples such as x86_64-nacl, which uses target-dependent IR (as opposed to le32-nacl, which uses byval and sret). To allow interoperation between the two types of code, this patch adds a calling convention attribute to be used in code compiled with the target-dependent triple, which will generate code using the le32-style bitcode. This calling convention does not need to be explicitly supported in the backend because it determines bitcode representation rather than native conventions (the backend just needs to undersand how to handle byval and sret for the Native Client OS). This patch implements __attribute__((pnaclcall)) to generate calls in bitcode according to the le32 bitcode conventions, an attribute which is accepted by any Native Client target, but issues a warning otherwise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166065 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-15Teach TargetInfo to hold on to the TargetOptions with which it wasDouglas Gregor
created. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165943 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-12Add TargetInfo for r600.Eli Friedman
Patch by Tom Stellard. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165850 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-11Properly factor Native Client defines to support NaCl as an OSDerek Schuff
with x86/ARM architecture git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165722 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-11Make X86_64ABIInfo clean for ABIs with 32 bit pointers, such as X32Derek Schuff
and Native Client git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165715 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-11X86: add F16C support in ClangManman Ren
Support the following intrinsics: _mm_cvtph_ps, _mm256_cvtph_ps, _mm_cvtps_ph, _mm256_cvtps_ph rdar://12407875 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165685 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10Fix PR 11709: Change the definition of va_list to meet AAPCS requirementLogan Chien
AAPCS ABI Section 7.1.4 [1] specifies that va_list should be defined as struct __va_list { void *__ap;}; And in C++, it is defined in namespace std. [1] http://infocenter.arm.com/help/topic /com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf Patch by Weiming Zhao. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165609 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-02Allowing individual targets to determine whether a given calling convention ↵Aaron Ballman
is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs. Fixes PR13782 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165015 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Add ARM VFPv4 feature and enable it by default for Swift.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164906 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29Add armv7s and some other arm variants supported by Mach-O files.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164905 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Disable source fortification on Darwin with AddressSanitizer.Alexander Potapenko
ASan doesn't play well with -D_FORTIFY_SOURCE, which is enabled by default starting at OS X 10.7 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164299 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18Add e500mc and e5500 to the list of valid PPC CPU names.Hal Finkel
Patch by Tobias von Koch! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164176 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13This patch introduces A15 as a target in Clang.Silviu Baranga
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163804 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-08Do not construct StringRef from NULL argument.Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163465 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-08Provide some ACLE C defines. This should fix PR13796Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163464 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-02Rename ANDROIDEABI to Android.Logan Chien
Most of the code guarded with ANDROIDEABI are not ARM-specific, and having no relation with arm-eabi. Thus, it will be more natural to call this environment "Android" instead of "ANDROIDEABI". Note: We are not using ANDROID because several projects are using "-DANDROID" as the conditional compilation flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163088 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-29Define __mips64 / __mips64__ macros for MIPS 64-bit targets.Simon Atanasyan
The patch suggested by Brad Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162858 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-29Use getTargetDefines() virtual function in MipsTargetInfoBase successorsSimon Atanasyan
to define all macros for MIPS targets. Remove redundant virtual function getArchDefines(). Two virtual functions for this task are really too much. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162853 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-29Factor out MIPS macro definitions common for all MIPS targets.Simon Atanasyan
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162852 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-29Define _MIPS_ARCH and _MIPS_ARCH_<cpu name> macros for MIPS targets.Simon Atanasyan
The patch suggested by Logan Chien. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162840 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-16Remove FIXME, the constraints contain more options than theEric Christopher
current available documentation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162065 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-16Add a missing 'break' to ensure that we reject inline assemblyEric Christopher
constraints we don't recognize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162064 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-10Frontend: define _LP64 in a target-independent wayDylan Noblesmith
Instead of adding it to each individual subclass in Targets.cpp, simply check the appropriate target values. Where before it was only on x86_64 and ppc64, it's now also defined on mips64 and nvptx64. Also add a bunch of negative tests to ensure it is *not* defined on any other architectures while we're here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161685 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08clang support for Bitrig (an OpenBSD fork); patch by David Hill.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161546 91177308-0d34-0410-b5e6-96231b3b80d8