[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