- Jun 28, 2016
-
-
Richard Smith authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274060 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274059 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274058 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
These are all long-running commands that should be in the ninja console job pool. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274056 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274050 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
Replace inheriting constructors implementation with new approach, voted into C++ last year as a DR against C++11. Instead of synthesizing a set of derived class constructors for each inherited base class constructor, we make the constructors of the base class visible to constructor lookup in the derived class, using the normal rules for using-declarations. For constructors, UsingShadowDecl now has a ConstructorUsingShadowDecl derived class that tracks the requisite additional information. We create shadow constructors (not found by name lookup) in the derived class to model the actual initialization, and have a new expression node, CXXInheritedCtorInitExpr, to model the initialization of a base class from such a constructor. (This initialization is special because it performs real perfect forwarding of arguments.) In cases where argument forwarding is not possible (for inalloca calls, variadic calls, and calls with callee parameter cleanup), the shadow inheriting constructor is not emitted and instead we directly emit the initialization code into the caller of the inherited constructor. Note that this new model is not perfectly compatible with the old model in some corner cases. In particular: * if B inherits a private constructor from A, and C uses that constructor to construct a B, then we previously required that A befriends B and B befriends C, but the new rules require A to befriend C directly, and * if a derived class has its own constructors (and so its implicit default constructor is suppressed), it may still inherit a default constructor from a base class git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274049 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
When using the LLVM_BUILD_EXTERNAL_COMPILER_RT option with LLVM_ENABLE_TESTS we should also bind check-compiler-rt to check-all so that the compiler-rt tests run too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274045 91177308-0d34-0410-b5e6-96231b3b80d8
-
Artur Pilipenko authored
The mangling of their names was changed in order to support arbitrary addrspace pointers as arguments in rL274043. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274044 91177308-0d34-0410-b5e6-96231b3b80d8
-
Artur Pilipenko authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274041 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
If top-level lit args are specified, you probably want that in the sub-project too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274035 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
We want to be able to run the compiler-rt tests on stage2 build configurations in CI. This should enable that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274031 91177308-0d34-0410-b5e6-96231b3b80d8
-
Samuel Benzaquen authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274015 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Dewhurst authored
The final change is required to extend the back-end's AtomicExpandPass that was implemented for Sparc (64 bit) and later extended for Sparc (32 bit). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274012 91177308-0d34-0410-b5e6-96231b3b80d8
-
Nikolay Haustov authored
Summary: Currently output of child process, however in my use case, it needs to be captured and presented to the user. Add Redirect method to Compilation and use existing infrastructure for redirecting output of commands. Reviewers: tstellarAMD Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21224 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273997 91177308-0d34-0410-b5e6-96231b3b80d8
-
NAKAMURA Takumi authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273994 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
Recently, Microsoft added support for a flag, /std, which controls which version of the language rules MSVC should use. MSVC hasn't updated __cplusplus though. Instead, they added a new macro, _MSVC_LANG, which is defined in a similar fashion to __cplusplus. This is used to indicate which mode the compiler is in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273987 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
This fixes PR28326. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273986 91177308-0d34-0410-b5e6-96231b3b80d8
-
Jordan Rose authored
DiagnosticNoteRenderer asserts trying to emit its "while building module Foo imported from bar.h:5" note when the presumed location of the import is invalid. This assertion was added in r267914, where most uses of 'getFilename' were updated to test 'isValid' instead. This one must have been missed. I can't come up with a test because this location is always valid in C-based code, but external clients that manually import modules (*cough*Swift*cough*) sometimes provide invalid SourceLocations. rdar://problem/26099576 http://reviews.llvm.org/D21111 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273976 91177308-0d34-0410-b5e6-96231b3b80d8
-
Saleem Abdulrasool authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273972 91177308-0d34-0410-b5e6-96231b3b80d8
-
Matt Arsenault authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273965 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Dewhurst authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273950 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 27, 2016
-
-
Yaxun Liu authored
"chmod u-x *" does not work for lit on cygwin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273948 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
already used this to find and reduce quite a few bugs, and it works pretty well if you can find the right patterns. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273913 91177308-0d34-0410-b5e6-96231b3b80d8
-
George Burgess IV authored
This fixes a crash in code like: ``` struct A { struct B b; char c[1]; } int foo(struct A* a) { return __builtin_object_size(a->c, 0); } ``` We wouldn't check whether the structs we were examining were invalid, and getting the layout of an invalid struct is (unsurprisingly) A Bad Thing. With this patch, we'll always return conservatively if we see an invalid struct, since I'm assuming the presence of an invalid struct means that our compilation failed (so having a conservative result isn't such a big deal). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273911 91177308-0d34-0410-b5e6-96231b3b80d8
-
Kelvin Li authored
Clang fails to diagnose cases such as #pragma omp target while(0) { #pragma omp teams {} } A patch by David Sheinkman. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273908 91177308-0d34-0410-b5e6-96231b3b80d8
-
http://reviews.llvm.org/D21564Carlo Bertolli authored
[OpenMP] Initial implementation of parse and sema for composite pragma 'distribute parallel for' This patch is an initial implementation for #distribute parallel for. The main differences that affect other pragmas are: The implementation of 'distribute parallel for' requires blocking of the associated loop, where blocks are "distributed" to different teams and iterations within each block are scheduled to parallel threads within each team. To implement blocking, sema creates two additional worksharing directive fields that are used to pass the team assigned block lower and upper bounds through the outlined function resulting from 'parallel'. In this way, scheduling for 'for' to threads can use those bounds. As a consequence of blocking, the stride of 'distribute' is not 1 but it is equal to the blocking size. This is returned by the runtime and sema prepares a DistIncrExpr variable to hold that value. As a consequence of blocking, the global upper bound (EnsureUpperBound) expression of the 'for' is not the original loop upper bound (e.g. in for(i = 0 ; i < N; i++) this is 'N') but it is the team-assigned block upper bound. Sema creates a new expression holding the calculation of the actual upper bound for 'for' as UB = min(UB, PrevUB), where UB is the loop upper bound, and PrevUB is the team-assigned block upper bound. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273884 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
/std: supports two arguments, c++14 and c++latest. Currently, c++latest maps to c++1z but this might change down the road. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273841 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 26, 2016
-
-
Asaf Badouh authored
Differential Revision: http://reviews.llvm.org/D21504 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273812 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 25, 2016
-
-
James Y Knight authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273783 91177308-0d34-0410-b5e6-96231b3b80d8
-
Craig Topper authored
[X86] Fix pslldq/psrldq intrinsics to not fail compilation with immediates larger than 16. This was accidentally broken in r272246. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273775 91177308-0d34-0410-b5e6-96231b3b80d8
-
Peter Collingbourne authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273760 91177308-0d34-0410-b5e6-96231b3b80d8
-
Peter Collingbourne authored
CodeGen: Start emitting checked loads when both trapping CFI and -fwhole-program-vtables are enabled. Differential Revision: http://reviews.llvm.org/D21122 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273757 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
variable weak discardable linkage and partially-ordered initialization, and is implied for constexpr static data members.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273754 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 24, 2016
-
-
Rafael Espindola authored
Patch by Lei Zhang! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273735 91177308-0d34-0410-b5e6-96231b3b80d8
-
Peter Collingbourne authored
Differential Revision: http://reviews.llvm.org/D21054 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273730 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
I added this option in r257827 to try and add compatibility with autoconf. At the time I misunderstood the problem. Our CMake automatically generates the SVN revision information and generates a build action to update it so builds don't need to be re-configured on SCM update (which is a better solution than we had in autoconf). The problem I was actually seeing was isolated cases where SVN revision information isn't available because the repository structures have been removed. This happens in some automated testing systems. This patch allows SVN_REVISION to be overridden if the build configuration could not find the SCM repository structures, and removes the code from my original patch because it is unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273714 91177308-0d34-0410-b5e6-96231b3b80d8
-
Carlo Bertolli authored
[OpenMP] Initial implementation of parse and sema for composite pragma 'distribute parallel for' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273709 91177308-0d34-0410-b5e6-96231b3b80d8
-
Carlo Bertolli authored
http://reviews.llvm.org/D21564 This patch is an initial implementation for #distribute parallel for. The main differences that affect other pragmas are: The implementation of 'distribute parallel for' requires blocking of the associated loop, where blocks are "distributed" to different teams and iterations within each block are scheduled to parallel threads within each team. To implement blocking, sema creates two additional worksharing directive fields that are used to pass the team assigned block lower and upper bounds through the outlined function resulting from 'parallel'. In this way, scheduling for 'for' to threads can use those bounds. As a consequence of blocking, the stride of 'distribute' is not 1 but it is equal to the blocking size. This is returned by the runtime and sema prepares a DistIncrExpr variable to hold that value. As a consequence of blocking, the global upper bound (EnsureUpperBound) expression of the 'for' is not the original loop upper bound (e.g. in for(i = 0 ; i < N; i++) this is 'N') but it is the team-assigned block upper bound. Sema creates a new expression holding the calculation of the actual upper bound for 'for' as UB = min(UB, PrevUB), where UB is the loop upper bound, and PrevUB is the team-assigned block upper bound. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273705 91177308-0d34-0410-b5e6-96231b3b80d8
-
Martin Probst authored
Checking Line.MustBeDeclaration does actually break the field and param initializer use case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273694 91177308-0d34-0410-b5e6-96231b3b80d8
-
Stephan Bergmann authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273689 91177308-0d34-0410-b5e6-96231b3b80d8
-