This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fix gcse breakage


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]