Identify comparison instructions within BB. If the flags from the last compare in the BB is live at the end of the block, install the compare in BB->AUX. Called via dom_walker.walk ().
The last comparison that was made. Will be reset to NULL
once the flags are clobbered.
True iff the last comparison has not been clobbered, nor
have its inputs. Used to eliminate duplicate compares.
The last insn that clobbered the flags, if that insn is of
a form that may be valid for eliminating a following compare.
To be reset to NULL once the flags are set otherwise.
Propagate the last live comparison throughout the extended basic block.
Compute the set of registers modified by this instruction.
Eliminate a compare that's redundant with the previous.
New mode is incompatible with the previous compare mode.
Generate new comparison for substitution.
It's unusual, but be prepared for comparison patterns that
also clobber an input, or perhaps a scratch.
Notice if this instruction kills the flags register.
See if this insn could be the "clobber" that eliminates
a future comparison.
In either case, the previous compare is no longer valid.
Notice if this instruction uses the flags register.
Notice if any of the inputs to the comparison have changed.
Remember the live comparison for subsequent members of
the extended basic block.
Look to see if the flags register is live outgoing here, and
incoming to any successor not part of the extended basic block.
Reimplemented from dom_walker.