The effects of code motion

Sometimes the compiler detects that it can generate better machine code by moving part or all of a statement to a different place in the execution flow. For example, for the following high-level statements:
IF A=B THEN X=55;
  ELSE Y=55;
the compiler might determine that it needs a constant of 55 on both the true and false paths.
The compiler might then generate the following machine code:
      L    R1,=F'55'
*IF A=B
      L    R0,A
      C    R0,B
      BNE  FALSE
*THEN X=55;
      ST   R1,X
      B    BOTH
*ELSE Y=55;
FALSE ST   R1,Y
BOTH  ...

Coverage Utility uses the machine code that is generated by the compiler to associate machine code with high-level statements. When the compiler indicates that a machine instruction is part of a given statement, Coverage Utility associates that statement with the instruction. Thus, instructions that are generated from a different statement and moved due to optimization are reported as if they were generated from the associated statement.