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

Michael Kruse via llvm-dev
2018-12-12T17:35:04Z

Am Mi., 12. Dez. 2018 um 11:11 Uhr schrieb Finkel, Hal J. <hfinkel at
anl.gov>:
>
> On 12/12/18 10:29 AM, Michael Kruse wrote:
> > Am Mi., 12. Dez. 2018 um 10:10 Uhr schrieb Finkel, Hal J. <hfinkel
at anl.gov>:
> >>> As we have seen,
> >>> there are other reasons for loops to have identical LoopIDs.
With
> >>> patches [3,4], llvm.loop metadata can be collapsed (unlike
access
> >>> groups), thus the 'distinct' is not necessary anymore.
Unfortunately,
> >>> there is code in LLVM (and maybe elsewhere) that depends on
LoopIDs'
> >>> first item, i.e. we cannot get rid of it that easily.
> >> I don't think it's worth changing this first element,
unless we have
> >> some other reason to do so.
> > Would it be worthwhile to update the metadata uniquing algorithm to
> > consider shallow self-references?
>
> What benefit would that bring?

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.

Michael