diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd7492607e63c857614f01679d72c3b9bdea28cd..0384fbc25a2c38d3f78aae10c55c00bc4ee091b4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) + + * toplev.c (rest_of_compilation): Do not set reload_completed. + * reload1.c (reload): Set reload_completed before calling + cleanup_subreg_operands. + Tue Dec 22 23:58:31 1998 Richard Henderson <rth@cygnus.com> * reload1.c (emit_reload_insns): Check `set' not null before use. diff --git a/gcc/reload1.c b/gcc/reload1.c index e8bb5fe3e535f9682c748006ae78e7c18c1f88ab..b4cb69cc19d5bf84ee76dc2e24bb1b994c5f6192 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1116,6 +1116,11 @@ reload (first, global, dumpfile) } } + /* We must set reload_completed now since the cleanup_subreg_operands call + below will re-recognize each insn and reload may have generated insns + which are only valid during and after reload. */ + reload_completed = 1; + /* Make a pass over all the insns and delete all USEs which we inserted only to tag a REG_EQUAL note on them. Remove all REG_DEAD and REG_UNUSED notes. Delete all CLOBBER insns and simplify (subreg (reg)) operands. diff --git a/gcc/toplev.c b/gcc/toplev.c index 5e586b8399817a99fe70341ab0b76255c8bbc51c..5608af6e43e533f4884eebcac617dcc36993d9ff 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -3967,8 +3967,6 @@ rest_of_compilation (decl) if (failure) goto exit_rest_of_compilation; - reload_completed = 1; - /* Do a very simple CSE pass over just the hard registers. */ if (optimize > 0) reload_cse_regs (insns);