aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic
AgeCommit message (Collapse)Author
2013-04-24Add some more required SPARC v9 predefined macros.Jakob Stoklund Olesen
Solaris/AuroraUX only need __arch64__, the BSDs need the other variants. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180172 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-18Add comment to describe cleverness.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179806 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-18Reject asm output constraints that consist of modifiers only.Benjamin Kramer
Fixes PR15759. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179756 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17[Modules] Use global index to improve typo correction performanceArgyrios Kyrtzidis
Typo correction for an unqualified name needs to walk through all of the identifier tables of all modules. When we have a global index, just walk its identifier table only. rdar://13425732 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179730 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Add support for sparcv9 targets.Jakob Stoklund Olesen
The SPARC v8 and SPARC v8 architectures are very similar, so use a base class to share most information between them. Include operating systems with known SPARC v9 ports. Also fix two issues with the SPARC v8 data layout string: SPARC v8 is a big endian target with a 64-bit aligned stack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179596 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-14[Mips] Support -mmicromips / -mno-micromips command line options.Simon Atanasyan
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179489 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-14[Mips] Follow-up to r179481. Consider "single-float" as a separateSimon Atanasyan
independent of float ABI feature in the MipsTargetInfoBase class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179486 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-13Introduce SourceManager::getDecomposedIncludedLoc, that returns the ↵Argyrios Kyrtzidis
"included/expanded in" decomposed location of the given FileID. The main benefit is to speed-up SourceManager::isBeforeInTranslationUnit which is common to query the included/expanded location of the same FileID multiple times. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179435 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-08The PNaCl target no longer permits __attribute__((regparm)).Eli Bendersky
Remove the custom lowering code dealing with it, disallow it in PNaclTargetInfo and adjust tests accordingly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179059 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-05AArch64: bring predefines in line with most recent ACLE documentTim Northover
The prefixes and names used are now identical to 32-bit ARM, which is also expected to remain unchanged. If we made this change after a release, we'd probably have to support both variants for a while, but I think since AArch64 exists only on trunk now, it's acceptable to simply swap them now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178870 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-04Add support for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8} on x86.Michael J. Spencer
This fixes std::thread with libstdc++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178816 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-01R600: Add missing Southern Islands GPU to setCPU() functionTom Stellard
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178498 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-30Remove old NVPTX cpus and add new NVPTX cpusJustin Holewinski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178419 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-30Add support for gcc-compatible -mfprnd -mno-fprnd PPC optionsHal Finkel
gcc provides -mfprnd and -mno-fprnd for controlling the fprnd target feature; support these options as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178414 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-29Add RDSEED intrinsic support defined in AVX2 extensionMichael Liao
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178331 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-28Add support for gcc-compatible -mpopcntd -mno-popcntd PPC optionsHal Finkel
gcc provides -mpopcntd and -mno-popcntd for controlling the popcntd target feature; support these options as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178235 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-28Add support for gcc-compatible -mmfcrf -mno-mfcrf PPC optionsHal Finkel
gcc provides -mmfcrf and -mno-mfcrf for controlling what we call the mfocrf target feature. Also, PPC is now making use of the static function AddTargetFeature used by the Mips Driver code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178227 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-26Add PRFCHW intrinsic supportMichael Liao
- Add head 'prfchwintrin.h' to define '_m_prefetchw' which is mapped to LLVM/clang prefetch builtin - Add option '-mprfchw' to enable PRFCHW feature and pre-define '__PRFCHW__' macro git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178041 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-25<rdar://problem/13358795> Teach CMake to check Subversion version ↵Douglas Gregor
information at build time, not configure time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177939 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-25Fix a layering violation introduced in r177705.Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177922 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-22OpenMP threadprivate directive parsing and semantic analysisAlexey Bataev
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177705 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20<rdar://problem/12368093> Extend module maps with a 'conflict' declaration, ↵Douglas Gregor
and warn when a newly-imported module conflicts with an already-imported module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177577 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Make sure that Module::ConfigMacrosExhaustive gets initialized and ↵Douglas Gregor
deserialized correctly. This fixes regressions introduced in r177466 that caused several module tests to fail sporadically. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177481 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20<rdar://problem/10796651> Introduce configuration macros into module maps.Douglas Gregor
Configuration macros are macros that are intended to alter how a module works, such that we need to build different module variants for different values of these macros. A module can declare its configuration macros, in which case we will complain if the definition of a configation macro on the command line (or lack thereof) differs from the current preprocessor state at the point where the module is imported. This should eliminate some surprises when enabling modules, because "#define CONFIG_MACRO ..." followed by "#include <module/header.h>" would silently ignore the CONFIG_MACRO setting. At least it will no longer be silent about it. Configuration macros are eventually intended to help reduce the number of module variants that need to be built. When the list of configuration macros for a module is exhaustive, we only need to consider the settings for those macros when building/finding the module, which can help isolate modules for various project-specific -D flags that should never affect how modules are build (but currently do). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177466 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-13[Modules] Resolve top-headers of modules lazily.Argyrios Kyrtzidis
This allows resolving top-header filenames of modules to FileEntries when we need them, not eagerly. Note that that this breaks ABI for libclang functions clang_Module_getTopLevelHeader / clang_Module_getNumTopLevelHeaders but this is fine because they are experimental and not widely used yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176975 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-12Remove driver support for Hexagon V2 and V3Matthew Curtis
Driver will now error when trying to compile for V2 or V3. Removal of V2 and V3 support will allow us to simplify the hexagon back-end. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176859 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-07Add 'e' to the SPIR data layout - SPIR is little endian for now.Guy Benyei
Add 32/64 bit specific target defines for SPIR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176629 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-05Mips specific inline assembler constraint 'R'Jack Carter
'R' An address that can be sued in a non-macro load or store. Including missing positive test case and fixed typo for r176453. Thanks to Richard Smith for catching this! Jack git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176506 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-04Tidy up lists of Cortex-A series processors, adding entries for A7.Bob Wilson
Also fix a missing entry for cortex-r5 in one copy of getLLVMArchSuffixForARM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176457 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-04Mips specific inline assembler constraint 'R'Jack Carter
'R' An address that can be sued in a non-macro load or store. This patch includes a positive test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176453 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-04R600: Use the GPU type to determine the correct DataLayout v2Tom Stellard
v2: - Add R600_DOUBLE_OPS for RV670 - s/CPU/GPU/ Reviewed-by: Alex Deucher <alexander.deucher@amd.com> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176440 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-01Fix typos: [Dd]iagnosic -> [Dd]iagnosticStefanus Du Toit
These all appear in comments or (ironically) diagnostics output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176383 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-01Add one more sanity check in SourceManager::getFileIDLoaded().Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176333 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-01In SourceManager::getFileIDLoaded(), add some sanity checks to make sure we ↵Argyrios Kyrtzidis
don't enter an infinite loop. rdar://13120919 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176331 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-27[Mips] Add two new aliases for MIPS ABI names 32 (means o32 abi) and 64Simon Atanasyan
(means n64 abi) to improve compatibility with GNU tools. Patch by Jia Liu <proljc@gmail.com>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176187 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-27Refine SourceManager's isBeforeInTranslationUnit() cache to have more entries.Ted Kremenek
isBeforeInTranslationUnit() uses a cache to reduce the expensive work to compute a common ancestor for two FileIDs. This work is very expensive, so even caching the latest used FileIDs was a big win. A closer analysis of the cache before, however, shows that the cache access pattern would oscillate between a working set of FileIDs, and thus caching more pairs would be profitable. This patch adds a side table for extending caching. This side table is bounded in size (experimentally determined in this case from a simple Objective-C project), and when the table gets too large we fall back to the single entry caching before as before. On Sketch (a small example Objective-C project), this optimization reduces -fsyntax-only time on SKTGraphicView.m by 5%. This is for a project that is already using PCH. Fixes <rdar://problem/13299847> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176142 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-24Moving initialization into the initializer list and correcting ↵Aaron Ballman
capitalization, as suggested by Chandler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176001 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-23Implement __builtin_eh_return_data_regno() for ARM and MIPS.Logan Chien
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175954 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-23Revert r175912, "Add support for coldcc to clang" at John's request.Peter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175936 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-22Add support for coldcc to clangPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175912 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-22Replace some typically large vectors with SmallVector.Benjamin Kramer
This may seem counter-intuitive but the POD-like optimization helps when the vectors grow into multimegabyte buffers. SmallVector calls realloc which knows how to twiddle virtual memory bits and avoids large copies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175906 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-21Use None rather than Optional<T>() where possible.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175705 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-20Revert "intmax_t is long long on Darwin, not long."Jordan Rose
'long' and 'long long' are different for the purposes of mangling. This caused <rdar://problem/13254874>. This reverts commit c2f994d31ec85e9af811af38eb1b28709aef0b2c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175681 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-20Include llvm::Optional in clang/Basic/LLVM.hDavid Blaikie
Post-commit CR feedback from Jordan Rose regarding r175594. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175679 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-20intmax_t is long long on Darwin, not long.Jordan Rose
<rdar://problem/11540697> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175588 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-19[modules] Refactor code from ASTReader::makeModuleVisible() into a new function,Argyrios Kyrtzidis
Module::getExportedModules() so it can be reused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175548 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-19Fixing a typo where FixIts was accidentally self-assigning instead of ↵Aaron Ballman
assigning in the parameter Fixits. This fixes several failed assertions with MSVC debug builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175483 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-18AArch64: add atomic support parameters to TargetInfoTim Northover
This allows Clang to detect and deal wih __atomic_* operations properly on AArch64. Previously we produced an error when encountering them at high optimisation levels. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175438 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-09Remove some stray uses of <ctype.h> functions.Jordan Rose
These are causing assertions on some MSVC builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174805 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-08CharInfo: Add missing "using namespace clang::charinfo" in .cpp file.Jordan Rose
Should fix the MSC bot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174769 91177308-0d34-0410-b5e6-96231b3b80d8