- Jul 02, 2014
-
-
Tim Northover authored
ARMv8 adds (to both AArch32 and AArch64) acquiring and releasing variants of the exclusive operations, in line with the C++11 memory model. This adds support for two new intrinsics to expose them to C & C++ developers directly: __builtin_arm_ldaex and __builtin_arm_stlex, in direct analogy with the versions with no implicit barrier. rdar://problem/15885451 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212175 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alp Toker authored
Also document that the function is a "best-effort" facility to extract source ranges from limited AST type location info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212174 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212173 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alp Toker authored
C++ [basic.start.main]p1: "It shall have a return type of type int" ISO C is also clear about this, so only accept 'int' with qualifiers in GNUMode C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212171 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212170 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212162 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Trieu authored
Fixes PR20110, where Clang hits an assertion failure when it expects that the sub-expression of a bit cast to pointer to also be a pointer, but gets a value instead. Differential Revision: http://reviews.llvm.org/D4280 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212160 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212156 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alp Toker authored
This source range is useful for all kinds of diagnostic QOI and refactoring work, so let's make it more discoverable. This commit also makes use of the new function to enhance various diagnostics relating to return types and resolves an old FIXME. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212154 91177308-0d34-0410-b5e6-96231b3b80d8
-
NAKAMURA Takumi authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212144 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
No functionality change, just some comments to describe what is going on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212142 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
This test was supposed to go in with r212125. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212139 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212138 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
LLVM r211399 started emitting .pdata for win64 by default. Unfortunately, it produces invalid object files. I plan to fix that Soon. For now, don't request unwind tables. This fixes the clang-cl self-host on win64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212137 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 01, 2014
-
-
David Majnemer authored
Stash whether or not we have an RTTI component away instead of recomputing it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212127 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
The pointer for a class's RTTI data comes right before the VFTable but has no name. To be properly compatible with this, we do the following: * Create a single GlobalVariable which holds the contents of the VFTable _and_ the pointer to the RTTI data. * Create a GlobalAlias, with appropriate linkage/visibility, that points just after the RTTI data pointer. This ensures that the VFTable symbol will always refer to VFTable data. * Create a Comdat with a "Largest" SelectionKind and stick the private GlobalVariable in it. By transitivity, the GlobalAlias will be a member of the Comdat group. Using "Largest" ensures that foreign definitions without an RTTI data pointer will _not_ be chosen in the final linked image. Whether or not we emit RTTI data depends on several things: * The -fno-rtti flag implies that we should never not emit a pointer to RTTI data before the VFTable. * __declspec(dllimport) brings in the VFTable from a remote DLL. Use an available_externally GlobalVariable to provide a local definition of the VFTable. This means that we won't have any available_externally definitions of things like complete object locators. This is acceptable because they are never directly referenced. To my knowledge, this completes the implementation of MSVC RTTI code generation. Further semantic work should be done to properly support /GR-. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212125 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
These flags enable behavior in MSVC that Clang has by default. /Zc:inline essentially marks all COMDATs as discardable. In LLVM parlance, this means using linkonce_odr linkage, which is what we already do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212117 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sylvestre Ledru authored
Currently, we fail with an error. Reviewers: rafael Reviewed By: rafael Subscribers: rnk, cfe-commits Differential Revision: http://reviews.llvm.org/D4347 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212110 91177308-0d34-0410-b5e6-96231b3b80d8
-
Logan Chien authored
This patch removes the dead code, and refines the getEHResumeBlock() slightly. The CleanupHackLevel was a hack to the old exception handling intrinsics, which have several issues with function inliner. Since LLVM 3.0, the new landingpad and resume instructions are added to LLVM IR. With the new exception handling mechanism, most of the issues are fixed now. We should always use these instructions to implement the exception handling code nowadays, and we don't need the hack any more. Besides, the `CleanupHackLevel` is a compile-time constant, thus other cases have been considered as dead code for a while. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212097 91177308-0d34-0410-b5e6-96231b3b80d8
-
Simon Atanasyan authored
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212096 91177308-0d34-0410-b5e6-96231b3b80d8
-
Gerolf Hoflehner authored
In 32b mode the reference count for block addresses is not zero. This prevents inlining and constant folding and causes the test to fail. Changing the triple allows runnning the test in 64b mode. The array in foo2 is now local instead of static until at lower optimization levels the interprocedural constant propagator is invoked before the global optimizer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212092 91177308-0d34-0410-b5e6-96231b3b80d8
-
Bob Wilson authored
llvm r212077 causes this test to fail. We need to reorder some passes and possibly make other changes to reenable the optimization being tested here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212091 91177308-0d34-0410-b5e6-96231b3b80d8
-
Nikola Smiljanic authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212090 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alp Toker authored
Update the strategy in r212083 to try JIT first and otherwise fall back to the interpreter. This gives the best of both worlds and still builds fine with no targets enabled. Requires supporting changes from LLVM r212086. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212087 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alp Toker authored
Fix the build when no targets are enabled. This dependency is incurred by two unfortunate entries in LinkAllPasses.h included from cc1_main.cpp: llvm::createJumpInstrTablesPass(); llvm::createCodeGenPreparePass(); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212084 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alp Toker authored
Fixes the build when no targets are selected, or no native target is built. This also better matches up with the description/title of the example and demonstrates how clang can be used to run C++ on constrained environments without file IO or executable memory permissions (e.g. iOS apps). A comment is added explaining how to extend the demo with JIT support as needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212083 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 30, 2014
-
-
Ehsan Akhgari authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212066 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Samsonov authored
It used to be a feature of UBSan (it could sanitize a standalone shared object instead of the whole program), but now it causes more problems, like PR20165. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212064 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
Add module dependencies (header files, module map files) to the list of files to check when deciding whether to rebuild a preamble. That fixes using preambles with module imports so long as they are in non-overridden files. My intent is to use to unify the existing dependency collectors to the new “DependencyCollectory” interface from this commit, starting with the DependencyFileGenerator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212060 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ehsan Akhgari authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212058 91177308-0d34-0410-b5e6-96231b3b80d8
-
Andrea Di Biagio authored
This patch adds intrinsic __rdpmc to header file 'ia32intrin.h'. Intrinsic __rdmpc can be used to read performance monitoring counters. It is implemented as a direct call to __builtin_ia32_rdpmc. It takes as input a value representing the index of the performance counter to read. The value of the performance counter is then returned as a unsigned 64-bit quantity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212053 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212047 91177308-0d34-0410-b5e6-96231b3b80d8
-
Daniel Jasper authored
Before: string // break operator()() & {} After: string // break operator()() & {} git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212041 91177308-0d34-0410-b5e6-96231b3b80d8
-
Daniel Jasper authored
Upon encountering a binary operator inside parentheses, assume that the parentheses contain an expression. Before: MACRO('0' <= c&& c <= '9'); After: MACRO('0' <= c && c <= '9'); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212040 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212039 91177308-0d34-0410-b5e6-96231b3b80d8
-
Daniel Jasper authored
This worked initially but was broken by r210887. Before: function outer1(a, b) { function inner1(a, b) { return a; } inner1(a, b); } function outer2(a, b) { function inner2(a, b) { return a; } inner2(a, b); } After: function outer1(a, b) { function inner1(a, b) { return a; } inner1(a, b); } function outer2(a, b) { function inner2(a, b) { return a; } inner2(a, b); } Thanks to Adam Strzelecki for working on this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212038 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
[OPENMP] Added table with allowed nesting info for OpenMP regions (per request from Samuel F Antao). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212034 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212028 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212026 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212025 91177308-0d34-0410-b5e6-96231b3b80d8
-