[PATCH] D17474: MachineCopyPropagation: Keep scanning through instructions with regmasks
Matthias Braun via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 22 19:34:15 PST 2016
MatzeB updated this revision to Diff 48771.
MatzeB marked 3 inline comments as done.
MatzeB added a comment.
This is an updated version which simply removes the NoInterveningSideEffects(). From the commit description:
This also simplifies the code by removing the overly conservative
NoInterveningSideEffect() function. This function checked:
- That the two copies belong to the same block: We only process one block at a time and clear our maps in between it is impossible to find a copy from a different block.
- There is no terminator between the two copy instructions: This is not allowed anyway (the MachineVerifier would complain)
- Does not have instructions with hasUnmodeledSideEffects() or isCall() set: Even for those instructuction we must have all clobbers/defs of registers explicit as an operand. If the register is explicitely clobbered we would never come to the point of checking for NoInterveningSideEffect() anyway.
(I also checked this with a temporary build of the test-suite with all
potentially failing conditions in NoInterveningSideEffect() turned into
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4885 bytes
Desc: not available
More information about the llvm-commits