summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
Commit message (Collapse)AuthorAgeFilesLines
...
* [ARM64] Fix up predefines, including adding big endian support to Targets.cppJames Molloy2014-04-161-21/+78
| | | | llvm-svn: 206390
* [Allocator] Make the ContentCache object actually carry the 8-byteChandler Carruth2014-04-151-12/+4
| | | | | | | | | alignment constraint rather than using the allocator function's over alignment "feature". This was the only use of the "feature" which I plan to remove next. =] Attaching the alignment to the type seems cleaner and more principled anyways. llvm-svn: 206324
* Allow multiple modules with the same name to coexist in the module cacheBen Langmuir2014-04-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To differentiate between two modules with the same name, we will consider the path the module map file that they are defined by* part of the ‘key’ for looking up the precompiled module (pcm file). Specifically, this patch renames the precompiled module (pcm) files from cache-path/<module hash>/Foo.pcm to cache-path/<module hash>/Foo-<hash of module map path>.pcm In addition, I’ve taught the ASTReader to re-resolve the names of imported modules during module loading so that if the header search context changes between when a module was originally built and when it is loaded we can rebuild it if necessary. For example, if module A imports module B first time: clang -I /path/to/A -I /path/to/B ... second time: clang -I /path/to/A -I /different/path/to/B ... will now rebuild A as expected. * in the case of inferred modules, we use the module map file that allowed the inference, not the __inferred_module.map file, since the inferred file path is the same for every inferred module. llvm-svn: 206201
* [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
* Post-commit review coding style change: renaming HasAttribute to ↵Aaron Ballman2014-03-311-1/+1
| | | | | | hasAttribute. No functional changes. llvm-svn: 205201
* Reapplying r204952 a second time.Aaron Ballman2014-03-312-0/+18
| | | | | | | | | | Clean up the __has_attribute implementation without modifying its behavior. Replaces the tablegen-driven AttrSpellings.inc, which lived in the lexing layer with AttrHasAttributeImpl.inc, which lives in the basic layer. Updates the preprocessor to call through to this new functionality which can take additional information into account (such as scopes and syntaxes). Expose the ability for parts of the compiler to ask whether an attribute is supported for a given spelling (including scope), syntax, triple and language options. llvm-svn: 205181
* [OPENMP] Implemented 'copyin' clauseAlexey Bataev2014-03-311-0/+2
| | | | llvm-svn: 205164
* [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-272-12/+24
| | | | | | | | | 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
* Reverting r204968 and r204969; while more build bots are happy with the ↵Aaron Ballman2014-03-272-18/+0
| | | | | | results, some still have link errors. llvm-svn: 204974
* Reapplying r204952 with fixes which should hopefully resolve linking issues ↵Aaron Ballman2014-03-272-0/+18
| | | | | | with non-MSVC compilers. llvm-svn: 204968
* Reverting r204952, while I figure out what's going on with the makefile build.Aaron Ballman2014-03-272-21/+0
| | | | llvm-svn: 204955
* Clean up the __has_attribute implementation without modifying its behavior. Aaron Ballman2014-03-272-0/+21
| | | | | | | | Replaces the tablegen-driven AttrSpellings.inc, which lived in the lexing layer with AttrHasAttributeImpl.inc, which lives in the basic layer. Updates the preprocessor to call through to this new functionality which can take additional information into account (such as scopes and syntaxes). Expose the ability for parts of the compiler to ask whether an attribute is supported for a given spelling (including scope), syntax, triple and language options. llvm-svn: 204952
* 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
* [OPENMP] parsing of clause 'safelen' (for directive 'omp simd')Alexey Bataev2014-03-211-0/+2
| | | | llvm-svn: 204428
* Fix a typo in r204164 that made *all* keywords available in OpenCL mode.Richard Smith2014-03-181-1/+1
| | | | llvm-svn: 204196
* Creating a printing policy for "half":Yunzhong Gao2014-03-181-0/+2
| | | | | | | | | | | | Since "half" is an OpenCL keyword and clang accepts __fp16 as an extension for other languages, error messages and metadata (and hence debug info) should refer to the half-precision floating point as "__fp16" instead of "half" when compiling for non-OpenCL languages. This patch creates a new printing policy for half in a similar manner to what is done for bool and wchar_t. Differential Revision: http://llvm-reviews.chandlerc.com/D2952 llvm-svn: 204164
* 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-112-365/+364
| | | | | | class. llvm-svn: 203537
* [C++11] Avoid implicit conversion of ArrayRef to std::vector and use move ↵Benjamin Kramer2014-03-101-5/+1
| | | | | | semantics where appropriate. llvm-svn: 203477
* 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-092-2/+2
| | | | llvm-svn: 203389
* Module [extern_c] attribute: inherit to submodules, don't write 'extern "C"'Richard Smith2014-03-081-0/+2
| | | | | | blocks when building in C mode, and serialize and deserialize the attribute. llvm-svn: 203317
* Replace OwningPtr with std::unique_ptr.Ahmed Charles2014-03-074-14/+14
| | | | | | This compiles cleanly with lldb/lld/clang-tools-extra/llvm. llvm-svn: 203279
* Change OwningPtr::take() to OwningPtr::release().Ahmed Charles2014-03-074-9/+9
| | | | | | This is a precursor to moving to std::unique_ptr. llvm-svn: 203275
* Remove dead code I introduced 6 years, 4 months ago in r43518.Ted Kremenek2014-03-061-25/+0
| | | | | | Found by -Wunreachable-code. llvm-svn: 203167
* 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
* [OPENMP] Clause 'num_threads'Alexey Bataev2014-03-061-0/+2
| | | | llvm-svn: 203087
* Attempt to re-enable the VFS unittests on WindowsBen Langmuir2014-03-051-2/+4
| | | | | | | Using a //net/ path to hopefully avoid problems with non-absolute paths on Windows. llvm-svn: 203010
* Support relative paths in VFSFromYAMLBen Langmuir2014-03-041-3/+10
| | | | | | | | | Use llvm::sys::fs::make_absolute to get an absolute path before matching. Also, allow "." directories to enable testing. ".." is still not supported, and will require crossing file system boundaries to implement correctly. llvm-svn: 202903
* 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
* [C++11] Use std::atomic instead of LLVM's.Benjamin Kramer2014-03-021-3/+3
| | | | | | No intended functionality change. llvm-svn: 202652
* [C++11] Replace llvm::tie with std::tie.Benjamin Kramer2014-03-021-2/+2
| | | | llvm-svn: 202639
* Switch all uses of LLVM_OVERRIDE to just use 'override' directly.Craig Topper2014-03-021-8/+8
| | | | llvm-svn: 202625
* Add [extern_c] attribute for modules, allowing a C module to be imported ↵Richard Smith2014-03-021-4/+3
| | | | | | within an extern "C" block in C++ code. llvm-svn: 202615
* [C++11] Switch from the llvm_move macro to directly calling std::move.Chandler Carruth2014-03-021-3/+3
| | | | llvm-svn: 202611
* Move private classes into anonymous namespaces.Benjamin Kramer2014-03-011-0/+4
| | | | llvm-svn: 202595
* Reapply fixed "Honour 'use-external-names' in FileManager"Ben Langmuir2014-02-283-9/+31
| | | | | | | | | | | | | | | | Was r202442 There were two issues with the original patch that have now been fixed. 1. We were memset'ing over a FileEntry in a test case. After adding a std::string to FileEntry, this still happened to not break for me. 2. I didn't pass the FileManager into the new compiler instance in compileModule. This was hidden in some cases by the fact I didn't clear the module cache in the test. Also, I changed the copy constructor for FileEntry, which was memcpy'ing in a (now) unsafe way. llvm-svn: 202539
* Add 'remark' diagnostic type in 'clang'Tobias Grosser2014-02-281-3/+12
| | | | | | | | | | | | | | | | | | | | | | | A 'remark' is information that is not an error or a warning, but rather some additional information provided to the user. In contrast to a 'note' a 'remark' is an independent diagnostic, whereas a 'note' always depends on another diagnostic. A typical use case for remark nodes is information provided to the user, e.g. information provided by the vectorizer about loops that have been vectorized. This patch provides the initial implementation of 'remarks'. It includes the actual definiton of the remark nodes, their printing as well as basic parameter handling. We are reusing the existing diagnostic parameters which means a remark can be enabled with normal '-Wdiagnostic-name' flags and can be upgraded to an error using '-Werror=diagnostic-name'. '-Werror' alone does not upgrade remarks. This patch is by intention minimal in terms of parameter handling. More experience and more discussions will most likely lead to further enhancements in the parameter handling. llvm-svn: 202475
* Revert "Honour 'use-external-names' in FileManager"Ben Langmuir2014-02-273-31/+9
| | | | | | Revert r202442, which broke the buildbots. llvm-svn: 202443
* Honour 'use-external-names' in FileManagerBen Langmuir2014-02-273-9/+31
| | | | | | | | Pass through the externally-visible names that we got from the VFS down to FileManager, and test that this is the name showing up in __FILE__, diagnostics, and debug information. llvm-svn: 202442
* Reapply r202420 hopefully fixed for other STLsBen Langmuir2014-02-271-48/+12
| | | | | | | Keep the copy constructor around, and add a FIXME that we should really remove it as soon as we have C++11 std::map's emplace function. llvm-svn: 202439
* Revert "Remove constructors from FileEntry that prevent owning resources"Ben Langmuir2014-02-271-12/+48
| | | | | | This reverts commit r202420, which broke the build. llvm-svn: 202421
OpenPOWER on IntegriCloud