<div dir="auto"><div>Hi Bevin,</div><div dir="auto"><br></div><div dir="auto">Thanks for the link! I like the approach, though the complexity makes me nervous. I think that's more power than my immediate problems require.</div><div dir="auto"><br></div><div dir="auto">An offline discussion suggested exposing the opencl qualifiers (e.g. __local) for other languages. I haven't written the patch yet but am cautiously optimistic.</div><div dir="auto"><br></div><div dir="auto">Jon<br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Wed, 22 Jan 2020, 14:50 Bevin Hansson, <<a href="mailto:bevin.hansson@ericsson.com">bevin.hansson@ericsson.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div text="#000000" bgcolor="#FFFFFF">
<p>Hi Jon,</p>
<p>There's currently no way to qualify a method with an arbitrary address space. There is a work-in-progress patch on it:</p>
<p><a href="https://reviews.llvm.org/D57464" target="_blank" rel="noreferrer">https://reviews.llvm.org/D57464</a></p>
<p>and I have an experimental local patch that tries to alleviate some issues with the patch above, but it doesn't really work. Parsing this pattern properly is unfortunately rather difficult. There's also no real syntax support in C++ for qualified constructors/destructors,
 which is another problem.<br>
</p>
<p>/ Bevin<br>
</p>
<div>On 2020-01-22 04:51, Jon Chesterfield via cfe-dev wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">C++ source, compiled as clang++ --target=amdgcn-amd-amdhsa
<div><br>
</div>
<div>struct t<br>
{<br>
  int v;<br>
};
<div>__attribute__((address_space(3))) t d;<br>
<div><br>
</div>
</div>
<div>// error: no matching constructor for initialization of '__attribute__((address_space(3)))</div>
<div><br>
</div>
<div>with  t() : v(0) {}, same error</div>
<div><br>
</div>
<div>with  t() __attribute__((address_space(3))) : v(0) {},</div>
<div>// error: function type may not be qualified with an address space</div>
<div><br>
</div>
<div>How should I be spelling this? I'm essentially trying to replicate cuda's __shared__. Ideally I'd like implicit conversions to a and from an int which is not address space qualified, but right now I'm stuck on the constructor.</div>
</div>
<div><br>
</div>
<div>Thanks,</div>
<div><br>
</div>
<div>Jon</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
cfe-dev mailing list
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank" rel="noreferrer">cfe-dev@lists.llvm.org</a>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank" rel="noreferrer">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a>
</pre>
</blockquote>
</div>

</blockquote></div></div></div>