Michael Kruse via llvm-dev
2018-Dec-12 16:29 UTC
[llvm-dev] RFC: LoopIDs are not identifiers (and better loop-parallel metadata)
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? Michael
Finkel, Hal J. via llvm-dev
2018-Dec-12 17:11 UTC
[llvm-dev] RFC: LoopIDs are not identifiers (and better loop-parallel metadata)
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? -Hal> > Michael-- Hal Finkel Lead, Compiler Technology and Programming Languages Leadership Computing Facility Argonne National Laboratory
Michael Kruse via llvm-dev
2018-Dec-12 17:35 UTC
[llvm-dev] RFC: LoopIDs are not identifiers (and better loop-parallel metadata)
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