On 05/31/14 03:22, Richard Sandiford wrote:
The operand_alternative cache was LRA's only per-subtarget state
so a lot of this patch is removing the associated initialisation
and target_globals stuff.

I called the preprocess_constraints functions in lra_set_insn_recog_data
rather than setup_operand_alternative because lra_set_insn_recog_data
already has a local constraints array (needed for asms).
setup_operand_alternative is now only called in the uncached case.

Thanks,
Richard


gcc/
        * lra-int.h (lra_static_insn_data): Make operand_alternative a
        const pointer.
        (target_lra_int, default_target_lra_int, this_target_lra_int)
        (op_alt_data): Delete.
        * lra.h (lra_init): Delete.
        * lra.c (default_target_lra_int, this_target_lra_int): Delete.
        (init_insn_code_data_once): Remove op_alt_data handling.
        (finish_insn_code_data_once): Likewise.
        (init_op_alt_data): Delete.
        (get_static_insn_data): Initialize operand_alternative to null.
        (free_insn_recog_data): Cast operand_alternative before freeing it.
        (setup_operand_alternative): Take the operand_alternative as
        parameter and assume it isn't already cached in the static
        insn data.
        (lra_set_insn_recog_data): Update accordingly.
        (lra_init): Delete.
        * ira.c (ira_init): Don't call lra_init.
        * target-globals.h (this_target_lra_int): Declare.
        (target_globals): Remove lra_int.
        (restore_target_globals): Update accordingly.
        * target-globals.c: Don't include lra-int.h.
        (default_target_globals, save_target_globals): Remove lra_int.
Also good for the trunk. Got to love patches that delete big blobs of code :-)

jeff

Reply via email to