[llvm] r235673 - RegisterCoalescer: implicit phsreg uses are fine when rematerializing
Quentin Colombet
qcolombet at apple.com
Thu Apr 23 17:31:47 PDT 2015
> On Apr 23, 2015, at 5:22 PM, Quentin Colombet <qcolombet at apple.com> wrote:
>
>
>> On Apr 23, 2015, at 5:01 PM, Matthias Braun <matze at braunis.de> wrote:
>>
>> Author: matze
>> Date: Thu Apr 23 19:01:37 2015
>> New Revision: 235673
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=235673&view=rev
>> Log:
>> RegisterCoalescer: implicit phsreg uses are fine when rematerializing
>>
>> The target hooks should have already checked them. This change is
>> necessary to enable the remateriailzation on R600.
>>
>> Modified:
>> llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp?rev=235673&r1=235672&r2=235673&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp Thu Apr 23 19:01:37 2015
>> @@ -963,8 +963,8 @@ bool RegisterCoalescer::reMaterializeTri
>> for (unsigned i = NewMI->getDesc().getNumOperands(),
>> e = NewMI->getNumOperands(); i != e; ++i) {
>> MachineOperand &MO = NewMI->getOperand(i);
>> - if (MO.isReg()) {
>> - assert(MO.isDef() && MO.isImplicit() && MO.isDead() &&
>> + if (MO.isReg() && MO.isDef()) {
>> + assert(MO.isImplicit() && MO.isDead() &&
>> TargetRegisterInfo::isPhysicalRegister(MO.getReg()));
>
> Wait!
> This is not good. The simple rematerialization shouldn’t create register uses.
For more context, here is why I explained it is wrong:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140421/213946.html
>
> What do you remat here?
>
> Q.
>> NewMIImplDefs.push_back(MO.getReg());
>> }
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list