On Wed, Dec 14, 2016 at 04:31:19PM +0100, Jakub Jelinek wrote: > > Could you do a gcc_checking_assert (INSN_UID (INSN) <= max_uid_known) > > in the LOG_LINKS and INSN_COST defines? It is hard to check if you > > caught every use. > > Like this? Bootstrapped/regtested again on x86_64-linux and i686-linux.
Like that. Thanks! Okay for the combine parts. Segher > 2016-12-14 Jakub Jelinek <ja...@redhat.com> > > PR debug/77844 > * valtrack.c: Include rtl-iter.h. > (struct rtx_subst_pair): Add insn field. > (propagate_for_debug_subst): If pair->to contains at least 2 > regs, create a DEBUG_INSN with a debug temp before pair->insn > and replace from with the debug temp instead of pair->to. > (propagate_for_debug): Initialize p.insn. > * combine.c (insn_uid_check): New inline function. > (INSN_COST, LOG_LINKS): Use it instead of INSN_UID. > (find_single_use, combine_instructions, > cant_combine_insn_p, try_combine): Use NONDEBUG_INSN_P instead of > INSN_P. > > * g++.dg/opt/pr77844.C: New test.