Previously, the presence of KILL instructions would block valid candidates
from filling a specific delay slot. With the elimination of the KILL
instructions, in the appropriate range, we are able to fill more slots and
keep the information from future def/use analysis consistent.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Why are you removing them instead of just ignoring them? Are they really useless, or are they marking subregister/superregister points of definition?
Hi Hal,
Can we simply ignore them and under what conditions?
I sent an email to the llvm-dev list the other day but it didn't receive much attention:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-February/081716.html
Are they really useless, or are they marking subregister/superregister points of definition?
I'm not very sure what you are asking me here. AFAIK, the Mips target
doesn't use KILL instructions for anything special. The question is
whether they are used for anything else outside the Mips target.
I apologize for the delay in responding.
http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-February/081716.htmlAre they really useless, or are they marking subregister/superregister points of definition?
I'm not very sure what you are asking me here. AFAIK, the Mips target
doesn't use KILL instructions for anything special. The question is
whether they are used for anything else outside the Mips target.
I re-read the llvmdev thread, and I think the conclusion there is correct: Given that you're calling TRI.invalidateLiveness(), removing the KILL instructions makes sense. They're used by the RA, copy propagation, post-RA-scheduler's anti-dependency breakers, etc., but otherwise, they likely don't really matter. So, as Quentin said, removing them is fine.
I re-read the llvmdev thread, and I think the conclusion there is correct: Given that you're calling TRI.invalidateLiveness(), removing the KILL instructions makes sense. They're used by the RA, copy propagation, post-RA-scheduler's anti-dependency breakers, etc., but otherwise, they likely don't really matter. So, as Quentin said, removing them is fine.
Hi Hal, thank you for your comments. I'm glad that the changes are okay!