[LLVMdev] MachineBasicBlock::addLiveIn errors
Mark Schimmel
Mark.Schimmel at synopsys.com
Tue Jun 4 15:35:33 PDT 2013
The unchecked assertion that the same register is not added multiple times to the MBB::LiveIn list isn't being respected. Could we add an assertion to check for it?
==== //dwarc/Tools/MetaWare/Toolset/main/dev/llvm/include/llvm/CodeGen/MachineBasicBlock.h#6 - /remote/arctools/marksl/marksl_1/llvm/include/llvm/CodeGen/MachineBasicBlock.h ====
295,298d294
< /// addLiveIn - Add the specified register as a live in. Note that it
< /// is an error to add the same register to the same set more than once.
< void addLiveIn(unsigned Reg) { LiveIns.push_back(Reg); }
<
306a303,310
> /// addLiveIn - Add the specified register as a live in. Note that it
> /// is an error to add the same register to the same set more than once.
> void addLiveIn(unsigned Reg) {
> assert(!isLiveIn(Reg));
> LiveIns.push_back(Reg);
> }
>
>
==== //dwarc/Tools/MetaWare/Toolset/main/dev/llvm/lib/CodeGen/BranchFolding.cpp#8 - /remote/arctools/marksl/marksl_1/llvm/lib/CodeGen/BranchFolding.cpp ====
386c386
< if (RegsLiveAtExit[i])
---
> if (RegsLiveAtExit[i] && !NewMBB->isLiveIn(i))
1718,1719c1718,1721
< TBB->addLiveIn(Def);
< FBB->addLiveIn(Def);
---
> if (!TBB->isLiveIn(Def)) //SYNOPSYS
> TBB->addLiveIn(Def);
> if (!FBB->isLiveIn(Def)) //SYNOPSYS
> FBB->addLiveIn(Def);
==== //dwarc/Tools/MetaWare/Toolset/main/dev/llvm/lib/CodeGen/TailDuplication.cpp#6 - /remote/arctools/marksl/marksl_1/llvm/lib/CodeGen/TailDuplication.cpp ====
798c798
< if (!RegsLiveAtExit[*I])
---
> if (!RegsLiveAtExit[*I] && !PredBB->isLiveIn(*I))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130604/8aee9038/attachment.html>
More information about the llvm-dev
mailing list