Add prototypes for static functions.
(REGISTER_MOVE_COST, MEMORY_MOVE_COST): Include default definitions. (reload): Count number of registers needed for insn using new reload type information. If mode of insn is DImode, don't change it. Refine the way we handle conflict with the return value register. Don't try to account for needs already covered by previously spilled registers; instead, put them back in the front of potential_reload_regs and let them be allocated again. (order_regs_for_reload): Don't restrict regs explicitly used if we have SMALL_REGISTER_CLASSES defined. (reload_as_needed): Don't need to deactivate optional reloads ever; if they inherit, it must have been safe. Call merge_assigned_reloads if SMALL_REGISTER_CLASSES. (reload_reg_used_*): Refine our tracking of reload reg usage by defining more of these HARD_REG_SETs. (mark_reload_reg_in_use, reload_reg_free_p): Rework to use new method of describing where a reload register is used. (reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise. (allocate_reload_reg): Pass new reload descriptions. (choose_reload_regs): Likewise. Save and restore the new HARD_REG_SETs. Remove now-redundant code to prevent conflicts. (merge_assigned_reloads): New function. (emit_reload_insns): Output each reload type into its own sequence, then output the sequences in the proper order. Put our output reloads after a CLOBBER made by find_reloads. Pass ALL_REGS to find_equiv_regs; nothing special about GENERAL_REGS. Don't use an old equivalence if doing so would be more expensive. Clean up tracking of values still in reload regs using reload description info to see if the reload reaches the end of the insn. (gen_input_reload): Pass reload description and emit insns to end of current sequence. (inc_for_reload): Return void; no longer need INSN as operand. Emit insns to end of current sequence. From-SVN: r3910
Showing
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment