|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| | CLANG_TOOL_EXTRA_BUILD.
llvm-svn: 262606 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | This is a sad workaround for the lack of plugin support in libclang. Depends
on D17807, a tools-extra change that also contains the test case.
This is designed to be easy to remove again if libclang ever grows proper
plugin support.
Differential Revision: http://reviews.llvm.org/D17808
llvm-svn: 262596 | 
| | 
| 
| 
| 
| 
| 
| | I've tried to keep the infrastructure behind parameter ABI
treatments fairly general.
llvm-svn: 262587 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Add parsing, sema analysis and serialization/deserialization for 'declare reduction' construct.
User-defined reductions are defined as
#pragma omp declare reduction( reduction-identifier : typename-list : combiner ) [initializer ( initializer-expr )]
These custom reductions may be used in 'reduction' clauses of OpenMP constructs. The combiner specifies how partial results can be combined into a single value. The
combiner can use the special variable identifiers omp_in and omp_out that are of the type of the variables being reduced with this reduction-identifier. Each of them will
denote one of the values to be combined before executing the combiner. It is assumed that the special omp_out identifier will refer to the storage that holds the resulting
combined value after executing the combiner.
As the initializer-expr value of a user-defined reduction is not known a priori the initializer-clause can be used to specify one. Then the contents of the initializer-clause
will be used as the initializer for private copies of reduction list items where the omp_priv identifier will refer to the storage to be initialized. The special identifier
omp_orig can also appear in the initializer-clause and it will refer to the storage of the original variable to be reduced.
Differential Revision: http://reviews.llvm.org/D11182
llvm-svn: 262582 | 
| | 
| 
| 
| 
| 
| 
| | This is like r262493, but for pragma detect_mismatch instead of pragma comment.
The two pragmas have similar behavior, so use the same approach for both.
llvm-svn: 262506 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | `#pragma comment` was handled by Sema calling a function on ASTConsumer, and
CodeGen then implementing this function and writing things to its output.
Instead, introduce a PragmaCommentDecl AST node and hang one off the
TranslationUnitDecl for every `#pragma comment` line, and then use the regular
serialization machinery. (Since PragmaCommentDecl has codegen relevance, it's
eagerly deserialized.)
http://reviews.llvm.org/D17799
llvm-svn: 262493 | 
| | 
| 
| 
| 
| 
| 
| 
| | OpenMP 4.5 allows to privatize non-static data members of current class
in non-static member functions. Patch supports codegen for non-static
data members in 'reduction' clauses.
llvm-svn: 262460 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | This behavior is enabled when the new CXTranslationUnit_KeepGoing
option is passed to clang_parseTranslationUnit{,2}. It is geared
towards use by IDEs and similar consumers of the clang-c API where
fatal errors may arise when parsing incomplete code mid-edit, or
when include paths are not properly configured yet. In such situations
one still wants to get as much information as possible about a TU.
Previously, the semantic analysis would not instantiate templates
or report additional fatal errors after the first fatal error was
encountered.
Fixes PR24268.
Patch by Milian Wolff.
llvm-svn: 262318 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | OpenMP 4.5 allows to privatize non-static member decls in non-static
member functions. Patch captures such decls by reference in general (for
bitfields, by value) and then operates with this capture. For bitfields,
at the end of codegen for lastprivates original bitfield is updated with the value of captured copy.
llvm-svn: 261824 | 
| | 
| 
| 
| 
| 
| | Added codegen for captured data members in non-static member functions.
llvm-svn: 261089 | 
| | 
| 
| 
| 
| 
| 
| 
| | Expressions inside 'schedule'|'dist_schedule' clause must be captured in
combined directives to avoid possible crash during codegen. Patch
improves handling of such constructs
llvm-svn: 260954 | 
| | 
| 
| 
| 
| 
| 
| 
| | These codepaths would generate warnings with GCC on linux even though the switch
was covered.  Add llvm_unreachable markers to indicate that the switch should be
covered.  NFC.
llvm-svn: 260865 | 
| | 
| 
| 
| 
| 
| | symbols into the clangIndex library.
llvm-svn: 260858 | 
| | 
| 
| 
| 
| 
| | to wrap over.
llvm-svn: 260841 | 
| | 
| 
| 
| 
| 
| | VS IDE uses it.
llvm-svn: 260802 | 
| | 
| 
| 
| 
| 
| 
| 
| | introduce it into the clangIndex library.
It is a general goodness for libclang itself to mostly be a wrapper of functionality provided by the libraries.
llvm-svn: 260760 | 
| | 
| 
| 
| 
| 
| 
| 
| | OMPCapturedExprDecl allows caopturing not only of fielddecls, but also
other expressions. It also allows to simplify codegen for several
clauses.
llvm-svn: 260492 | 
| | 
| 
| 
| 
| 
| 
| 
| | fixes.
Differential revision: http://reviews.llvm.org/D17060
llvm-svn: 260414 | 
| | 
| 
| 
| 
| 
| | I guess it would be working since Rafael's r187619.
llvm-svn: 260344 | 
| | 
| 
| 
| | llvm-svn: 260255 | 
| | 
| 
| 
| 
| 
| 
| 
| | where they are reported.
It isn't much benefit and doesn't worth the complexity to try to handle them after the container is encountered.
llvm-svn: 260254 | 
| | 
| 
| 
| 
| 
| | the ObjC implementation decl.
llvm-svn: 260253 | 
| | 
| 
| 
| 
| 
| 
| 
| | getter/setter methods be the implementation decl.
Matches the behavior of other ObjC methods.
llvm-svn: 260250 | 
| | 
| 
| 
| 
| 
| | Silences an MSVC warning, and reduces the number of exported symbols.
llvm-svn: 260104 | 
| | 
| 
| 
| 
| 
| 
| | OpenMP 4.5 introduces privatization of non-static data members of current class in non-static member functions.
To correctly handle such kind of privatization a new (pseudo)declaration VarDecl-based node is added. It allows to reuse an existing code for capturing variables in Lambdas/Block/Captured blocks of code for correct privatization and codegen.
llvm-svn: 260077 | 
| | 
| 
| 
| 
| 
| 
| | Add support for exposing the adjustment thunk for virtual methods as
appropriate.
llvm-svn: 260011 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
This patch adds parsing + sema for the target parallel for directive along with testcases.
Reviewers: ABataev
Differential Revision: http://reviews.llvm.org/D16759
llvm-svn: 259654 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Add "enum ObjCPropertyQueryKind" to a few APIs that used to only take the name
of the property: ObjCPropertyDecl::findPropertyDecl,
ObjCContainerDecl::FindPropertyDeclaration,
ObjCInterfaceDecl::FindPropertyVisibleInPrimaryClass,
ObjCImplDecl::FindPropertyImplDecl, and Sema::ActOnPropertyImplDecl.
ObjCPropertyQueryKind currently has 3 values:
OBJC_PR_query_unknown, OBJC_PR_query_instance, OBJC_PR_query_class
This extra parameter specifies that we are looking for an instance property with
the given name, or a class property with the given name, or any property with
the given name (if both exist, the instance property will be returned).
rdar://23891898
llvm-svn: 259070 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html
    "This is the way [autoconf] ends
    Not with a bang but a whimper."
    -T.S. Eliot
