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.