summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* LLVM supports TLS on Windows and we can use it from ClangReid Kleckner2014-04-291-2/+0
| | | | | | | | Patch by Martell Malone! Differential Revision: http://reviews.llvm.org/D3421 llvm-svn: 207470
* [mips] Support 128-bit int in N32 ABI by overriding TargetInfo::hasInt128Type()Daniel Sanders2014-04-241-0/+2
| | | | | | | | | | | | | | Summary: The condition in the base class is rather strange. It says a target has the 128-bit integer type if the size of a pointer is >= 64-bits. N32 has 32-bit pointers but 64-bit integers. I'm a bit reluctant to change this for all targets so this patch makes the method virtual and overrides it for MIPS64. Reviewers: atanasyan Reviewed By: atanasyan Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D3472 llvm-svn: 207121
* [mips] Correct size_t and ptrdiff_t for N32.Daniel Sanders2014-04-241-10/+22
| | | | | | | | | | | | | | Summary: Correct size_t to be unsigned int and ptrdiff_t to be signed long. The types were the correct size before this change but the exact type matters for name mangling and exception handling in C++. Reviewers: atanasyan Reviewed By: atanasyan Differential Revision: http://reviews.llvm.org/D3470 llvm-svn: 207093
* [ARM64] Change inline assembly constraints to be more lax, to match the ↵James Molloy2014-04-231-30/+21
| | | | | | | | behaviour of Clang/AArch64 and GCC. GCC allows sub-64bit values to use the 'r' register constraint. llvm-svn: 206963
* Try to fix bad Twine usage in r206791 with std::stringReid Kleckner2014-04-211-1/+3
| | | | | | | I'm pretty sure I was referencing destroyed temporaries here. I'm open to suggestions on how to write this better. llvm-svn: 206804
* MinGW: Define __stdcall&co when -fms-extensions is disabledReid Kleckner2014-04-211-22/+27
| | | | | | | | | | This is for compatibility with GCC. Reviewers: asl Differential Revision: http://reviews.llvm.org/D3444 llvm-svn: 206791
* [ARM64] Teach Targets.cpp about Cortex-A53 and Cortex-A57, and enable more ↵James Molloy2014-04-171-0/+1
| | | | | | tests. llvm-svn: 206463
* Revert "Move -fms-extensions predefined macros into InitPreprocessor"Reid Kleckner2014-04-161-0/+13
| | | | | | | | | | This reverts commit r206413. This was proposed before, but it's not clear if this is really a good idea: http://reviews.llvm.org/D3034 llvm-svn: 206415
* Move -fms-extensions predefined macros into InitPreprocessorReid Kleckner2014-04-161-13/+0
| | | | | | | If someone on Linux asks for -fms-extensions, there's no reason not to define the feature test macros that MSVC defines. llvm-svn: 206413
* [ARM64] Allow the disabling of NEON and crypto instructions. Update tests to ↵James Molloy2014-04-161-18/+27
| | | | | | pass -target-feature +neon. llvm-svn: 206394
* [ARM64] Fix up predefines, including adding big endian support to Targets.cppJames Molloy2014-04-161-21/+78
| | | | llvm-svn: 206390
* [SystemZ] Don't indent SystemZTargetInfo relative to its namespaceRichard Sandiford2014-04-101-91/+91
| | | | | | Whitespace only. No functional change intended. llvm-svn: 205960
* Driver: add target definition for Windows on ARMSaleem Abdulrasool2014-04-041-5/+96
| | | | | | | | | This introduces the definitions needed for the Windows on ARM target. Add target definitions for both the MSVC environment and the MSVC + Itanium C++ ABI environment. The Visual Studio definitions correspond to the definitions provided by Visual Studio 2012. llvm-svn: 205650
* Basic: rename VisualStudio to WindowsSaleem Abdulrasool2014-04-041-6/+6
| | | | | | | | Visual Studio is the Integrated Development Environment. The toolchain is generally referred to MSVC. Rename the target information to be more precise as per the recommendation of Reid Kleckner. llvm-svn: 205609
* [PowerPC] Make -pg generate calls to _mcount not mcountHal Finkel2014-03-301-0/+10
| | | | | | | | | At least on REL6 (Linux/glibc 2.12), the proper symbol for generating gprof data is _mcount, not mcount. Prior to this change, compiling with -pg would generate linking errors (because of unresolved references to mcount), after this change -pg seems at least minimally functional. llvm-svn: 205144
* ARM64: initial clang support commit.Tim Northover2014-03-291-6/+311
| | | | | | | | | | | This adds Clang support for the ARM64 backend. There are definitely still some rough edges, so please bring up any issues you see with this patch. As with the LLVM commit though, we think it'll be more useful for merging with AArch64 from within the tree. llvm-svn: 205100
* Add ARM big endian Target (armeb, thumbeb)Christian Pirker2014-03-281-33/+110
| | | | | | Reviewed at http://llvm-reviews.chandlerc.com/D3096 llvm-svn: 205008
* Use the new Windows environment for target detectionSaleem Abdulrasool2014-03-271-11/+23
| | | | | | | | | This follows the LLVM change to canonicalise the Windows target triple spellings. Rather than treating each Windows environment as a single entity, the environments are now modelled properly as an environment. This is a mechanical change to convert the triple use to reflect that change. llvm-svn: 204978
* From Matt Thomas: use long long for [u]int64_t and [u]intmax_t onJoerg Sonnenberger2014-03-261-5/+9
| | | | | | NetBSD/aarch64 to simplify code sharing with NetBSD/arm. llvm-svn: 204798
* [PPC64LE] Add a CALL_ELF macro to indicate use of the ELFv2 ABI.Will Schmidt2014-03-241-0/+1
| | | | | | | | | | | | | | | | | Additional clarification from Uli for the background on _CALL_ELF: "Historically GCC has provided various _CALL_... predefines depending on the ABI currently being compiled for. (_CALL_SYSV,_CALL_AIXDESC, _CALL_DARWIN ) When we needed a new define for the current ABI, we decided on using _CALL_ELF since the official name of the ABI is the OpenPower ElfV2 ABI, with the current Linux ABI retro-actively being renamed the ELFv1 ABI and so we decided on using _CALL_ELF to identify the Linux (+BSD etc.) ELF ABI, with _CALL_ELF=1 for the v1 ABI and _CALL_ELF=2 for the v2 ABI. (Note that this matches the gcc compiler switch -mabi=elfv1 vs. -mabi=elfv2)." In code, a (_CALL_ELF==2) check will indicate when the ELFv2 ABI is to be used. This is the desired default for the PPC64 LE target. llvm-svn: 204627
* Update DataLayout/DescriptionString for ppc64leWill Schmidt2014-03-241-2/+7
| | | | | | | | | | Update DataLayout/DescriptionString for ppc64le Similar LLVM change made in r203664 Testcase included. llvm-svn: 204613
* AArch64_BE test case for predefined macrosChristian Pirker2014-03-241-3/+2
| | | | llvm-svn: 204604
* De-virtualize a method since it doesn't override anything and isn't ↵Craig Topper2014-03-111-2/+1
| | | | | | overridden itself. llvm-svn: 203538
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-111-364/+363
| | | | | | class. llvm-svn: 203537
* Make __LITTLE_ENDIAN__/__BIG_ENDOAN__ common PredefinedMacrosRobert Lytton2014-03-101-12/+0
| | | | llvm-svn: 203455
* [C++11] Replace OwningPtr include with <memory>.Ahmed Charles2014-03-091-1/+1
| | | | llvm-svn: 203389
* Replace OwningPtr with std::unique_ptr.Ahmed Charles2014-03-071-1/+1
| | | | | | This compiles cleanly with lldb/lld/clang-tools-extra/llvm. llvm-svn: 203279
* Change OwningPtr::take() to OwningPtr::release().Ahmed Charles2014-03-071-1/+1
| | | | | | This is a precursor to moving to std::unique_ptr. llvm-svn: 203275
* Update for LLVM API changeSaleem Abdulrasool2014-03-061-1/+1
| | | | | | | Use the new getObjectFormat/setObjectFormat instead of Environment now that the file format is a separate field. llvm-svn: 203161
* Add a PPC inline asm constraint type for single CR bitsHal Finkel2014-03-021-0/+15
| | | | | | | | | | | | | | | | This adds support for the PPC "wc" inline asm constraint (used for allocating individual CR bits). Support for this constraint type was recently added to the LLVM PowerPC backend. Although gcc does not currently support allocating individual CR bits, this identifier choice has been coordinated with the gcc PowerPC team, and will be marked as reserved for this purpose in the gcc constraints.md file. Prior to this change, none of the multi-character PPC constraints were handled correctly (the '^' escape character was not being added as required by the parsing code in LLVM). This should now be fixed. I'll add tests for these other constraints as support is added for them in the backend. llvm-svn: 202658
* Give sparcv9 the ability to set the target cpu. Change it from acceptingRoman Divacky2014-02-251-0/+16
| | | | | | | -march which doesnt exist on sparc gcc to -mcpu. While here adjust a few tests to not write an unused temporary file. llvm-svn: 202177
* Add AArch64 big endian Target (aarch64_be)Christian Pirker2014-02-251-6/+49
| | | | llvm-svn: 202151
* [AArch64] Change int64_t from 'long long int' to 'long int' for AArch64 target.Kevin Qin2014-02-241-0/+3
| | | | | | | | | | Most 64-bit targets define int64_t as long int, and AArch64 should make same definition to follow LP64 model. In GNU tool chain, int64_t is defined as long int for 64-bit target. So to get consistent with GNU, it's better Changing int64_t from 'long long int' to 'long int', otherwise clang will get different name mangling suffix compared with g++. llvm-svn: 202004
* [mips] Make it impossible to have UnknownABI in CodeGen and Integrated ↵Daniel Sanders2014-02-201-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | Assembler. Summary: This removes the need to coerce UnknownABI to the default ABI (O32 for MIPS32, N64 for MIPS64 [*]) in both MipsSubtarget and MipsAsmParser. Clang has been updated to disable both possible default ABI's before enabling the ABI it intends to use. [*] N64 being the default for MIPS64 is not actually correct. However N32 is not fully implemented/tested yet. Depends on: D2830 Reviewers: jacksprat, matheusalmeida Reviewed By: matheusalmeida Differential Revision: http://llvm-reviews.chandlerc.com/D2832 Differential Revision: http://llvm-reviews.chandlerc.com/D2846 llvm-svn: 201792
* ARM: implement support for crypto intrinsics in arm_neon.hTim Northover2014-02-031-0/+8
| | | | llvm-svn: 200708
* NetBSD uses signed wchar_t on AArch64. It also wants __LITTLE_ENDIAN__ /Joerg Sonnenberger2014-02-021-0/+11
| | | | | | __BIG_ENDIAN__ as on other architectures. llvm-svn: 200655
* ARM & AArch64: share the BI__builtin_neon enum defs.Tim Northover2014-01-301-0/+14
| | | | llvm-svn: 200470
* SPARCv9 supports atomic operations up to 64 bits.Jakob Stoklund Olesen2014-01-301-0/+1
| | | | | | Patch by Roman Divacky! llvm-svn: 200452
* Cortex-M3 and Cortex-M4 should not enable hwdiv-arm (committing again, with ↵Artyom Skrobov2014-01-291-2/+3
| | | | | | an updated test) llvm-svn: 200385
* Revert "Cortex-M3 and Cortex-M4 should not enable hwdiv-arm"Reid Kleckner2014-01-271-3/+2
| | | | | | | | | This reverts commit r200233. The test required a registered ARM target, it was testing LLVM's generated assembly, and it should have been an IRGen test. llvm-svn: 200242
* Cortex-M3 and Cortex-M4 should not enable hwdiv-armArtyom Skrobov2014-01-271-2/+3
| | | | llvm-svn: 200233
* XCore target exception handlingRobert Lytton2014-01-271-0/+4
| | | | | | Implement __builtin_eh_return_data_regno() llvm-svn: 200231
* [Mips] Fix __mips macro definition.Simon Atanasyan2014-01-271-1/+7
| | | | llvm-svn: 200223
* [Mips] Change default CPU for MIPS 32/64 targets. Now they are ↵Simon Atanasyan2014-01-271-2/+2
| | | | | | mips32r2/mips64r2 respectively. llvm-svn: 200222
* Fix r195149. Triple should correctly reflect that target. If it contains ios,Evan Cheng2014-01-261-31/+25
| | | | | | | | | e.g. thumbv7m-apple-ios3.0.0-eabi, then it should mean it's an iOS target. For embedded targets, the OS should be unknown, e.g. thumbv7m-apple-unknown-macho. Since Tim has recently fixed the triple, r195149 is no longer needed. rdar://15911035 llvm-svn: 200164
* Use canonical spelling of NetBSDJoerg Sonnenberger2014-01-261-1/+1
| | | | llvm-svn: 200157
* PR18465: [Thumbv8] add predefined macrosWeiming Zhao2014-01-221-4/+8
| | | | | | | | | | currently, for thumbv8, two predefined macros are missing: define __THUMB_INTERWORK__ 1 define __THUMB_INTERWORK__ 1 This patch adds them for thumbv8. llvm-svn: 199819
* [ARM] Add ACLE enum/wchar size predefinesBradley Smith2014-01-201-0/+6
| | | | llvm-svn: 199642
* SPARCv9 implements long double as an IEEE quad.Jakob Stoklund Olesen2014-01-161-0/+6
| | | | llvm-svn: 199399
* MachO: use *-*-*-macho for MachO embedded targets.Tim Northover2014-01-161-3/+6
| | | | | | | | | | | | Previously we had bodged together some hacks mapping MachO embedded targets (i.e. mainly ARM v6M and v7M) to the "*-*-darwin-eabi" triple. This is incorrect in both details (they don't run Darwin and they're not EABI in any real sense). This commit appropriates the existing "MachO" environment for the purpose instead. llvm-svn: 199367
OpenPOWER on IntegriCloud