On Wed, Jun 12, 2013 at 10:21:53AM -0700, Richard Henderson wrote:
> On 04/27/2013 11:17 AM, Jakub Jelinek wrote:
> > where simd_uid would be some say integer constant, unique to the simd loop
> > (at least unique within the same function, and perhaps inlining/LTO would
> > need to remap).
>
> If all we need is uniqueness, then perhaps an otherwise unused decl would do?
> We're already prepared to remap those during inlining/LTO...
So the built-ins would take address of this decl, something else?
Then there is the _simduid_ clause (also can hold address of the decl), and
after lowering it lives only in loop structure (so perhaps
remove_unused_locals would need to mark the decls referenced from loop
structure as used?).
> > treat arrays indexed by __builtin_omp.simd_lane (simd_uid) (dot in the name
> > just
> > to make it impossible to be used by users) (or marked with some special
> > hidden attribute or something)
>
> I see
>
> /* This file specifies a list of internal "functions". These functions
> differ from built-in functions in that they have no linkage and cannot
> be called directly by the user. They represent operations that are only
> synthesised by GCC itself.
>
> and think that may be more applicable than adding dots to regular builtins.
I can certainly try to use internal function instead of builtin with dot in
name, will report later if it is possible and how much changes would it
need.
Jakub