[Bug target/105485] ICE: Segmentation fault in pcrel-opt.md:get_insn_name()

linkw at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 10 12:23:11 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105485

Kewen Lin <linkw at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #2 from Kewen Lin <linkw at gcc dot gnu.org> ---
I was wrong, the local branch which I used as old bif support isn't the one
before new bif support. The bisection showed it's a regression and started from
r12-5752 (new bif support).

By looking to the old bif support, I noticed that it's expected that this
function won't be resolved, but we need to emit one error message during
expanding. With old bif support, __builtin_vec_vslv is binded to the normal
(primary) bif enum (bif code), it needs overloaded resolver (target hook) to
resolve it into the overloaded bif enum; while with new bif support,
__builtin_vec_vslv is binded to the overload bif enum, it needs overloaded
resolver to resolve it into the one defined in rs6000-builtins.def (one
instance of overloaded).

In new bif support, rs6000_gimple_fold_builtin won't be able to handle the
unresolved overloaded bif. Note that it doesn't in old bif support, but both
primary and overloaded code shares the same table, so it's fine and no ICEs.
With new bif support, overloaded bif code has its own table.


More information about the Gcc-bugs mailing list