[llvm] r271519 - [RDF] Ignore implicit defs when resetting <kill> flags
Krzysztof Parzyszek via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 2 07:30:10 PDT 2016
Author: kparzysz
Date: Thu Jun 2 09:30:09 2016
New Revision: 271519
URL: http://llvm.org/viewvc/llvm-project?rev=271519&view=rev
Log:
[RDF] Ignore implicit defs when resetting <kill> flags
Modified:
llvm/trunk/lib/Target/Hexagon/RDFLiveness.cpp
Modified: llvm/trunk/lib/Target/Hexagon/RDFLiveness.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/RDFLiveness.cpp?rev=271519&r1=271518&r2=271519&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Hexagon/RDFLiveness.cpp (original)
+++ llvm/trunk/lib/Target/Hexagon/RDFLiveness.cpp Thu Jun 2 09:30:09 2016
@@ -689,7 +689,11 @@ void Liveness::resetKills(MachineBasicBl
MI->clearKillInfo();
for (auto &Op : MI->operands()) {
- if (!Op.isReg() || !Op.isDef())
+ // An implicit def of a super-register may not necessarily start a
+ // live range of it, since an implicit use could be used to keep parts
+ // of it live. Instead of analyzing the implicit operands, ignore
+ // implicit defs.
+ if (!Op.isReg() || !Op.isDef() || Op.isImplicit())
continue;
unsigned R = Op.getReg();
if (!TargetRegisterInfo::isPhysicalRegister(R))
More information about the llvm-commits
mailing list