From 95299c194d4f852d17554779117c4125c3fae73d Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Wed, 3 Jun 2009 05:15:46 +0000 Subject: [PATCH] If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g. EAX = ..., AX ... = AX This creates a double-def. Apparently this used to be necessary but is no longer needed. Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72755 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/LiveVariables.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/lib/CodeGen/LiveVariables.cpp b/lib/CodeGen/LiveVariables.cpp index c33d81e8a87..62288216912 100644 --- a/lib/CodeGen/LiveVariables.cpp +++ b/lib/CodeGen/LiveVariables.cpp @@ -242,20 +242,6 @@ void LiveVariables::HandlePhysRegUse(unsigned Reg, MachineInstr *MI) { } } - // There was an earlier def of a super-register. Add implicit def to that MI. - // - // A: EAX = ... - // B: ... = AX - // - // Add implicit def to A if there isn't a use of AX (or EAX) before B. - if (!PhysRegUse[Reg]) { - MachineInstr *Def = PhysRegDef[Reg]; - if (Def && !Def->modifiesRegister(Reg)) - Def->addOperand(MachineOperand::CreateReg(Reg, - true /*IsDef*/, - true /*IsImp*/)); - } - // Remember this use. PhysRegUse[Reg] = MI; for (const unsigned *SubRegs = TRI->getSubRegisters(Reg); -- 2.11.0