Function clobber_return_register
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Thu Dec 12 05:17:00 GMT 2002
So can I see this abort on mainline, or is it only reproducible
in ACT trees?
Well, it isn't an abort, just bad code generated (the restore of $0 is
deleted).
I doubt the Ada sources matter since there isn't much involved at that level,
so that shouldn't be an issue. However, I found out yesterday that it
requires the following GCC patch (which has not yet been submitted: I'm
waiting for after the 3.3 release) in order to trigger it, though I strongly
doubt the patch itself is the problem:
*** explow.c 23 Aug 2002 12:00:35 -0000 1.91.6.1
--- explow.c 12 Dec 2002 13:08:50 -0000
*************** emit_stack_restore (save_level, sa, afte
*** 1077,1081 ****
--- 1077,1088 ----
if (sa != 0)
+ {
sa = validize_mem (sa);
+ /* This clobber prevents the scheduler from moving
+ references to variable arrays below the code
+ that deletes (pops) the arrays. */
+ emit_insn (gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_MEM (BLKmode, stack_pointer_rtx)));
+ }
if (after)
More information about the Gcc
mailing list