This is an archive of the discontinued LLVM Phabricator instance.

[Sema] #pragma clang transform
Needs ReviewPublic

Authored by Meinersbur on Oct 17 2019, 12:29 AM.

Details

Summary

Add the AST node kinds: the Stmt representing the #pragma, the clauses and Transform. The latter represents the semantic analysis result similar to an ImplicitCast. Moreover, the AnalysisTransform component constructs a loop nest tree to which transformations are applied to such that Sema can warn about inconsistencies, e.g. there is no inner or ambiguous loops for unrollandjam.

For a full description, see D69088.

Diff Detail

Event Timeline

Meinersbur created this revision.Oct 17 2019, 12:29 AM
Herald added a project: Restricted Project. · View Herald Transcript
Herald added a subscriber: zzheng. · View Herald Transcript
reames resigned from this revision.Oct 28 2019, 10:43 AM
Meinersbur updated this revision to Diff 228299.Nov 7 2019, 1:26 PM
  • Switch to Monorepo
  • Move Transform.h/cpp to clangBasic
  • Transform is not an AST node anymore, but created on demand using ExtractTransform
  • Remove handling of LoopHints (#pragma clang loop) and OpenMP (#pragma omp simd) to reduce the size of the patches. Compatibility with OpenMP is still a goal (to implement the upcoming OpenMP loop transformations such as #pragma omp tile), but for now they are handled by separate code paths.
  • Rework TransformedTree a bit