[llvm-dev] Potential infinite loop in MemorySSAUpdater
Godala, Bhargav-reddy via llvm-dev
llvm-dev at lists.llvm.org
Sat Sep 23 08:38:33 PDT 2017
Hi,
Can some one explain the intended behaviour of following loop in void MemorySSAUpdater::insertDef(MemoryDef *MD, bool RenameUses) function.
while (!FixupList.empty()) {
unsigned StartingPHISize = InsertedPHIs.size();
fixupDefs(FixupList);
FixupList.clear();
// Put any new phis on the fixup list, and process them
FixupList.append(InsertedPHIs.end() - StartingPHISize, InsertedPHIs.end());
}
With the latest code on trunk compilation of perlbench SPEC CPU 2017 INT benchmark with “-O3 -inline-threshold=1000 and -enable-gvn-hoist” options is looping infinitely on the above loop.
Above loop never terminates unless elements from InsertedPHIs are removed as and when they are processed. But, I don’t see any call to remove contents, delete or clear, from InsertedPHIs.
With regards
Bhargav Reddy Godala
Software Engineer 2
Bangalore, India
E-mail: Bhargav-reddy.Godala at amd.com<mailto:Bhargav-reddy.Godala at amd.com> Ext 30678
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170923/18eae61e/attachment.html>
More information about the llvm-dev
mailing list