This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
fix gcse breakage
- From: Steven Bosscher <stevenb at suse dot de>
- To: Serge Belyshev <belyshev at lubercy dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sun, 13 Jun 2004 13:54:16 +0200
- Subject: fix gcse breakage
- Organization: SUSE Labs
Hi Serge,
Hmm I'm surprised this hasn't showed up in any of Andreas' or
my own testing. Anyway,
> 2004-06-13 Serge Belyshev <belyshev@lubercy.com>
>
> * rtl.h (CALL_INSN_P): New predicate.
> (CALL_P): Check for CALL instead of CALL_INSN.
> (INSN_P): Use CALL_INSN_P instead of CALL_P.
>
> * gcse.c (load_killed_in_block_p, record_last_mem_set_info)
> (compute_hash_table_work, compute_transp, insert_insn_end_bb)
> (compute_transpout, compute_store_table, store_killed_in_insn)
> (reg_set_between_after_reload_p, compute_hash_table_after_reload):
> Use CALL_INSN_P instead of CALL_P.
This was not the intention of my original patch. You mention
the problem yourself:
(b) in gcse.c this predicate used in all places instead of
(GET_CODE (X) == CALL_INSN) *and* (GET_CODE (X) == CALL)
So apparently I somehow replaced (GET_CODE (X) == CALL) with
CALL_P. My bad.
But CALL_P should stay as it is IMO. There was no CALL_P before,
and I named it CALL_P analoguous to JUMP_P: check if the insn is
a CALL_INSN. The ones where I replaced (GET_CODE (X) == CALL)
with CALL_P (X) should be reverted, instead of redefining CALL_P.
Gr.
Steven