llvm-project/clang/lib/Sema
Adam Nemet 2de463ece3 Add loop pragma for Loop Distribution
Summary:
This is similar to other loop pragmas like 'vectorize'.  Currently it
only has state values: distribute(enable) and distribute(disable).  When
one of these is specified the corresponding loop metadata is generated:

  !{!"llvm.loop.distribute.enable", i1 true/false}

As a result, loop distribution will be attempted on the loop even if
Loop Distribution in not enabled globally.  Analogously, with 'disable'
distribution can be turned off for an individual loop even when the pass
is otherwise enabled.

There are some slight differences compared to the existing loop pragmas.

1. There is no 'assume_safety' variant which makes its handling slightly
different from 'vectorize'/'interleave'.

2. Unlike the existing loop pragmas, it does not have a corresponding
numeric pragma like 'vectorize' -> 'vectorize_width'.  So for the
consistency checks in CheckForIncompatibleAttributes we don't need to
check it against other pragmas.  We just need to check for duplicates of
the same pragma.

Reviewers: rsmith, dexonsmith, aaron.ballman

Subscribers: bob.wilson, cfe-commits, hfinkel

Differential Revision: http://reviews.llvm.org/D19403

llvm-svn: 272656
2016-06-14 12:04:26 +00:00
..
AnalysisBasedWarnings.cpp Rename a variable to avoid shadowing function parameter. NFC. 2016-05-25 05:42:00 +00:00
AttributeList.cpp P0188R1: add support for standard [[fallthrough]] attribute. This is almost 2016-03-08 00:32:55 +00:00
CMakeLists.txt It seems we need to add SemaExpr.cpp to the /bigobj list; I am getting consistent failures of hitting the section count limit. 2016-06-01 15:17:54 +00:00
CodeCompleteConsumer.cpp Silence some MSVC false positive warnings about integer zexts and falling off the end of a covered switch 2016-02-10 19:09:15 +00:00
DeclSpec.cpp [MSVC] Support for __unaligned qualifier in functions 2016-05-26 10:06:01 +00:00
DelayedDiagnostic.cpp Addressing review comments for r261163. 2016-02-22 04:47:24 +00:00
IdentifierResolver.cpp [modules] Separately track whether an identifier's preprocessor information and 2016-02-05 19:03:40 +00:00
JumpDiagnostics.cpp Some minor ARC diagnostic improvements. 2015-10-21 18:06:38 +00:00
MultiplexExternalSemaSource.cpp Method Pool in modules: we make sure that if a module contains an entry for 2016-04-29 19:04:05 +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 [Objective-c] Do not set IsExact to true when the receiver is a class. 2016-03-22 05:00:21 +00:00
Sema.cpp Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr." 2016-06-09 21:13:39 +00:00
SemaAccess.cpp [Sema] Fix incorrect enum token namespace 2016-06-01 21:17:32 +00:00
SemaAttr.cpp [NFC] Initialize a variable to make buildbot green. 2016-04-29 22:50:16 +00:00
SemaCUDA.cpp [CUDA] Do not allow non-empty destructors for global device-side variables. 2016-05-19 20:13:53 +00:00
SemaCXXScopeSpec.cpp [modules] Enforce the rules that an explicit or partial specialization must be 2016-05-05 00:56:12 +00:00
SemaCast.cpp Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr." 2016-06-09 21:13:39 +00:00
SemaChecking.cpp [AVX512] Implement masked and 512-bit pshufd intrinsics directly with __builtin_shufflevector and __builtin_ia32_select. 2016-06-11 12:50:19 +00:00
SemaCodeComplete.cpp CIndex: add support for static_assert 2016-06-09 16:15:55 +00:00
SemaConsumer.cpp
SemaCoroutine.cpp Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr." 2016-06-09 21:13:39 +00:00
SemaDecl.cpp Fix cv-qualification of '*this' captures and nasty bug PR27507 2016-06-11 16:41:54 +00:00
SemaDeclAttr.cpp Revise RenderScript attribute declaration 2016-06-10 21:51:18 +00:00
SemaDeclCXX.cpp Remove a few gendered pronouns. 2016-06-10 18:53:04 +00:00
SemaDeclObjC.cpp Prune four superfluous ExternalSemaSource.h includes and one forward declaration in Sema.h 2016-05-13 14:53:19 +00:00
SemaExceptionSpec.cpp [Sema] Return an appropriate result from CheckSpecifiedExceptionType 2016-06-11 01:25:04 +00:00
SemaExpr.cpp Reverting "Warn when taking address of a packed member" 2016-06-14 11:20:07 +00:00
SemaExprCXX.cpp Fix cv-qualification of '*this' captures and nasty bug PR27507 2016-06-11 16:41:54 +00:00
SemaExprMember.cpp [OPENMP 4.5] Codegen for dacross loop synchronization constructs. 2016-05-25 12:36:08 +00:00
SemaExprObjC.cpp Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr." 2016-06-09 21:13:39 +00:00
SemaFixItUtils.cpp Wire a SourceLocation into IsDerivedFrom and move the RequireCompleteType call 2015-12-18 21:45:41 +00:00
SemaInit.cpp Remove a few gendered pronouns. 2016-06-10 18:53:04 +00:00
SemaLambda.cpp Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr." 2016-06-09 21:13:39 +00:00
SemaLookup.cpp Turn copies into references as suggested by clang-tidy's performance-unnecessary-copy-initialization. 2016-05-27 13:36:58 +00:00
SemaObjCProperty.cpp [ObjC] Remove _Atomic from return type and parameter type of 2016-05-26 00:37:30 +00:00
SemaOpenMP.cpp Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr." 2016-06-09 21:13:39 +00:00
SemaOverload.cpp [Sema] Teach CheckPlaceholderExpr about unaddressable functions. 2016-06-08 00:34:22 +00:00
SemaPseudoObject.cpp arc-repeated-use-of-weak should not warn about IBOutlet properties 2016-05-25 05:41:57 +00:00
SemaStmt.cpp Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr." 2016-06-09 21:13:39 +00:00
SemaStmtAsm.cpp Avoid using LookupResult's implicit copy ctor and assignment operator to avoid warnings 2016-03-16 09:56:58 +00:00
SemaStmtAttr.cpp Add loop pragma for Loop Distribution 2016-06-14 12:04:26 +00:00
SemaTemplate.cpp Fix PR28100 - Allow redeclarations of deleted explicit specializations. 2016-06-14 03:23:15 +00:00
SemaTemplateDeduction.cpp Fix PR27601 by reverting [r267453] - Refactor traversal of bases in deduction of template parameters from base 2016-05-19 02:28:21 +00:00
SemaTemplateInstantiate.cpp [Sema] Don't crash when a field w/ a mem-initializer clashes with a record name 2016-06-09 05:26:56 +00:00
SemaTemplateInstantiateDecl.cpp Produce better pretty stack traces from crashes in template instantiation: add 2016-05-26 20:23:13 +00:00
SemaTemplateVariadic.cpp Fix crash while parsing variable template with variadic template arguments 2016-05-26 12:55:34 +00:00
SemaType.cpp [OPENCL] Fix wrongly vla error for OpenCL array. 2016-06-07 04:34:00 +00:00
TreeTransform.h Remove CXXConstructExpr::getFoundDecl(); it turned out to not be useful. 2016-06-10 00:58:19 +00:00
TypeLocBuilder.cpp [Sema] Fix bug in TypeLocBuilder::pushImpl 2016-02-18 21:05:09 +00:00
TypeLocBuilder.h Correcting a typo in a comment; NFC. 2016-06-08 12:33:18 +00:00