On 08/06/2016 03:11 PM, Jakub Jelinek wrote:
On Wed, Aug 03, 2016 at 02:59:30PM -0400, Vladimir N Makarov wrote:--- lra-spills.c (revision 239000) +++ lra-spills.c (working copy) @@ -686,16 +686,40 @@ return_regno_p (unsigned int regno) return false; }-/* Return true if REGNO is one of subsequent USE after INSN. */+/* Return true if REGNO is in one of subsequent USE after INSN in the + same BB. */ static bool regno_in_use_p (rtx_insn *insn, unsigned int regno) { + static lra_insn_recog_data_t id; + static struct lra_static_insn_data *static_id; + struct lra_insn_reg *reg; + int i, arg_regno; + basic_block bb = BLOCK_FOR_INSN (insn); + while ((insn = next_nondebug_insn (insn)) != NULL_RTX - && INSN_P (insn) && GET_CODE (PATTERN (insn)) == USE) + && bb == BLOCK_FOR_INSN (insn))This broke rtl checking bootstrap, because BLOCK_FOR_INSN can't be used on BARRIERs. Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
Sure, Jakub. Thank you fixing it.
