CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]    2025/09/22 13:04:00

Modified files:
        gnu/gcc/gcc/config/m88k: m88k.c 

Log message:
Revert 1.14 and disable delayed branch optimization while reenabling
basic block reordering.

Basic block span computation has been fixed, hopefully for good, in m88k.md
rev 1.16.

The delayed branch optimization is unfortunately still corrupting register
values by moving instructions which shouldn't, in complex enough code. Even
though the gcc testsuite passes, including the few tests which exercize
this, in gcc's own tree-cfg.c, the combination of the inlining of
update_modified_stmts() and delayed branching creates a code path where the
argument of one update_stmt_operands() call (via update_stmt_is_modified())
is overwritten with a load of the (declared noreturn, and it matters)
fancy_abort() message in the stmt_ann() diagnostic.

This can be reduced to a 127 line testcase, which will hopefully let me cut
my teeth further on this.

In the meantime, disabling this optimization allows gcc 4 to be self-hosting
again on m88k.

Reply via email to