summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
Commit message (Collapse)AuthorAgeFilesLines
...
* Pull out the ppc incompatible features check into a separate function.Eric Christopher2015-08-311-27/+36
| | | | llvm-svn: 246467
* Update for several APIs in LLVM that now use StringRefs rather thanChandler Carruth2015-08-301-5/+2
| | | | | | | | const char pointers. In turn, push this through Clang APIs as well, simplifying a number of bits of code that was handling the oddities of nullptrs. llvm-svn: 246375
* Update for API change in LLVM: ARMTargetParser class is just the ARMChandler Carruth2015-08-301-9/+9
| | | | | | namespace. llvm-svn: 246368
* Fold TargetInfo::handleUserFeatures into TargetInfo::initFeatureMap.Eric Christopher2015-08-281-44/+38
| | | | llvm-svn: 246346
* Instead of duplicating code, call the base implementation.Eric Christopher2015-08-281-7/+1
| | | | llvm-svn: 246260
* Merge the two feature map setting functions into a single functionEric Christopher2015-08-281-29/+34
| | | | | | and replace all callers. llvm-svn: 246259
* [X86] Bump Darwin MaxVectorAlign to 64 when AVX512 is enabled.Ahmed Bougacha2015-08-271-4/+6
| | | | | | | | | | | Without this, 64-byte vector types (__m512), specified to be 64-byte aligned in the AVX512 draft SysV ABI, will only be 32-byte aligned. This is analoguous to AVX, for which we accept 32-byte max alignment. Differential Revision: http://reviews.llvm.org/D10724 llvm-svn: 246230
* [X86] Conditionalize Darwin MaxVectorAlign on the presence of AVX.Ahmed Bougacha2015-08-271-2/+19
| | | | | | | | | There's no point in using a larger alignment if we have no instructions that would benefit from it. Differential Revision: http://reviews.llvm.org/D12389 llvm-svn: 246229
* [X86] Use AVX features instead of ABI to init. SimdDefaultAlign.Ahmed Bougacha2015-08-271-1/+1
| | | | | | | | | | | | | | | The ABI string only exists to communicate with TargetCodeGenInfo. Concretely, since we only used "avx*" ABI strings on x86_64 (as AVX doesn't affect the i386 ABIs), this meant that, when initializing SimdDefaultAlign, we would ignore AVX/AVX512 on i386, for no good reason. Instead, directly check the features. A similar change for MaxVectorAlign will follow. Differential Revision: http://reviews.llvm.org/D12390 llvm-svn: 246228
* Remove a dead assert, we'd have gotten the case above.Eric Christopher2015-08-271-1/+0
| | | | llvm-svn: 246202
* const-ify TargetInfo::handleUserFeatures.Eric Christopher2015-08-271-2/+2
| | | | llvm-svn: 246180
* Pass in a cpu to initDefaultFeatures so that we can share this codeEric Christopher2015-08-271-9/+16
| | | | | | | | | with multiple uses of feature map construction. Note: We could make this a static function on TargetInfo if we fix the x86 port needing to check the triple in an isolated case. llvm-svn: 246128
* const-ify X86TargetInfo::getCPUKind.Eric Christopher2015-08-271-1/+1
| | | | llvm-svn: 246127
* Pull out cpu string -> enum parsing for x86 as a separate function,Eric Christopher2015-08-261-66/+70
| | | | | | this is going to see use shortly in unifying feature set construction. llvm-svn: 246122
* Convert a bunch of loops to ranged-for and clean up accordingly.Eric Christopher2015-08-261-170/+69
| | | | llvm-svn: 246027
* Remove dead code associated with parsing and setting ABI based onEric Christopher2015-08-261-15/+0
| | | | | | string name. llvm-svn: 246021
* Remove a TODO that isn't going to get fixed in this way.Eric Christopher2015-08-261-3/+0
| | | | llvm-svn: 246020
* Update file comment to more accurately describe what's implemented.Eric Christopher2015-08-261-1/+1
| | | | llvm-svn: 246006
* Rewrite the PPC target feature handling to more resemble other targets.Eric Christopher2015-08-251-32/+42
| | | | | | | | | This involved specializing handleUserFeatures so that we could perform diagnostics on -only- user supplied features and migrating the rest of the initialization functions to set features based on enabling and disabling full feature sets. No functional change intended. llvm-svn: 245936
* Extract handling of user defined features into a function so we canEric Christopher2015-08-251-6/+2
| | | | | | specialize it on the targets. llvm-svn: 245935
* Reimplement the PPC explicit option checking to be a bit more obviousEric Christopher2015-08-251-8/+19
| | | | | | that we're looking for conflicting options and give an explanation. llvm-svn: 245914
* [AArch64] Define the macro __ARM_FP16_ARGSKeith Walker2015-08-241-0/+1
| | | | | | | | | | | | | The ACLE (ARM C Language Extensions) 2.0 defines that the predefined macro __ARM_FP16_ARGS should be defined if __fp16 can be used as an argument and result. The support for __fp16 to be used as an argument and result is already implemented for AArch64 so this change is just adding the missing macro. Differential Revision: http://reviews.llvm.org/D12240 llvm-svn: 245833
* [OPENMP 4.1] Initial support for 'simdlen' clause.Alexey Bataev2015-08-211-0/+2
| | | | | | Add parsing/sema analysis for 'simdlen' clause in simd directives. Also add check that if both 'safelen' and 'simdlen' clauses are specified, the value of 'simdlen' parameter is less than the value of 'safelen' parameter. llvm-svn: 245692
* Revert the 64bit part of r245084; long double values were not changed byYaron Keren2015-08-201-4/+1
| | | | | | it as they are already set correctly by X86_64TargetInfo and X86TargetInfo. llvm-svn: 245620
* Revert the 32bit part of r245084; mingw values were correct before it.Yaron Keren2015-08-201-5/+1
| | | | llvm-svn: 245618
* [OPENMP 4.1] Initial support for modifiers in 'linear' clause.Alexey Bataev2015-08-201-2/+15
| | | | | | | | | | | | | | | | | | | | | | OpenMP 4.1 adds 3 optional modifiers to 'linear' clause. Format of 'linear' clause has changed to: ``` linear(linear-list[ : linear-step]) ``` where linear-list is one of the following ``` list modifier(list) ``` where modifier is one of the following: ``` ref (C++) val (C/C++) uval (C++) ``` Patch adds parsing and sema analysis for these modifiers. llvm-svn: 245550
* According to i686 ABI, long double size on x86 is 12 bytes not 16 bytes.Yaron Keren2015-08-191-1/+2
| | | | | | | See https://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/i386-and-x86-64-Options.html llvm-svn: 245459
* [ARM] Proper generic cpus handlingVladimir Sukharev2015-08-191-12/+10
| | | | | | | | | | | | | | "generic" cpu was wrongly handled as exact real CPU name of ARMv8.1A architecture. This has been fixed, now it is abstract name, suitable for any arch. Reviewers: rengolin Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D11640 llvm-svn: 245445
* Rename getDefaultFeatures -> initDefaultFeatures and update commentEric Christopher2015-08-191-10/+10
| | | | | | with the current behavior as the name seems to match what's going on. llvm-svn: 245405
* Remove dead code, there's no need for an override that just duplicatesEric Christopher2015-08-171-2/+0
| | | | | | the default behavior. llvm-svn: 245251
* WindowsX86: long double is x87DoubleExtended on mingwMartell Malone2015-08-141-2/+8
| | | | | | | | | | | | | | | | Summary: long double on x86 mingw is 80bits and is aligned to 16bytes Fixes: https://llvm.org/bugs/show_bug.cgi?id=24398 Reviewers: rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D12037 llvm-svn: 245084
* Windows ARM: ignore calling conventions as described on MSDNMartell Malone2015-08-141-0/+13
| | | | | | | | | | | | | | | | | | Summary: MSDN says that fastcall, stdcall, thiscall, and vectorcall are all accepted but ignored on ARM and X64. https://msdn.microsoft.com/en-us/library/984x0h58.aspx MSDN also says cdecl is also accepted and typically ignored This patch brings ARM in line with how we ignore them for X64 Reviewers: rnk Subscribers: compnerd, cfe-commits Differential Revision: http://reviews.llvm.org/D12034 llvm-svn: 245076
* [modules] Add an experimental -cc1 feature to embed the contents of an inputRichard Smith2015-08-141-0/+7
| | | | | | | | | | | file in the .pcm files. This allows a smaller set of files to be sent to a remote build worker when building with explicit modules (for instance, module map files need not be sent along with the corresponding precompiled modules). This doesn't actually make the embedded files visible to header search, so it's not useful as a packaging format for public header files. llvm-svn: 245028
* Wdeprecated: StoredDiagnostics are stored in a SmallVector, so make sure ↵David Blaikie2015-08-131-4/+0
| | | | | | | | | | | they're copy/movable Removing the no-op dtor makes these objects safely implicitly copyable/movable/etc. (& tidy up the ctor, while I'm here) llvm-svn: 244971
* Removed one too many braces.Brad Smith2015-08-131-0/+1
| | | | llvm-svn: 244962
* [SPARC] Fix types of size_t, intptr_t, and ptrdiff_t on OpenBSD.Brad Smith2015-08-131-7/+10
| | | | llvm-svn: 244961
* [Modules] Add Darwin-specific compatibility module map parsing hacksBen Langmuir2015-08-131-0/+9
| | | | | | | | | | | | | | | | This preserves backwards compatibility for two hacks in the Darwin system module map files: 1. The use of 'requires excluded' to make headers non-modular, which should really be mapped to 'textual' now that we have this feature. 2. Silently removes a bogus cplusplus requirement from IOKit.avc. Once we start diagnosing missing requirements and headers on auto-imports these would have broken compatibility with existing Darwin SDKs. llvm-svn: 244912
* Add SourceManager::dump() to dump the current set of SLocEntries.Richard Smith2015-08-131-0/+57
| | | | llvm-svn: 244852
* [modules] If loading a .pcm file would cause us to run out of source ↵Richard Smith2015-08-121-1/+3
| | | | | | locations, attempt to fail more gracefully. (No test; this requires >= 4GB of preprocessed input...) llvm-svn: 244822
* Rangify some for loops; NFC.Aaron Ballman2015-08-121-6/+5
| | | | llvm-svn: 244749
* [MIPS] Use arch values for lock-free atomic operationsPetar Jovanovic2015-08-111-2/+1
| | | | | | | | | Let NaClMips32ELTargetInfo inherit arch values for maximum width lock-free atomic operations. Differential Revision: http://reviews.llvm.org/D11949 llvm-svn: 244675
* Update a comment to be more descriptive.Eric Christopher2015-08-071-1/+1
| | | | llvm-svn: 244346
* This patch commits OpenMP 4 target device clausesMichael Wong2015-08-071-0/+2
| | | | | | | This is committed on behalf of Kelvin Li http://reviews.llvm.org/D11469?id=31227 llvm-svn: 244325
* Make sure the Features field of the Builtin Info struct is always ↵Craig Topper2015-08-072-36/+44
| | | | | | | | initialized. Silences -Wmissing-field-initializers. While there convert 0 in the BUILTIN macros to nullptr. llvm-svn: 244307
* Make 'arm' cover both 32 and 64 bit architecutresBen Langmuir2015-08-071-0/+2
| | | | | | | | | | | | | | | | ... and add aarch32 to specifically refer to the 32-bit ones. Previously, 'arm' meant only 32-bit architectures and there was no way for a module to build with both 32 and 64 bit ARM architectures. Now a module that is intended to work on both architectures can specify requires arm whereas a module only for 32-bit platforms can say requires aarch32 and just like before, 64-bit only can say requires aarch64 llvm-svn: 244306
* Continue the work from r243908 by adding a Features field to Builtin::InfoEric Christopher2015-08-061-2/+4
| | | | | | | | so that we can populate it on a per-target basis with required features. Future commits will start using this information for warnings. llvm-svn: 244286
* Rename the non-coding style conformant functions in namespace BuiltinsEric Christopher2015-08-061-9/+9
| | | | | | to match the rest of their brethren and reformat the bits that need it. llvm-svn: 244186
* Rename DescriptionString -> DataLayoutString as it matches the actualEric Christopher2015-08-052-86/+84
| | | | | | use of the string. llvm-svn: 244178
* Remove unused header includes.Eric Christopher2015-08-051-1/+0
| | | | llvm-svn: 244131
* Rename builtin_lang -> Langs to match the rest of the code a bit better.Eric Christopher2015-08-051-9/+10
| | | | llvm-svn: 244126
OpenPOWER on IntegriCloud