https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122058
--- Comment #9 from Sam James <sjames at gcc dot gnu.org> ---
(In reply to Sam James from comment #8)
> Created attachment 62448 [details]
> libicui18n.so.77.1.wpa.088i.devirt.xz
Procesing function resolveModifierPlurals/20440
Targets of polymorphic call of type 1428:struct ModifierStore token 2
Outer type (dynamic):struct ModifierStore (or a derived type) offset 0
This is partial list; extra targets may be defined in other units. (derived
types included)
icu::number::impl::AdoptingModifierStore::getModifier non-virtual thunk
to icu::number::impl::LongNameHandler::getModifier(icu::number::impl::Signum,
icu::StandardPlural::Form) co
nst non-virtual thunk to
icu::number::impl::MixedUnitLongNameHandler::getModifier(icu::number::impl::Signum,
icu::StandardPlural::Form) const
Dropping polymorphic call info; it cannot be used by ipa-prop
optimized: speculatively devirtualizing call in resolveModifierPlurals/20440 to
getModifier/14807
Indirect call -> speculative call resolveModifierPlurals/20440 =>
getModifier/14807
optimized: speculatively devirtualizing call in resolveModifierPlurals/20440 to
_ZThn8_NK3icu6number4impl15LongNameHandler11getModifierENS1_6SignumENS_14StandardPlural4FormE/16154
Introduced new external node
(_ZThn8_NK3icu6number4impl15LongNameHandler11getModifierENS1_6SignumENS_14StandardPlural4FormE.localalias/34077).
Indirect call -> speculative call resolveModifierPlurals/20440 =>
_ZThn8_NK3icu6number4impl15LongNameHandler11getModifierENS1_6SignumENS_14StandardPlural4FormE.localalias/34077
optimized: devirtualized call in resolveModifierPlurals/20440 to 2 targets
Targets of polymorphic call of type 1418:struct Modifier token 7
Outer type (dynamic):struct Modifier (or a derived type) offset 0
This is partial list; extra targets may be defined in other units. (derived
types included)
icu::number::impl::SimpleModifier::getParameters
icu::number::impl::ScientificModifier::getParameters
icu::number::impl::EmptyModifier::getParameters non-virtual thunk to icu::num
ber::impl::MutablePatternModifier::getParameters(icu::number::impl::Modifier::Parameters&)
const icu::number::impl::ConstantAffixModifier::getParameters
icu::number::impl::ConstantMultiF
ieldModifier::getParameters
More than 3 likely targets
Targets of polymorphic call of type 1418:struct Modifier token 7
Outer type (dynamic):struct Modifier (or a derived type) offset 0
This is partial list; extra targets may be defined in other units. (derived
types included)
icu::number::impl::SimpleModifier::getParameters
icu::number::impl::ScientificModifier::getParameters
icu::number::impl::EmptyModifier::getParameters non-virtual thunk to icu::num
ber::impl::MutablePatternModifier::getParameters(icu::number::impl::Modifier::Parameters&)
const icu::number::impl::ConstantAffixModifier::getParameters
icu::number::impl::ConstantMultiF
ieldModifier::getParameters
.. and just optimize("no-devirtualize") on resolveModifierPlurals works.