Before this change ImplicitNullChecks would only pick loads of the form:
test Reg, Reg jz elsewhere fallthrough: movl 32(Reg), Reg2
but not (say)
test Reg, Reg jz elsewhere fallthrough: inc Reg3 movl 32(Reg), Reg2
This change teaches ImplicitNullChecks to look through "unrelated"
instructions like inc Reg3 when searching for a load instruction
to convert to a trapping load.
Naming wise, this is a bit confusing. It's specifically whether the instruction is safe to reorder past the previously saved information. At first, I had expected this predicate to by applied to each instruction skipped.