On 10/20/14 14:20, Bernd Schmidt wrote:
Since it's a virtual target, I've chosen not to run register allocation.
This is one of the patches necessary to make that work, it primarily
adds a target hook to disable it and fixes some of the fallout.


Bernd


002-noregalloc.diff


        gcc/
        * target.def (no_register_allocation): New data hook.
        * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
        * doc/tm.texi: Regenerate.
        * ira.c (gate_ira): New function.
        (pass_data_ira): Set has_gate.
        (pass_ira): Add a gate function.
        (pass_data_reload): Likewise.
        (pass_reload): Add a gate function.
        (pass_ira): Use it.
        * reload1.c (eliminate_regs): If reg_eliminte_is NULL, assert that
        no register allocation happens on the target and return.
        * final.c (alter_subreg): Ensure register is not a pseudo before
        calling simplify_subreg.
        (output_operand): Assert that x isn't a pseudo only if doing
        register allocation.\
s/reg_eliminte/reg_eliminate/

Otherwise this looks fine. Note potential for rethinking this change at some point in the future as we get more experience with these kinds of targets.

Jeff

Reply via email to