[PATCH] D91980: [OpenMP] Add initial support for `omp [begin/end] assumes`

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 23 13:33:15 PST 2020


ABataev added inline comments.


================
Comment at: clang/include/clang/Sema/Sema.h:10333
+  /// Check if there is an active global `omp begin assumes` directive.
+  bool isInOpenMPAssumeScope() { return !OMPAssumeScoped.empty(); }
+
----------------
jdoerfert wrote:
> ABataev wrote:
> > ABataev wrote:
> > > `const` member functions.
> > It may have side-effects with template instantiations. What if we have something like this:
> > ```
> > #pragma omp begin assumes ...
> > template <typename T>
> > struct S {
> > ...
> > }
> > #pragma omp end assumes
> > 
> > void bar() {
> > #pragma omp assumes ...
> >   {
> >     S<int> s;
> >     s.foo();
> >   }
> > }
> > ```
> > ?
> > 
> > `struct S<int>` will be instantiated in the second assume region context though I doubt this is the user intention.
> I'm not sure what problem you expect here. Could you elaborate what you think should happen or should not?
May it lead to the wrong compiler assumptions and result in the incorrect codegen?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91980/new/

https://reviews.llvm.org/D91980



More information about the llvm-commits mailing list