#
f29276ed |
| 18-Jun-2014 |
Alexey Bataev <a.bataev@hotmail.com> |
[OPENMP] Initial support for '#pragma omp for' (fixed incompatibility with MSVC).
llvm-svn: 211140
|
#
a566efbe |
| 17-Jun-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert "[OPENMP] Initial support for '#pragma omp for'."
This reverts commit r211096. Looks like it broke the msvc build:
SemaOpenMP.cpp(140) : error C4519: default template arguments are only allo
Revert "[OPENMP] Initial support for '#pragma omp for'."
This reverts commit r211096. Looks like it broke the msvc build:
SemaOpenMP.cpp(140) : error C4519: default template arguments are only allowed on a class template
llvm-svn: 211113
show more ...
|
#
c77dd525 |
| 17-Jun-2014 |
Alexey Bataev <a.bataev@hotmail.com> |
[OPENMP] Initial support for '#pragma omp for'.
llvm-svn: 211096
|
#
69186e73 |
| 08-Jun-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] Use 'nullptr'. Tools edition.
llvm-svn: 210422
|
#
2581e66e |
| 28-May-2014 |
Eli Bendersky <eliben@google.com> |
Expose CUDA function attributes to the C interface.
Until now all CUDA-specific attributes were represented with CXCursor_UnexposedAttr; now they are actually implemented, including the Python bindi
Expose CUDA function attributes to the C interface.
Until now all CUDA-specific attributes were represented with CXCursor_UnexposedAttr; now they are actually implemented, including the Python bindings.
llvm-svn: 209767
show more ...
|
Revision tags: llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
81228382 |
| 01-May-2014 |
Joey Gouly <joey.gouly@gmail.com> |
[libclang] Add attribute support for 'pure', 'const' and 'noduplicate'.
This bumps CINDEX_VERSION_MINOR up (to 26).
llvm-svn: 207767
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2, llvmorg-3.4.1-rc1 |
|
#
1b59ab56 |
| 27-Feb-2014 |
Alexey Bataev <a.bataev@hotmail.com> |
[OPENMP] First changes for Parsing and Sema for 'omp simd' directive support
llvm-svn: 202360
|
#
95e7ff2e |
| 01-Jan-2014 |
Alp Toker <alp@nuanti.com> |
Eliminate UnaryTypeTraitExpr
Remove UnaryTypeTraitExpr and switch all remaining type trait related handling over to TypeTraitExpr.
The UTT/BTT/TT enum prefix and evaluation code is retained pending
Eliminate UnaryTypeTraitExpr
Remove UnaryTypeTraitExpr and switch all remaining type trait related handling over to TypeTraitExpr.
The UTT/BTT/TT enum prefix and evaluation code is retained pending further cleanup.
This is part of the ongoing work to unify type traits following the removal of BinaryTypeTraitExpr in r197273.
llvm-svn: 198271
show more ...
|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3 |
|
#
cbb9034e |
| 13-Dec-2013 |
Alp Toker <alp@nuanti.com> |
Eliminate BinaryTypeTraitExpr
There's nothing special about type traits accepting two arguments.
This commit eliminates BinaryTypeTraitExpr and switches all related handling over to TypeTraitExpr.
Eliminate BinaryTypeTraitExpr
There's nothing special about type traits accepting two arguments.
This commit eliminates BinaryTypeTraitExpr and switches all related handling over to TypeTraitExpr.
Also fixes a CodeGen failure with variadic type traits appearing in a non-constant expression.
The BTT/TT prefix and evaluation code is retained as-is for now but will soon be further cleaned up.
This is part of the ongoing work to unify type traits.
llvm-svn: 197273
show more ...
|
Revision tags: llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
16834f1c |
| 25-Sep-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Provide location for attributes and expose 'packed' attribute.
Patch by Loïc Jaquemet!
llvm-svn: 191345
|
#
c4d7c82c |
| 18-Sep-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add the intrinsic __builtin_convertvector
LLVM supports applying conversion instructions to vectors of the same number of elements (fptrunc, fptosi, etc.) but there had been no way for a Clang user
Add the intrinsic __builtin_convertvector
LLVM supports applying conversion instructions to vectors of the same number of elements (fptrunc, fptosi, etc.) but there had been no way for a Clang user to cause such instructions to be generated when using builtin vector types.
C-style casting on vectors is already defined in terms of bitcasts, and so cannot be used for these conversions as well (without leading to a very confusing set of semantics). As a result, this adds a __builtin_convertvector intrinsic (patterned after the OpenCL __builtin_astype intrinsic). This is intended to aid the creation of vector intrinsic headers that create generic IR instead of target-dependent intrinsics (in other words, this is a generic _mm_cvtepi32_ps). As noted in the documentation, the action of __builtin_convertvector is defined in terms of the action of a C-style cast on each vector element.
llvm-svn: 190915
show more ...
|
#
0a4e61f8 |
| 13-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary inclusion of Sema.h
Let me tell you a tale...
Within some twisted maze of debug info I've ended up implementing an insane man's Include What You Use device. When the debugger emi
Remove unnecessary inclusion of Sema.h
Let me tell you a tale...
Within some twisted maze of debug info I've ended up implementing an insane man's Include What You Use device. When the debugger emits debug info it really shouldn't, I find out why & then realize the code could be improved too.
In this instance CIndexDiagnostics.cpp had a lot more debug info with Clang than GCC. Upon inspection a major culprit was all the debug info describing clang::Sema. This was emitted because clang::Sema is befriended by DiagnosticEngine which was rightly required, but GCC doesn't emit debug info for friends so it never emitted anything for Clang. Clang does emit debug info for friends (will be fixed/changed to reduce debug info size).
But why didn't Clang just emit a declaration of Sema if this entire TU didn't require a definition?
1) Diagnostic.h did the right thing, only using a declaration of Sema and not including Sema.h at all. 2) Some other dependency of CIndexDiagnostics.cpp didn't do the right thing. ASTUnit.h, only needing a declaration, still included Sema.h (hence this commit which removes that include and adds the necessary includes to the cpp files that were relying on this) 3) -flimit-debug-info didn't save us because of EnterExpressionEvaluationContext, defined inline in Sema.h which fires the "requiresCompleteType" check/flag (since it uses nested types from Sema and calls Sema member functions) and thus, if debug info is ever emitted for the type, the whole type is emitted and not just a declaration.
Improving -flimit-debug-info to account for this would be... hard. Modifying the code so that's not 'required to be complete' might be possible, but probably only by moving EnterExpressionEvaluationContext either into Sema, or out of Sema.h. That might be a bit too much of a contortion to be bothered with.
Also, this is only one of the cases where emitting debug info for friends caused us to emit a lot more debug info (this change reduces Clang's DWO size by 0.93%, dropping friends entirely reduces debug info by 3.2%) - I haven't hunted down the other cases, but I assume they might be similar (Sema or something like it). IWYU or a similar tool might help us reduce build times a bit, but analyzing debug info to find these differences isn't worthwhile. I'll take the 3.2% win, provide this small improvement to the code itself, and move on.
llvm-svn: 190715
show more ...
|
#
5ec3eb11 |
| 19-Jul-2013 |
Alexey Bataev <a.bataev@hotmail.com> |
OpenMP: basic support for #pragma omp parallel
llvm-svn: 186647
|
Revision tags: llvmorg-3.3.1-rc1 |
|
#
2341c0d3 |
| 04-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.
llvm-svn: 185610
|
#
cc1b96d3 |
| 12-Jun-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR12086, PR15117
Introduce CXXStdInitializerListExpr node, representing the implicit construction of a std::initializer_list<T> object from its underlying array. The AST representation of such an ex
PR12086, PR15117
Introduce CXXStdInitializerListExpr node, representing the implicit construction of a std::initializer_list<T> object from its underlying array. The AST representation of such an expression goes from an InitListExpr with a flag set, to a CXXStdInitializerListExpr containing a MaterializeTemporaryExpr containing an InitListExpr (possibly wrapped in a CXXBindTemporaryExpr).
This more detailed representation has several advantages, the most important of which is that the new MaterializeTemporaryExpr allows us to directly model lifetime extension of the underlying temporary array. Using that, this patch *drastically* simplifies the IR generation of this construct, provides IR generation support for nested global initializer_list objects, fixes several bugs where the destructors for the underlying array would accidentally not get invoked, and provides constant expression evaluation support for std::initializer_list objects.
llvm-svn: 183872
show more ...
|
Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1 |
|
#
29b28e8f |
| 24-Apr-2013 |
Ted Kremenek <kremenek@apple.com> |
Fix typo in comparison in clang_CXCursorSet_contains().
Fixes PR 10124.
Patch by Jens Kilian.
Thanks to Nikola Smiljanic for following up.
llvm-svn: 180177
|
#
c0b98663 |
| 24-Apr-2013 |
Ted Kremenek <kremenek@apple.com> |
Revert "Remove CXCursorSet and related APIs. There are no known clients."
Apparently there are...
llvm-svn: 180176
|
#
616986f8 |
| 24-Apr-2013 |
Ted Kremenek <kremenek@apple.com> |
Remove CXCursorSet and related APIs. There are no known clients.
llvm-svn: 180174
|
#
c2233beb |
| 23-Apr-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Introduce a CXCursor_ObjCSelfExpr cursor, which is the equivalent of CXCursor_CXXThisExpr for C++ code.
rdar://13717006
llvm-svn: 180127
|
#
852c9db7 |
| 20-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++1y: Allow aggregates to have default initializers.
Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in CXXCtorInitializers and in InitListExprs to represent a default ini
C++1y: Allow aggregates to have default initializers.
Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in CXXCtorInitializers and in InitListExprs to represent a default initializer.
There's an additional complication here: because the default initializer can refer to the initialized object via its 'this' pointer, we need to make sure that 'this' points to the right thing within the evaluation.
llvm-svn: 179958
show more ...
|
#
24110cc7 |
| 16-Apr-2013 |
Tareq A. Siraj <tareq.a.sriaj@intel.com> |
Implement CapturedStmt AST
CapturedStmt can be used to implement generic function outlining as described in http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html.
CapturedStmt is not
Implement CapturedStmt AST
CapturedStmt can be used to implement generic function outlining as described in http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html.
CapturedStmt is not exposed to the C api.
Serialization and template support are pending.
Author: Wei Pan <wei.pan@intel.com>
Differential Revision: http://llvm-reviews.chandlerc.com/D370
llvm-svn: 179615
show more ...
|
#
5e77d76c |
| 16-Apr-2013 |
John McCall <rjmccall@apple.com> |
Basic support for Microsoft property declarations and references thereto.
Patch by Tong Shen!
llvm-svn: 179585
|
#
b2792972 |
| 01-Apr-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Make clang_Cursor_getArgument work with call-exprs.
Patch by Matthias Kleine!
llvm-svn: 178475
|
#
6adc78e0 |
| 18-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Replace TypeLoc llvm::cast support to be well-defined.
The TypeLoc hierarchy used the llvm::cast machinery to perform undefined behavior by casting pointers/references to TypeLoc objects to derived
Replace TypeLoc llvm::cast support to be well-defined.
The TypeLoc hierarchy used the llvm::cast machinery to perform undefined behavior by casting pointers/references to TypeLoc objects to derived types and then using the derived copy constructors (or even returning pointers to derived types that actually point to the original TypeLoc object).
Some context is in this thread: http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056804.html Though it's spread over a few months which can be hard to read in the mail archive.
llvm-svn: 175462
show more ...
|
#
19b79c8b |
| 16-Feb-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
libclang: remove reinterpret_casts by using SourceLocation::getPtrEncoding
llvm-svn: 175333
|