This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/68799] lto ICE on powerpc64le-linux-gnu builing python 2.7.x


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

--- Comment #11 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
OK, I see.  Although the PHI itself is not directly modified, a new PHI is
introduced in the same block.  During this process we may alter the incoming
control flow to the block (introducing a new block along an incoming edge),
which causes all the other PHIs in the block to be modified.  Thus we cannot
rely on a PHI in the candidate table maintaining its address throughout the
pass.

This imposes a requirement that we do not use the stmt_cand_map to look up a
PHI candidate from a current PHI address, but always use the original PHI
address that was cached away to perform the lookup.  I believe it is possible
to satisfy this by always using the stmt_cand_map->get (phi) call instead of
calling base_cand_from_table.  I'll work on a test patch.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]