Alexey Bataev
0bd520b767
[OPENMP] Initial parsing/sema analysis of 'target' directive.
...
llvm-svn: 218110
2014-09-19 08:19:49 +00:00
Alexander Musman
f82886e502
Parsing/Sema of directive omp for simd
...
llvm-svn: 218029
2014-09-18 05:12:34 +00:00
Akira Hatanaka
987f1864ca
[AArch64, inline-asm] Improve diagnostic that is printed when the size of a
...
variable that has regiser constraint "r" is not 64-bit.
General register operands are output using 64-bit "x" register names, regardless
of the size of the variable, unless the asm operand is prefixed with the "%w"
modifier. This surprises and confuses many users who aren't familiar with
aarch64 inline assembly rules.
With this commit, a note and fixit hint are printed which tell the users that
they need modifier "%w" in order to output a "w" register instead of an "x"
register.
<rdar://problem/12764785>
llvm-svn: 216260
2014-08-22 06:05:21 +00:00
Warren Hunt
f6be4cb4cb
Revert r213437
...
We no longer plan to use __except_hander3 and rather use custom
personality functions per __try block.
llvm-svn: 213971
2014-07-25 20:52:51 +00:00
Alexey Bataev
0162e459ef
[OPENMP] Initial parsing and sema analysis for 'atomic' directive.
...
llvm-svn: 213639
2014-07-22 10:10:35 +00:00
Alexey Bataev
9fb6e647e7
[OPENMP] Initial parsing and sema analysis for 'ordered' directive.
...
llvm-svn: 213616
2014-07-22 06:45:04 +00:00
Alexey Bataev
6125da9258
[OPENMP] Initial parsing and sema analysis for 'flush' directive.
...
llvm-svn: 213512
2014-07-21 11:26:11 +00:00
Alexander Musman
d9ed09f7a5
[OPENMP] Parsing/Sema of the OpenMP directive 'critical'.
...
llvm-svn: 213510
2014-07-21 09:42:05 +00:00
Warren Hunt
b530bc0242
[MS-ABI] Assign SEH handler indices to __try blocks
...
Assigns indices to try blocks. These indices will used in constructing
tables that the mscrt function __except_handler3 reads during SEH.
Testing will occur once we actually emit the tables, in a subsequent
patch.
llvm-svn: 213437
2014-07-19 00:45:07 +00:00
Alexey Bataev
2df347ad96
[OPENMP] Initial parsing and sema analysis for 'taskwait' directive.
...
llvm-svn: 213363
2014-07-18 10:17:07 +00:00
Alexey Bataev
4d1dfeabc9
[OPENMP] Initial parsing and sema analysis for 'barrier' directive.
...
llvm-svn: 213360
2014-07-18 09:11:51 +00:00
Alexey Bataev
68446b7253
[OPENMP] Initial parsing and sema analysis of 'taskyield' directive.
...
llvm-svn: 213355
2014-07-18 07:47:19 +00:00
Alexander Musman
80c2289a03
[OPENMP] Parsing/Sema analysis of directive 'master'
...
llvm-svn: 213237
2014-07-17 08:54:58 +00:00
Alexey Bataev
9c2e8ee72f
[OPENMP] Parsing and sema analysis for 'omp task' directive.
...
llvm-svn: 212804
2014-07-11 11:25:16 +00:00
Alexey Bataev
84d0b3efee
[OPENMP] Parsing and sema analysis for 'omp parallel sections' directive.
...
llvm-svn: 212516
2014-07-08 08:12:03 +00:00
Alexey Bataev
4acb859fbd
[OPENMP] Added initial support for 'omp parallel for'.
...
llvm-svn: 212453
2014-07-07 13:01:15 +00:00
Alexey Bataev
bae9a793fd
[OPENMP] Parsing and sema analysis for 'copyprivate' clause.
...
llvm-svn: 211886
2014-06-27 10:37:06 +00:00
Alexey Bataev
d1e40fbfe1
[OPENMP] Initial parsing and sema analysis for 'single' directive.
...
llvm-svn: 211774
2014-06-26 12:05:45 +00:00
Alexey Bataev
1e0498a92d
[OPENMP] Initial parsing and sema analysis for 'section' directive.
...
llvm-svn: 211767
2014-06-26 08:21:58 +00:00
Alexey Bataev
d3f8dd2d15
[OPENMP] Initial support for 'sections' directive.
...
llvm-svn: 211685
2014-06-25 11:44:49 +00:00
Alexey Bataev
abfc069d6c
[OPENMP] OMPSimdDirective and OMPForDirective: added initialization for CollapsedNum member.
...
llvm-svn: 211672
2014-06-25 06:52:00 +00:00
Alexey Bataev
f29276edb7
[OPENMP] Initial support for '#pragma omp for' (fixed incompatibility with MSVC).
...
llvm-svn: 211140
2014-06-18 04:14:57 +00:00
Rafael Espindola
a566efbec9
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
2014-06-17 17:20:53 +00:00
Alexey Bataev
c77dd5257a
[OPENMP] Initial support for '#pragma omp for'.
...
llvm-svn: 211096
2014-06-17 11:49:22 +00:00
Alexey Bataev
c5e025831b
[OPENMP] Initial support of 'reduction' clause
...
llvm-svn: 211007
2014-06-16 07:08:35 +00:00
Alexander Musman
1bb328cca5
[OPENMP] Parsing/Sema for OMPLasprivateClause.
...
Parsing this clause, allowing it on directive ‘omp simd’ and semantic checks.
llvm-svn: 210184
2014-06-04 13:06:39 +00:00
Alexander Musman
f0d76e7dc3
Parsing/Sema for OMPAlignedClause.
...
llvm-svn: 209816
2014-05-29 14:36:25 +00:00
Aaron Ballman
f3d9b09dea
No longer triggering a checked iterator assert on Windows when using std::copy while deserializing attributed statements with more than one attribute.
...
llvm-svn: 208702
2014-05-13 14:55:01 +00:00
Craig Topper
36250ad632
[C++11] Use 'nullptr'. AST edition.
...
llvm-svn: 208517
2014-05-12 05:36:57 +00:00
Alexander Musman
8dba66412b
[OPENMP] parsing 'linear' clause (for directive 'omp simd')
...
Differential Revision: http://reviews.llvm.org/D3272
llvm-svn: 206891
2014-04-22 13:09:42 +00:00
Alexey Bataev
d48bcd8a46
[OPENMP] Implemented 'copyin' clause
...
llvm-svn: 205164
2014-03-31 03:36:38 +00:00
Alexander Musman
fd2b75948d
[OPENMP] OMPExecutableDirective re-factoring
...
Store the number of clauses and children of OMPExecutableDirective and dynamically compute the locations of corresponding arrays.
http://llvm-reviews.chandlerc.com/D2977
llvm-svn: 204933
2014-03-27 15:14:18 +00:00
Aaron Ballman
c656303a2c
[C++11] Replacing CapturedStmt iterators capture_begin() and capture_end() with iterator_range captures(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203953
2014-03-14 18:08:33 +00:00
Richard Trieu
86738692fd
"&&&" != "&&"
...
llvm-svn: 202444
2014-02-27 23:59:14 +00:00
Alexey Bataev
1b59ab5683
[OPENMP] First changes for Parsing and Sema for 'omp simd' directive support
...
llvm-svn: 202360
2014-02-27 08:29:12 +00:00
Alexey Bataev
1319381686
Fix for Bug 18536 - Bad alignment in clang/AST/StmpOpenMP.h
...
llvm-svn: 202141
2014-02-25 11:25:38 +00:00
Alexey Bataev
d5af8e472d
[OpenMP] Added parsing and semantic analysis for firstprivate clause
...
llvm-svn: 191730
2013-10-01 05:32:34 +00:00
Eli Friedman
dc41d791f9
Add unused markings to suppress warnings.
...
trunk clang is a bit more aggressive about emitting unused-declaration
warnings, so adjust some AST code to match. Specifically, use
LLVM_ATTRIBUTE_UNUSED for declarations which are never supposed to be
referenced, and turn references to declarations which are supposed to be
referenced into odr-uses.
llvm-svn: 190443
2013-09-10 22:57:15 +00:00
Alexey Bataev
758e55ee58
OpenMP: Data-sharing attributes analysis and clause 'shared' (fixed test threadprivate_messages.cpp)
...
llvm-svn: 190183
2013-09-06 18:03:48 +00:00
Pavel Labath
515f4db4f9
Remove useless reinterpret_casts from Stmt.cpp
...
Summary:
I have no idea why these were there in the first place, but now they are
certainly not necessary.
Reviewers: rsmith
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1581
llvm-svn: 189813
2013-09-03 14:41:16 +00:00
Rafael Espindola
e892ccec0d
Revert "OpenMP: Data-sharing attributes analysis and clause 'shared'"
...
This reverts commit r189795.
threadprivate_messages.cpp is faling on windows.
llvm-svn: 189811
2013-09-03 14:33:09 +00:00
Alexey Bataev
d4183dabd7
OpenMP: Data-sharing attributes analysis and clause 'shared'
...
llvm-svn: 189795
2013-09-03 12:55:52 +00:00
Craig Topper
c571c810bf
Constify some more ASTContext& uses.
...
llvm-svn: 188989
2013-08-22 06:02:26 +00:00
Craig Topper
e6960e2db5
Constify the ASTContext& passed to Stmt creation functions. Also constify the context in couple other functions that are called from creation functions.
...
llvm-svn: 188986
2013-08-22 05:28:54 +00:00
Craig Topper
cee6133930
Revert accidental commit.
...
llvm-svn: 188862
2013-08-21 04:01:01 +00:00
Craig Topper
9c4d17f65c
Replace avx-512 with avx512f to match llvm side and what gcc patches appear to be using.
...
llvm-svn: 188860
2013-08-21 03:59:22 +00:00
Craig Topper
33b4cde2f2
Revert r188756 because some other changes snuck in with it.
...
llvm-svn: 188757
2013-08-20 07:07:29 +00:00
Craig Topper
ffb7180e96
Add AVX-512 feature flag and knl cpu to clang.
...
llvm-svn: 188756
2013-08-20 07:05:05 +00:00
Craig Topper
e691fce6e4
Make the version of Stmt::operator new that takes ASTContext* call the ASTContext& version in Stmt inline instead of having two out of line functions that both call to the global versions.
...
llvm-svn: 188648
2013-08-19 03:11:34 +00:00
Craig Topper
048b883416
Revert r188644 to unbreak buildbots.
...
llvm-svn: 188645
2013-08-18 20:38:37 +00:00
Craig Topper
260f7e6893
Remove Stmt::operator new that takes a ASTContext*. All callers use the ASTContext& version.
...
llvm-svn: 188644
2013-08-18 20:03:21 +00:00
Craig Topper
5a050016bb
Remove throw() from Stmt::operator new so the compiler will omit the null check on the result since ASTContext allocator won't return null.
...
llvm-svn: 188641
2013-08-18 17:45:38 +00:00
Craig Topper
3793291d50
Make expression allocation methods use a 'const' reference to the ASTContext since the underlying operator new only needs a const reference.
...
llvm-svn: 188636
2013-08-18 10:09:15 +00:00
Alexey Bataev
5ec3eb11fc
OpenMP: basic support for #pragma omp parallel
...
llvm-svn: 186647
2013-07-19 03:13:43 +00:00
Eli Friedman
b998bff32b
Delete dead code.
...
llvm-svn: 185101
2013-06-27 20:48:08 +00:00
Richard Smith
ba71c08523
First pass of semantic analysis for init-captures: check the initializer, build
...
a FieldDecl from it, and propagate both into the closure type and the
LambdaExpr.
You can't do much useful with them yet -- you can't use them within the body
of the lambda, because we don't have a representation for "the this of the
lambda, not the this of the enclosing context". We also don't have support or a
representation for a nested capture of an init-capture yet, which was intended
to work despite not being allowed by the current standard wording.
llvm-svn: 181985
2013-05-16 06:20:58 +00:00
Wei Pan
17fbf6edc2
Implement template support for CapturedStmt
...
- Sema tests added and CodeGen tests are pending
Differential Revision: http://llvm-reviews.chandlerc.com/D728
llvm-svn: 181101
2013-05-04 03:59:06 +00:00
Ben Langmuir
ce914fc84b
Serialization for captured statements
...
Add serialization for captured statements and captured decls. Also add
a const_capture_iterator to CapturedStmt.
Test contributed by Wei Pan
Differential Revision: http://llvm-reviews.chandlerc.com/D727
llvm-svn: 181048
2013-05-03 19:20:19 +00:00
John McCall
f413f5ed44
Move parsing of identifiers in MS-style inline assembly into
...
the actual parser and support arbitrary id-expressions.
We're actually basically set up to do arbitrary expressions here
if we wanted to.
Assembly operands permit things like A::x to be written regardless
of language mode, which forces us to embellish the evaluation
context logic somewhat. The logic here under template instantiation
is incorrect; we need to preserve the fact that an expression was
unevaluated. Of course, template instantiation in general is fishy
here because we have no way of delaying semantic analysis in the
MC parser. It's all just fishy.
I've also fixed the serialization of MS asm statements.
This commit depends on an LLVM commit.
llvm-svn: 180976
2013-05-03 00:10:13 +00:00
Tareq A. Siraj
6dfa25a19f
Sema for Captured Statements
...
Add CapturedDecl to be the DeclContext for CapturedStmt, and perform semantic
analysis. Currently captures all variables by reference.
TODO: templates
Author: Ben Langmuir <ben.langmuir@intel.com>
Differential Revision: http://llvm-reviews.chandlerc.com/D433
llvm-svn: 179618
2013-04-16 19:37:38 +00:00
Tareq A. Siraj
24110cc733
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
2013-04-16 18:53:08 +00:00
Jordan Rose
a7d03840e6
Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.
...
Nearly all of these changes are one-to-one replacements; the few that
aren't have to do with custom identifier validation.
llvm-svn: 174768
2013-02-08 22:30:41 +00:00
Nico Weber
9dff378a12
ArrayRefize CXXTryStmt.
...
llvm-svn: 171239
2012-12-29 20:13:03 +00:00
Nico Weber
a2a0eb940a
ArrayRefize a CompoundStmt constructor.
...
llvm-svn: 171238
2012-12-29 20:03:39 +00:00
Erik Verbruggen
11a2eccc8b
Fix for PR12222.
...
Changed getLocStart() and getLocEnd() to be required for Stmts, and make
getSourceRange() optional. The default implementation for getSourceRange()
is build the range by calling getLocStart() and getLocEnd().
llvm-svn: 171067
2012-12-25 14:51:39 +00:00
Benjamin Kramer
444a1304ad
Include pruning and general cleanup.
...
llvm-svn: 169095
2012-12-01 17:12:56 +00:00
Benjamin Kramer
ea70eb30a0
Pull the Attr iteration parts out of Attr.h, so including DeclBase.h doesn't pull in all the generated Attr code.
...
Required to pull some functions out of line, but this shouldn't have a perf impact.
No functionality change.
llvm-svn: 169092
2012-12-01 15:09:41 +00:00
Chad Rosier
f8037a1fb6
[ms-inline asm] Move some logic around to simplify the interface between the
...
front-end and the AsmParser. No functional change intended.
llvm-svn: 166063
2012-10-16 21:55:39 +00:00
Joao Matos
566359c0bf
Revert r163083 per chandlerc's request.
...
llvm-svn: 163149
2012-09-04 17:49:35 +00:00
Chad Rosier
74f3716bc4
[ms-inline asm] Fix an illegal index and an 80-column violation.
...
llvm-svn: 163143
2012-09-04 16:36:26 +00:00
Joao Matos
c32a7e4d8e
Implemented parsing and AST support for the MS __leave exception statement. Also a minor fix to __except printing in StmtPrinter.cpp. Thanks to Aaron Ballman for review.
...
llvm-svn: 163083
2012-09-02 03:45:41 +00:00
Chad Rosier
0bca469d11
[ms-inline asm] Have generateAsmString() return the AsmString computed by Sema.
...
We still need to translate the string, but this at least gets us one step
closer to using the more general EmitAsmStmt() codegen function. No functional
change intended.
llvm-svn: 162785
2012-08-28 20:33:49 +00:00
Chad Rosier
3dd7bf2c86
[ms-inline asm] Add constraints to MSAsmStmt. We don't currently compute
...
the constraints, so in the interim we speculatively assume a 'r' constraint.
This is expected to work for most cases on x86.
llvm-svn: 162784
2012-08-28 20:28:20 +00:00
Chad Rosier
f70b7e284c
[ms-inline asm] Use dyn_cast<> here to simplify logic.
...
llvm-svn: 162773
2012-08-28 18:21:14 +00:00
Chad Rosier
bbbe9ab876
[ms-inline asm] Make the AsmStmt class non-virtual.
...
llvm-svn: 162768
2012-08-28 17:43:23 +00:00
Chad Rosier
a1b5c8c6a1
[ms-inline asm] Hoist more common code into the AsmStmt base class. Add stubs
...
with FIXMEs for unimplemented features. No functional change intended.
llvm-svn: 162716
2012-08-28 00:24:05 +00:00
Chad Rosier
6100ae120c
[ms-inline asm] Add virtual function, getClobber, that returns a StringRef.
...
More work towards unifying asm stmt codegen.
llvm-svn: 162712
2012-08-27 23:47:56 +00:00
Chad Rosier
3b0c2607ef
[ms-inline asm] Rename GenerateAsmString to generateAsmString to conform with
...
coding standards. Also, add stub for MSAsmStmt class as part of unifying
codegen logic for AsmStmts.
llvm-svn: 162696
2012-08-27 20:23:31 +00:00
Chad Rosier
fe3352e0bc
[ms-inline asm] Hoist common logic into the AsmStmt base class.
...
llvm-svn: 162692
2012-08-27 19:38:01 +00:00
Chad Rosier
aeff2299c3
[ms-inline asm] Add a new base class, AsmStmt, for the GCCAsmStmt and MSAsmStmt
...
classes.
llvm-svn: 162691
2012-08-27 18:56:36 +00:00
Chad Rosier
de70e0ef45
[ms-inline asm] As part of a larger refactoring, rename AsmStmt to GCCAsmStmt.
...
No functional change intended.
llvm-svn: 162632
2012-08-25 00:11:56 +00:00
Chad Rosier
14836bab36
[ms-inline asm] Refactor code. No functional change intended.
...
llvm-svn: 162568
2012-08-24 17:05:45 +00:00
Chad Rosier
fe31e626ca
[ms-inline asm] Add the basic APIs for Exprs to the MSAsmStmt AST. Next we need
...
generate the Input/Output expressions using Sema::ActOnIdExpression().
llvm-svn: 162509
2012-08-24 00:07:09 +00:00
Chad Rosier
d4e55b8e35
[ms-inline asm] Remove old cruft now that MS-style asms their own code path.
...
llvm-svn: 162210
2012-08-20 17:11:53 +00:00
Chad Rosier
7dbef3e035
[ms-inline asm] Add inputs and outputs to AST. No functional change.
...
llvm-svn: 162000
2012-08-16 00:06:53 +00:00
Chad Rosier
b6f46c1af9
[ms-inline asm] Add the left brace source location and improve the pretty
...
printer. Patch by Enea Zaffanella <zaffanella@cs.unipr.it>.
llvm-svn: 161958
2012-08-15 16:53:30 +00:00
Chad Rosier
767a7b9ed0
[ms-inline asm] Remove the last bits of LineEnds.
...
llvm-svn: 161904
2012-08-14 23:14:45 +00:00
Chad Rosier
baf53f9ff8
[ms-inline asm] Avoid extra allocations by making this an array of StringRefs.
...
llvm-svn: 161703
2012-08-10 21:36:25 +00:00
Chad Rosier
d6ef704fe4
[ms-inline asm] Fix a memory leak introduced in r161686.
...
llvm-svn: 161698
2012-08-10 21:06:19 +00:00
Chad Rosier
a7020aee00
[ms-inline asm] Add clobbers to AST representation.
...
llvm-svn: 161686
2012-08-10 19:13:14 +00:00
Chad Rosier
8640a2a0db
[ms-inline asm] Use StringRef here, per Jordan's suggestion.
...
llvm-svn: 161619
2012-08-09 21:06:32 +00:00
Chad Rosier
3ed0bd9938
[ms-inline asm] Refactor the logic to generate the AsmString into Sema. No
...
functional change intended.
llvm-svn: 161518
2012-08-08 19:48:07 +00:00
Chad Rosier
d2ff32aa94
Add the IsSimple/IsVolatile parameters to the MSAsmStmt constructor.
...
llvm-svn: 161503
2012-08-08 17:35:36 +00:00
Chad Rosier
42032fafe4
Whitespace.
...
llvm-svn: 161455
2012-08-07 23:12:23 +00:00
Chad Rosier
99fc38191b
[ms-inline asm] Stmt destructors are never called, so allocate the AsmToks using
...
the ASTContext BumpPtr. Also use the preferred llvm::ArrayRef interface.
llvm-svn: 161373
2012-08-07 00:29:06 +00:00
Chad Rosier
c6c7133ed6
[ms-inline asm] Pass Tokens to Sema and store them in the AST. No functional
...
change intended. No test case as there's no real way to test at this time.
llvm-svn: 161342
2012-08-06 20:03:45 +00:00
Alexander Kornienko
20f6fc6220
Inline storage of attributes in AttributedStmt.
...
llvm-svn: 159925
2012-07-09 10:04:07 +00:00
Benjamin Kramer
e2a929df73
Split out the "empty" case for compound statement into a separate ctor.
...
Move the ASTContext-dependent version out of line.
llvm-svn: 159717
2012-07-04 17:03:41 +00:00
Chad Rosier
32503020a4
Etch out the code path for MS-style inline assembly.
...
llvm-svn: 158325
2012-06-11 20:47:18 +00:00
Richard Smith
c202b2809a
Add an AttributedStmt type to represent a statement with C++11 attributes
...
attached. Since we do not support any attributes which appertain to a statement
(yet), testing of this is necessarily quite minimal.
Patch by Alexander Kornienko!
llvm-svn: 154723
2012-04-14 00:33:13 +00:00