Hi Honza & Jakub, @Honza: please look at the decl alias handling of the actual patch. a minor update – testing only on gcn did turn out to be insufficient: nvptx does not support alias, cf. PR 97102 + 97106; hence xfailed. I also had a typo in one 'dg-do run' but as -O0 is set explicitly, 'dg-do run' does not make sense. (no dg-do = run once, dg-do run = run with multiple options, dg-do compile = compile only). Hence, I have now removed the dg-do line. On 9/17/20 1:15 AM, Tobias Burnus wrote: > Hi Honza – some input would be really helpful! > > Hi Jakub – updated version below. > > On 9/16/20 12:36 PM, Jakub Jelinek wrote: >> I think you want Honza on this primarily, I'm always lost >> in the cgraph alias code. > (Likewise as this thread shows) >>> + while (node->alias_target) >>> + node = symtab_node::get (node->alias_target); >>> + node = node->ultimate_alias_target (); >> I think the above is either you walk the aliases yourself, or use >> ultimate_alias_target, but not both. > > I think we need to distinguish between: > * aliases which end up with the same symbol name > and are stored in the ref_list; example: cpp_implicit_alias. > * aliases like with the alias attribute, which is handled > via alias_target and have different names. > > Just experimentally: > * The 'while (node->alias_target)' properly resolves the > attribute testcase (libgomp.c-c++-common/pr96390.c). > Here, ultimate_alias_target () does not help as > node->analyzed == 0. > > * The 'node->ultimate_alias_target ()' works for the > cpp_implicit_alias case (libgomp.c++/pr96390.C). > Just looking at the alias target does not help as in this > case, alias_target == NULL. > >> And the second thing is, I'm not sure how the aliases behave if the >> ultimate alias target is properly marked as omp declare target, but some >> of the aliases are not. The offloaded code will still call the alias, >> so do we somehow arrange for the aliases to be also emitted into the >> offloading LTO IL? >> [...] I wonder if the aliases that are needed shouldn't >> be marked node->offloadable and have "omp declare target" attribute >> added >> for them too. > > Done now. > > Okay – or do we find more issues? > > Tobias ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter