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

Reply via email to