arsenm added inline comments.

================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:12488
+  // FIXME: The invoke isn't applying the right attributes either
+  llvm::AttrBuilder KernelAttrs(C, CGF.CurFn->getAttributes().getFnAttrs());
+  KernelAttrs.addAttribute("enqueued-block");
----------------
arsenm wrote:
> yaxunl wrote:
> > arsenm wrote:
> > > yaxunl wrote:
> > > > The kernel should inherit attributes from the parent function since the 
> > > > parent may have function attributes explicitly specified for itself 
> > > > only. The kernel should take the default function attributes.
> > > I was specifically try to get those, e.g. the attribute(target) example. 
> > > Is there some way to specify attributes directly on a block?
> > > I was specifically try to get those, e.g. the attribute(target) example. 
> > > Is there some way to specify attributes directly on a block?
> > 
> > I don't think so https://godbolt.org/z/Pahv46dh6
> It doesn't allow noinline or target, but does allow const so it seems to be 
> specific attributes. I guess that means it should just use the defaults
Something is inconsistent. If I apply the target attribute to the caller, it 
allows me to call the target builtin in the block. If I don't, it doesn't allow 
me to use it in the caller but does in the block. There's a missing diagnostic 
at least


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

https://reviews.llvm.org/D141620

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to