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

--- Comment #7 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
It's a conflict with the out-of-ssa pass: this pass implicitly expects every
pseudo associated with a partition to be always fully initialized, including a
DImode pseudo for a partition attached to a SImode variable.  And this is
guaranteed for promoted SUBREGs because expand_gimple_stmt_1 makes sure that,
if one of the them is on the LHS of an assignment, then the whole SUBREG_REG is
assigned (with the appropriate extension).  But this falls for other SUBREGs.

So an immediate fix would be to generate the glue code between partitions with
undefined values and other partitions in insert_partition_copy_on_edge, but I'm
starting to wonder whether the entire approach shouldn't be scrapped instead.

Reply via email to