[llvm-dev] RFC: LoopIDs are not identifiers (and better loop-parallel metadata)

Finkel, Hal J. via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 12 10:42:01 PST 2018

On 12/12/18 12:25 PM, Michael Kruse wrote:
> Am Mi., 12. Dez. 2018 um 11:44 Uhr schrieb Finkel, Hal J. <hfinkel at anl.gov>:
>>> Fewer metadata nodes by uniquing them. I would expect there might be
>>> quite a few loops that have identical metadata, e.g. all loops that
>>> have "setAlreaduUnrolled()" after loop unrolling.
>> Okay. I have no idea how much code this would break (from none to a
>> lot). Any thoughts?
> My guess: nothing breaks.
> I have only seen this kind of nodes with LoopIDs and this RFC would
> remove the need for them to be unique (as explained in (a), this
> wasn't even a guaranteed property).
> Using self-referencing nodes seem to be a workaround when no
> 'distinct' nodes existed,


>  exploiting that the uniquing is not using a
> graph minimization algorithm.
>> I think that, in general, you should have a separate
>> RFC if you'd like to change them metadata uniquing algorithm.
> I am not yet sure myself whether I want this. As a maybe easier
> alternative to changing the first element of a loop metadata node
> (e.g. to 'null'), it is strongly related to this RFC.

Maybe the following is easier: Remove the first self-referential
element, and remove it from existing metadata in auto-upgrade? This
seems like an easy thing to auto upgrade.


> Michael

Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory

More information about the llvm-dev mailing list