llvm-project/clang/lib/Sema
Jonas Hahnfeld b6229be460 [OpenMP] Avoid VLAs for some reductions on array sections
In some cases the compiler can deduce the length of an array section
as constants. With this information, VLAs can be avoided in place of
a constant sized array or even a scalar value if the length is 1.
Example:
int a[4], b[2];
pragma omp parallel reduction(+: a[1:2], b[1:1])
{ }

For chained array sections, this optimization is restricted to cases
where all array sections except the last have a constant length 1.
This trivially guarantees that there are no holes in the memory region
that needs to be privatized.
Example:
int c[3][4];
pragma omp parallel reduction(+: c[1:1][1:2])
{ }

Differential Revision: https://reviews.llvm.org/D39136

llvm-svn: 316229
2017-10-20 19:40:40 +00:00
..
AnalysisBasedWarnings.cpp Enable support for the [[fallthrough]] attribute from WG14 N2052 when enabling double square bracket attributes in C code. 2017-10-18 14:33:27 +00:00
AttributeList.cpp Add -f[no-]double-square-bracket-attributes as new driver options to control use of [[]] attributes in all language modes. This is the initial implementation of WG14 N2165, which is a proposal to add [[]] attributes to C2x, but also allows you to enable these attributes in C++98, or disable them in C++11 or later. 2017-10-15 15:01:42 +00:00
CMakeLists.txt Enabling the /bigobj flag for SemaDeclAttr.cpp. 2017-05-12 14:30:49 +00:00
CodeCompleteConsumer.cpp Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 14:27:22 +00:00
CoroutineStmtBuilder.h [coroutines] Fix rebuilding of dependent coroutine parameters 2017-06-03 00:22:18 +00:00
DeclSpec.cpp Recommit "Add _Float16 as a C/C++ source language type" 2017-09-08 15:15:00 +00:00
DelayedDiagnostic.cpp [Sema] Don't allow -Wunguarded-availability to be silenced with redecls 2017-07-05 17:08:56 +00:00
IdentifierResolver.cpp
JumpDiagnostics.cpp [Sema][ObjC] Disallow jumping into ObjC fast enumeration loops. 2017-04-19 17:54:08 +00:00
MultiplexExternalSemaSource.cpp Fix warnings. [-Wdocumentation] 2017-10-12 09:42:14 +00:00
Scope.cpp [Parser] Clear the TemplateParamScope bit of the current scope's flag 2016-04-29 02:24:14 +00:00
ScopeInfo.cpp [coroutines] Fix diagnostics depending on the first coroutine statement. 2017-03-11 02:35:37 +00:00
Sema.cpp [Modules TS] Diagnose missing/duplicate module-declaration. 2017-10-11 00:36:56 +00:00
SemaAccess.cpp P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991: 2016-06-28 19:03:57 +00:00
SemaAttr.cpp -Wpragma-pack: add an additional note and fixit when warning 2017-07-31 13:37:50 +00:00
SemaCUDA.cpp Function with unparsed body is a definition 2017-06-21 12:46:57 +00:00
SemaCXXScopeSpec.cpp Add support for editor placeholders to Clang 2017-04-19 08:58:56 +00:00
SemaCast.cpp Allow the target field of a CK_ToUnion to be more easily recovered. 2017-08-15 21:42:47 +00:00
SemaChecking.cpp Sema: use new `getNS{,U}IntegerType` for NS{,U}Integer 2017-10-17 17:39:32 +00:00
SemaCodeComplete.cpp Resolve a defect in C++17 copy omission. 2017-09-26 18:37:55 +00:00
SemaConsumer.cpp
SemaCoroutine.cpp [coroutines] Make sure auto return type of await_resume is properly handled 2017-09-05 19:31:52 +00:00
SemaDecl.cpp [Sema] Fix assertion failure when checking for unused variables in a dependent context. 2017-10-19 19:07:13 +00:00
SemaDeclAttr.cpp Convert clang::LangAS to a strongly typed enum 2017-10-15 18:48:14 +00:00
SemaDeclCXX.cpp Support for destroying operator delete, per C++2a proposal P0722. 2017-10-13 01:55:36 +00:00
SemaDeclObjC.cpp Convert clang::LangAS to a strongly typed enum 2017-10-15 18:48:14 +00:00
SemaExceptionSpec.cpp [coroutines] Add DependentCoawaitExpr and fix re-building CoroutineBodyStmt. 2017-03-06 23:38:15 +00:00
SemaExpr.cpp Don't suppress instantiation of definitions for variables subject to explicit 2017-10-18 22:45:01 +00:00
SemaExprCXX.cpp Make __builtin_types_compatible_p more like GCC's 2017-10-16 22:58:37 +00:00
SemaExprMember.cpp [OpenCL] Restrict swizzle length check to OpenCL mode 2017-10-17 17:54:57 +00:00
SemaExprObjC.cpp [Sema][ObjC] Preserve syntactic sugar when removing 2017-10-10 01:24:33 +00:00
SemaFixItUtils.cpp
SemaInit.cpp Suppress -Wmissing-braces warning when aggregate-initializing a struct with a single field that is itself an aggregate. 2017-10-03 20:36:00 +00:00
SemaLambda.cpp Give external linkage and mangling to lambdas inside inline variables and variable templates. 2017-09-22 04:25:05 +00:00
SemaLookup.cpp [modules] When finding the owning module of an instantiated context in template 2017-10-18 01:41:38 +00:00
SemaObjCProperty.cpp [ObjC] Don't warn on readwrite properties with custom setters that 2017-10-06 19:24:26 +00:00
SemaOpenMP.cpp [OpenMP] Avoid VLAs for some reductions on array sections 2017-10-20 19:40:40 +00:00
SemaOverload.cpp Fix two-phase name lookup for non-dependent overloaded operators. 2017-10-05 19:35:51 +00:00
SemaPseudoObject.cpp [ObjC] Check that a subscript methods is declared for a qualified id type 2017-07-11 10:18:35 +00:00
SemaStmt.cpp Catch more cases with -Wenum-compare 2017-09-09 00:25:05 +00:00
SemaStmtAsm.cpp [X86][MS-InlineAsm] Extended support for variables / identifiers on memory / immediate expressions 2017-09-29 07:02:49 +00:00
SemaStmtAttr.cpp Rename cxx1z -> cxx17 across all diagnostic IDs. 2017-08-13 23:37:29 +00:00
SemaTemplate.cpp [Modules TS] Module ownership semantics for redeclarations. 2017-10-10 22:33:17 +00:00
SemaTemplateDeduction.cpp Convert clang::LangAS to a strongly typed enum 2017-10-15 18:48:14 +00:00
SemaTemplateInstantiate.cpp [Sema] Prevent InstantiateClass from checking unrelated exception specs. 2017-09-21 19:54:12 +00:00
SemaTemplateInstantiateDecl.cpp Don't suppress instantiation of definitions for variables subject to explicit 2017-10-18 22:45:01 +00:00
SemaTemplateVariadic.cpp Recommit "Add _Float16 as a C/C++ source language type" 2017-09-08 15:15:00 +00:00
SemaType.cpp Convert clang::LangAS to a strongly typed enum 2017-10-15 18:48:14 +00:00
TreeTransform.h Remove unused variables. No functionality change. 2017-10-08 21:23:02 +00:00
TypeLocBuilder.cpp [Sema] Fix bug in TypeLocBuilder::pushImpl 2016-02-18 21:05:09 +00:00
TypeLocBuilder.h Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 14:27:22 +00:00