Reviewers: chandlerc, grosbach, bob.wilson, echristo
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D16472
llvm-svn: 258862 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
This patch adds parsing + sema for the target parallel directive and its clauses along with testcases.
Reviewers: ABataev
Differential Revision: http://reviews.llvm.org/D16553
Rebased to current trunk and updated test cases.
llvm-svn: 258832 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
This patch adds parsing + sema for the defaultmap clause associated with the target directive (among others).
Reviewers: ABataev
Differential Revision: http://reviews.llvm.org/D16527
llvm-svn: 258817 | 
| | 
| 
| 
| | llvm-svn: 258317 | 
| | 
| 
| 
| 
| 
| | Patch by Arpith Jacob. Thanks!
llvm-svn: 258177 | 
| | 
| 
| 
| 
| 
| | Patch by Arpith Jacob. Thanks!
llvm-svn: 258165 | 
| | 
| 
| 
| 
| 
| 
| 
| | builtin/function.
rdar://24091595
llvm-svn: 257968 | 
| | 
| 
| 
| 
| 
| | regression tests.
llvm-svn: 257917 | 
| | 
| 
| 
| 
| 
| 
| 
| | CMakelists
This makes it so if you disable building libclang you won't install the headers as part of the 'install' target.
llvm-svn: 257828 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
Support for OpenCL 2.0 pipe type.
This is a bug-fix version for bader's patch reviews.llvm.org/D14441
Reviewers: pekka.jaaskelainen, Anastasia
Subscribers: bader, Anastasia, cfe-commits
Differential Revision: http://reviews.llvm.org/D15603
llvm-svn: 257254 | 
| | 
| 
| 
| 
| 
| | Differential Revision: http://reviews.llvm.org/D13001
llvm-svn: 257043 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | When reparsing a translation unit with preamble generation turned on,
no includes are found. This is due to the fact that all SLocs from
AST/PCH files are skipped as they are 'loaded', and inclusions from a
preamble are also 'loaded'. So, in case a file has a preamble, it first
needs to process those loaded inclusions, and then check for any local
inclusions. This latter one is for any includes that are not part of the
preamble, like includes half-way through a file.
This fixes PR24748.
Differential Revision: http://reviews.llvm.org/D14329
llvm-svn: 256939 | 
| | 
| 
| 
| 
| 
| | That necessitated moving the OffsetOfNode class out of OffsetOfExpr.
llvm-svn: 256590 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary: Use clang-tidy to simplify boolean conditional return statements.
Reviewers: alexfh
Subscribers: alexfh, chfast, cfe-commits
Patch by Richard Thomson!
Differential Revision: http://reviews.llvm.org/D10024
llvm-svn: 256498 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | ASTTemplateArgumentListInfo.
Doing so required separating them so that the former doesn't inherit
from the latter anymore. Investigating that, it became clear that the
inheritance wasn't actually providing real value in any case.
So also:
- Remove a bunch of redundant functions (getExplicitTemplateArgs,
  getOptionalExplicitTemplateArgs) on various Expr subclasses which
  depended on the inheritance relationship.
