mirror of
https://github.com/openbsd/src.git
synced 2026-04-29 16:47:15 +00:00
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.
This commit is contained in:
@@ -2583,8 +2583,8 @@ m88k_override_options (void)
|
||||
if (align_functions == 0)
|
||||
align_functions = TARGET_88100 ? 16 : 8;
|
||||
|
||||
/* XXX -freorder-blocks (enabled at -O2) does not work reliably yet. */
|
||||
flag_reorder_blocks = flag_reorder_blocks_and_partition = 0;
|
||||
/* XXX -fdelayed-branch (enabled at -O2) does not work reliably yet. */
|
||||
flag_delayed_branch = 0;
|
||||
|
||||
init_machine_status = m88k_init_machine_status;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user