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