summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
Commit message (Collapse)AuthorAgeFilesLines
...
* [OPENMP] Initial parsing and sema analysis for 'taskwait' directive.Alexey Bataev2014-07-181-0/+1
| | | | llvm-svn: 213363
* [OPENMP] Initial parsing and sema analysis for 'barrier' directive.Alexey Bataev2014-07-181-0/+1
| | | | llvm-svn: 213360
* [OPENMP] Initial parsing and sema analysis of 'taskyield' directive.Alexey Bataev2014-07-181-0/+1
| | | | llvm-svn: 213355
* [AArch64] Implement Clang CLI interface proposal about "-march".Kevin Qin2014-07-181-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Revert "Add default feature for CPUs on AArch64 target in Clang" at r210625. Then, all enabled feature will by passed explicitly by -target-feature in -cc1 option. 2. Get "-mfpu" deprecated. 3. Implement support of "-march". Usage is: -march=armv8-a+[no]feature For instance, "-march=armv8-a+neon+crc+nocrypto". Here "armv8-a" is necessary, and CPU names are not acceptable. Candidate features are fp, neon, crc and crypto. Where conflicting feature modifiers are specified, the right-most feature is used. 4. Implement support of "-mtune". Usage is: -march=CPU_NAME For instance, "-march=cortex-a57". This option will ONLY get micro-architectural feature enabled specifying to target CPU, like "+zcm" and "+zcz" for cyclone. Any architectural features WON'T be modified. 5. Change usage of "-mcpu" to "-mcpu=CPU_NAME+[no]feature", which is an alias to "-march={feature of CPU_NAME}+[no]feature" and "-mtune=CPU_NAME" together. Where this option is used in conjunction with -march or -mtune, those options take precedence over the appropriate part of this option. llvm-svn: 213353
* If char/short are shorter than int, do not use U as suffix forJoerg Sonnenberger2014-07-171-1/+5
| | | | | | | | constants. Comparing int against a constant of the given type like UINT8_MAX will otherwise force a promotion to unsigned int, which is typically not expected. llvm-svn: 213301
* [OPENMP] Initial parsing and sema analysis of 'mergeable' clause.Alexey Bataev2014-07-171-0/+2
| | | | llvm-svn: 213262
* [OPENMP] Initial support for parsing and sema analysis of 'untied' clause.Alexey Bataev2014-07-171-0/+2
| | | | llvm-svn: 213257
* [OPENMP] Parsing/Sema analysis of directive 'master'Alexander Musman2014-07-171-0/+1
| | | | llvm-svn: 213237
* [OPENMP] Initial parsing and sema analysis for 'final' clause.Alexey Bataev2014-07-171-0/+2
| | | | llvm-svn: 213232
* Driver: bifurcate extended and basic MSC versioningSaleem Abdulrasool2014-07-161-3/+4
| | | | | | | | | | | | | | | | | | | | | | | This restores the original behaviour of -fmsc-version. The older option remains as a mechanism for specifying the basic version information. A secondary option, -fms-compatibility-version permits the user to specify an extended version to the driver. The new version takes the value as a dot-separated value rather than the major * 100 + minor format that -fmsc-version format. This makes it easier to specify the value as well as a more flexible manner for specifying the value. Specifying both values is considered an error. The older parameter is left solely as a driver option, which is normalised into the newer parameter. This allows us to retain a single code path in the compiler itself whilst preserving the semantics of the old parameter as well as avoid having to determine which of two formats are being used by the invocation. The test changes are due to the fact that the compiler no longer supports the old option, and is a direct conversion to the new option. llvm-svn: 213119
* Provide builtin macros as template for PRIab and SCNab, matching theJoerg Sonnenberger2014-07-151-0/+19
| | | | | | underlaying types. llvm-svn: 213063
* VirtualFileSystem: Correctly generate the mapping for an empty VFSJustin Bogner2014-07-151-23/+22
| | | | | | | In r209332 I accidentally broke generation of empty VFS maps. This fixes the issue and adds a test. llvm-svn: 213028
* Drop separate UIntMaxType and just derive it from IntMaxType.Joerg Sonnenberger2014-07-142-19/+2
| | | | llvm-svn: 212987
* Introduce getCorrespondingUnsignedType() in TargetInfo to work like theJoerg Sonnenberger2014-07-141-2/+4
| | | | | | | | corresponding AST context function, only restricted to basic integer types. Use this to ensure getUIntPtrType() gives types consistent with getIntPtrType(). Fix NVPTX backend to give signed intptr_t. llvm-svn: 212982
* Fix typosAlp Toker2014-07-141-1/+1
| | | | | | Also consolidate 'backward compatibility' llvm-svn: 212974
* [OPENMP] Parsing and sema analysis for 'omp task' directive.Alexey Bataev2014-07-111-1/+10
| | | | llvm-svn: 212804
* Remove use of uniform initialization ({}) introduced in r212725 since this ↵David Blaikie2014-07-101-1/+1
| | | | | | isn't supported in MSVC. llvm-svn: 212754
* [x32] Adding X32 target support to driver, including ↵Zinovy Nis2014-07-101-5/+11
| | | | | | | | | | TargetInfo,DescriptionString, flags, paths lookup, etc. Cover changes with new tests. The author of the patch is Pavel Chupin (@pavel.v.chupin). The changes enable "hello world" on x32 target (x86_64-*-linux-gnux32). s/isX32/IsX32/ also fixed. Differential Revision: http://reviews.llvm.org/D4180 llvm-svn: 212725
* [mips][mips64r6] Define _MIPS_FPSET, __mips_fpr, and __mips_nan2008 ↵Daniel Sanders2014-07-091-2/+12
| | | | | | | | | | | | correctly on MIPS32r6/MIPS64r6 Summary: This removes the need to pass -mnan=2008 explicitly to be able to compile the test-suite for MIPS32r6/MIPS64r6. Differential Revision: http://reviews.llvm.org/D4433 llvm-svn: 212619
* [mips] clz is defined to give 32 for zero. Similarly, dclz gives 64.Daniel Sanders2014-07-091-0/+2
| | | | | | | | | | | | | | | Summary: While debugging another issue, I noticed that Mips currently specifies that the count leading zero builtins are undefined when the input is zero. The architecture specifications say that the clz and dclz instructions write 32 or 64 respectively when given zero. This doesn't fix any bugs that I'm aware of but it may improve optimisation in some cases. Differential Revision: http://reviews.llvm.org/D4431 llvm-svn: 212618
* ARM: use LLVM's atomicrmw instructions when ldrex/strex are available.Tim Northover2014-07-091-17/+11
| | | | | | | | | | | | | | Having some kind of weird kernel-assisted ABI for these when the native instructions are available appears to be (and should be) the exception; OSs have been gradually opting in for years and the code was getting silly. So let LLVM decide whether it's possible/profitable to inline them by default. Patch by Phoebe Buckheister. llvm-svn: 212598
* Improve memory ownership of vfs::Files in the FileSystemStatCache by using ↵David Blaikie2014-07-082-15/+8
| | | | | | | | | std::unique_ptr Spotted after a memory leak (due to the complexities of manual memory management) was fixed in 212466. llvm-svn: 212541
* [OPENMP] Parsing and sema analysis for 'omp parallel sections' directive.Alexey Bataev2014-07-081-4/+14
| | | | llvm-svn: 212516
* Fix memory leak in FileSystemStatCache.Manuel Klimek2014-07-071-0/+1
| | | | | | Patch by Guochun Shi. llvm-svn: 212466
* [OPENMP] Added initial support for 'omp parallel for'.Alexey Bataev2014-07-071-3/+20
| | | | llvm-svn: 212453
* Remove unused sys/stat.h includesAlp Toker2014-07-072-4/+0
| | | | | | The facility was abstracted to LLVM in r187364. llvm-svn: 212441
* Update for llvm api change.Rafael Espindola2014-07-061-3/+8
| | | | llvm-svn: 212408
* Use non-intrusive refcounting for TargetOptionsAlp Toker2014-07-061-3/+4
| | | | llvm-svn: 212388
* Constify a read-only parameter and give function a better nameAlp Toker2014-07-061-2/+2
| | | | | | | This makes it clear that TargetInfo doesn't capture the LangOptions object, rather uses it to apply adjustments. llvm-svn: 212386
* [Driver][Mips] Support one more MIPS CPU name - octeon.Simon Atanasyan2014-07-041-1/+5
| | | | llvm-svn: 212339
* [Driver][Mips] Support more MIPS CPU names: mips1 - mips5.Simon Atanasyan2014-07-041-0/+5
| | | | llvm-svn: 212338
* [Driver][Mips] Check MIPS CPU name provided to the Clang driver.Simon Atanasyan2014-07-031-1/+10
| | | | llvm-svn: 212260
* CodeGen: make target builtins support languagesSaleem Abdulrasool2014-07-022-1/+2
| | | | | | | | | | This extends the target builtin support to allow language specific annotations (i.e. LANGBUILTIN). This is to allow MSVC compatibility whilst retaining the ability to have EABI targets use a __builtin_ prefix. This is merely to allow uniformity in the EABI case where the unprefixed name is provided as an alias in the header. llvm-svn: 212196
* X86: inline all atomic operations up to 128-bits.Tim Northover2014-07-021-3/+1
| | | | | | | | | | The backend *can* cope with all of these now, so Clang should give it the chance. On CPUs without cmpxchg16b (e.g. the original athlon64) LLVM can reform the libcalls. rdar://problem/13496295 llvm-svn: 212173
* Driver: Handle /GR- in a compatible way with MSVCDavid Majnemer2014-07-011-1/+1
| | | | | | | | | | | | | | | | | There are slight differences between /GR- and -fno-rtti which made mapping one to the other inappropriate. -fno-rtti disables dynamic_cast, typeid, and does not emit RTTI related information for the v-table. /GR- does not generate complete object locators and thus will not reference them in vftables. However, constructs like dynamic_cast and typeid are permitted. This should bring our implementation of RTTI up to semantic parity with MSVC modulo bugs. llvm-svn: 212138
* [Driver][Mips] MIPS ABI names "32" and "64" used as arguments of the "-mabi"Simon Atanasyan2014-07-011-6/+2
| | | | | | | | | command line option only. Internally we convert them to the "o32" and "n64" respectively. So we do not need to refer them anywhere after that conversion. No functional changes. llvm-svn: 212096
* Basic: correct the va_list type on Windows on ARMSaleem Abdulrasool2014-06-291-0/+3
| | | | | | | | | Windows on ARM defines va_list as a typedef for char *. Although the semantics of argument passing for variadic functions matches AAPCS VFP, the wrapped struct __va_list type is unused. This makes the intrinsic definition for va_list match that of Visual Studio. llvm-svn: 212004
* Basic: fix handling for Windows Itanium environmentSaleem Abdulrasool2014-06-281-0/+1
| | | | | | | This corrects the handling for i686-windows-itanium. This environment is nearly identical to Windows MSVC, except it uses the itanium ABI for C++. llvm-svn: 211991
* Basic: whitespace cleanupSaleem Abdulrasool2014-06-281-3/+0
| | | | | | Remove unnecessary separation of anonymous namespace. NFC. llvm-svn: 211990
* [Driver][Mips] Fix else-after-return.Simon Atanasyan2014-06-281-4/+6
| | | | | | No functional changes. llvm-svn: 211984
* [Driver][Mips] Remove redundant brackets.Simon Atanasyan2014-06-281-1/+1
| | | | | | No functional changes. llvm-svn: 211983
* [Driver][Mips] Remove redundant abstract/override function.Simon Atanasyan2014-06-281-1/+0
| | | | | | No functional changes. llvm-svn: 211982
* Introduce arm_acle.h supporting existing LLVM builtin intrinsicsYi Kong2014-06-271-0/+3
| | | | | | | | | | | | | | Summary: This patch introduces ACLE header file, implementing extensions that can be directly mapped to existing Clang intrinsics. It implements for both AArch32 and AArch64. Reviewers: t.p.northover, compnerd, rengolin Reviewed By: compnerd, rengolin Subscribers: rnk, echristo, compnerd, aemerson, mroth, cfe-commits Differential Revision: http://reviews.llvm.org/D4296 llvm-svn: 211962
* Remove 'const' from MemoryBuffers used through the SourceManagerDavid Blaikie2014-06-271-26/+21
| | | | | | | | | | | | | | This removes a const_cast added in r211884 that occurred due to an inconsistency in how MemoryBuffers are handled between some parts of clang and LLVM. MemoryBuffers are immutable and the general convention in the LLVM project is to omit const from immutable types as it's simply redundant/verbose (see llvm::Type, for example). While this change doesn't remove "const" from /every/ MemoryBuffer, it at least makes this chain of ownership/usage consistent. llvm-svn: 211915
* [OPENMP] Parsing and sema analysis for 'copyprivate' clause.Alexey Bataev2014-06-271-2/+4
| | | | llvm-svn: 211886
* ARM: Correctly identify cortex-m4 as v7em.Jim Grosbach2014-06-261-1/+2
| | | | | | | | | | | Get the predefined macro for the architecture correct. cortex-m4: __ARM_ARCH_7EM__ cortex-m3: __ARM_ARCH_7M__ cortex-m0: __ARM_ARCH_6M__ rdar://17420090 llvm-svn: 211792
* Add ppc64/power8 as a targetWill Schmidt2014-06-261-4/+16
| | | | llvm-svn: 211778
* [OPENMP] Initial parsing and sema analysis for 'single' directive.Alexey Bataev2014-06-261-2/+12
| | | | llvm-svn: 211774
* [OPENMP] Initial parsing and sema analysis for 'section' directive.Alexey Bataev2014-06-261-2/+3
| | | | llvm-svn: 211767
* Add vfs::recursive_directory_iteratorBen Langmuir2014-06-251-0/+35
| | | | | | | | | For now, this is only used by its unit tests. It is similar to the API in llvm::sys::fs::recursive_directory_iterator, but without some of the more complex features like requesting that the iterator not recurse into the next directory, for example. llvm-svn: 211732
OpenPOWER on IntegriCloud