Comments

The following patch is Shiva Chen's patch to fix a LRA bug on some
experimental target. The bug occurs when one insn requires many reloads
and they are done on different passes. I evaluate the probability of
this bug for other targets as quite tiny.
The patch was approved by me.
Successfully bootstrapped on x86/x86-64.
Committed as rev. 198204.
2013-04-23 Shiva Chen<shiva0217@gmail.com>
* lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
to check the register content is equal or not.
* lra-constraints.c (match_reload): Use lra_assign_reg_val
to assign register content record.
* lra-eliminations.c (update_reg_eliminate): Use lra_set_up_reg_val
to update register content offset.
* lra-int.h (struct lra_reg): Add offset member.
(lra_reg_val_equal_p): New static inline function.
(lra_set_up_reg_val): New static inline function.
(lra_assign_reg_val): New static inline function.
* lra.c (lra_create_new_reg): Use lra_assign_reg_val
to assign register content record.
(initialize_lra_reg_info_element): Initial offset to zero