minglotus-6 wrote:
> > > > > David says the itanium remapper file was only used once during gcc to
> > > > > llvm transition, so not relevant here.
> > > >
> > > >
> > > > I believe it was actually for the libstdc++ to libc++ transition (see
> > > > https://reviews.llvm.org/D51247 and https://reviews.llvm.org/D51240).
> > > > If it is broken we'll at least want to add a FIXME there.
> > >
> > >
> > > Yes, I meant libstdc++ to libc++ transition. Why source line is this
> > > comment addressing? I take take a look the changes/comments there.
> >
> >
> > Sorry for the misinformation, and thanks for the Phab links.
> > I think the itanium remapper needs a `:` -> `;` update (going to update
> > this PR and related tests), since (for local-linkage functions) the
> > function name used to look up profiles should use `;` delimiter.
>
> > > > > David says the itanium remapper file was only used once during gcc to
> > > > > llvm transition, so not relevant here.
> > > >
> > > >
> > > > I believe it was actually for the libstdc++ to libc++ transition (see
> > > > https://reviews.llvm.org/D51247 and https://reviews.llvm.org/D51240).
> > > > If it is broken we'll at least want to add a FIXME there.
> > >
> > >
> > > Yes, I meant libstdc++ to libc++ transition. Why source line is this
> > > comment addressing? I take take a look the changes/comments there.
> >
> >
> > Sorry for the misinformation, and thanks for the Phab links.
> > I think the itanium remapper needs a `:` -> `;` update (going to update
> > this PR and related tests), since (for local-linkage functions) the
> > function name used to look up profiles should use `;` delimiter.
>
> The remapper is not aware of any internal symbol mangling scheme, so those
> entires won't be tracked by it. In other words, there is no need to change
> anything there, I think.
Not updating Itanium remapper should work for PGO counter matching until the
next transition (details below); for consistency I just updated Itanium
remapper's `extractName` to use semicolon.
The details
* For PGO counter matching, instr prof reader
[asks](https://github.com/llvm/llvm-project/blob/32ec5fbfed32f37aa070ee38e9b038bd84ca6479/llvm/lib/ProfileData/InstrProfReader.cpp#L1339)
read remapper for a record.
* Only with a remapping file provided (specified by
`-fprofile-remapping-file`), a itanium remap reader is constructed. And when
remapping file is not specified, a no-op remap reader is constructed. [source
code](https://github.com/llvm/llvm-project/blob/32ec5fbfed32f37aa070ee38e9b038bd84ca6479/llvm/lib/ProfileData/InstrProfReader.cpp#L1306-L1314)
* When remapping file is specified, remap reader tries to extract the mangled
name (removing `filename` prefix`) by finding a `:` (no longer used as
delimiter for newer profiles) and remaps the mangled name. If `:` is not
updated to `;`, the name is remapped to itself (irpgo func format) and profiles
could still be found. However, not updating means remapping becomes no-op for
local-linkage functions, which is fine after the transition complete but
doesn't work for new transitions (if it happens..)
https://github.com/llvm/llvm-project/pull/74008
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits