[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
asserts)
Repository:
rL LLVM
http://reviews.llvm.org/D17474
Files:
lib/CodeGen/MachineCopyPropagation.cpp
test/CodeGen/X86/machine-copy-prop.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17474.48771.patch
Type: text/x-patch
Size: 4885 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160223/082435a9/attachment.bin>
More information about the llvm-commits
mailing list