- Switched external callers to use pre-existing accessors that return the
  data they're actually interested in (getTemplateArgs,
  getNumTemplateArgs, etc).
- Switched internal callers to use pre-existing getTemplateKWAndArgsInfo.
llvm-svn: 256359 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
The current default is to create the preamble on the first reparse, aka
second parse. This is useful for clients that do not want to block when
opening a file because serializing the preamble takes a bit of time.
However, this makes the reparse much more expensive and that may be on the
critical path as it's the first interaction a user has with the source code.
YouCompleteMe currently optimizes for the first code interaction by parsing
the file twice when loaded. That's just unnecessarily slow and this flag
helps to avoid that.
Reviewers: doug.gregor, klimek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D15490
llvm-svn: 255635 | 
| | 
| 
| 
| 
| 
| | OpenMP 4.5 adds 'hint' clause to critical directive. Patch adds parsing/semantic analysis for this clause.
llvm-svn: 255625 | 
| | 
| 
| 
| 
| 
| | dist_schedule
llvm-svn: 255498 | 
| | 
| 
| 
| 
| 
| 
| | These attributes were previously unexposed.  Expose them through the libclang
interfaces.  Add tests that cover both the MSVC spelling and the GNU spelling.
llvm-svn: 255273 | 
| | 
| 
| 
| 
| 
| 
| | The complete dtor is only emitted when there is a virtual destructor.  The test
itself was incorrect, so the issue in the code was not noticed.
llvm-svn: 255225 | 
| | 
| 
| 
| 
| 
| 
| 
| | its clauses excluding dist_schedule."
It causes memory leak. Some tests in test/OpenMP would fail.
llvm-svn: 255094 | 
| | 
| 
| 
| 
| 
| | OpenMP 4.5 adds directives 'taskloop' and 'taskloop simd'. These directives support clause 'num_tasks'. Patch adds parsing/semantic analysis for this clause.
llvm-svn: 255008 |