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]

[PATCH, alpha]: Introduce handle_trap_shadows and align_insns passes


Hello!

After fixing _.barriers and _.eh_range passes w.r.t. CALL_ARG_LOCATION
notes, we can finaly move handling of trap shadows (PR 56858) and insn
alignments into their own passes.

Additionally, the patch skips handling of BARRIERs in
alpha_pad_function_end, since CALL_ARG_LOCATION notes are not split
away from their call insn anymore.

2014-06-30  Uros Bizjak  <ubizjak@gmail.com>

    PR target/56858
    * config/alpha/alpha.c: Include tree-pass.h, context.h
    and pass_manager.h.
    (pass_data_handle_trap_shadows): New pass.
    (pass_handle_trap_shadows::gate): New pass gate function.
    (make_pass_handle_trap_shadows): New function.
    (rest_of_handle_trap_shadows): Ditto.

    (alpha_align_insns_1): Rename from alpha_align_insns.
    (pass_data_align_insns): New pass.
    (pass_align_insns::gate): New pass gate function.
    (make_pass_aling_insns): New function.
    (rest_of_align_insns): Ditto.
    (alpha_align_insns): Ditto.

    (alpha_option_override): Declare handle_trap_shadows info
    and align_insns_info.  Register handle_trap_shadows and align_insns
    passes here.
    (alpha_reorg): Do not call alpha_trap_shadows and
    alpha_align_insn from here.

    (alpha_pad_function_end): Do not skip BARRIERs.

Patch was bootstrapped and regression tested on alpha-linux-gnu (the
compiler was configured with --host=alpha-linux-gnu
--build=alpha-linux-gnu --target=alpha-linux-gnu that made these
passes effective).

OK for mainline?

Uros.

Attachment: p.diff.txt
Description: Text document


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