[llvm-commits] [llvm] r48822 - in /llvm/trunk: include/llvm/CodeGen/ScheduleDAG.h include/llvm/CodeGen/SelectionDAGNodes.h lib/CodeGen/SelectionDAG/DAGCombiner.cpp lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/LegalizeTypes.cp
Roman Levenstein
romix.llvm at googlemail.com
Mon Apr 7 03:10:32 PDT 2008
Hi Evan,
2008/4/3, Evan Cheng <evan.cheng at apple.com>:
> I've backed this out for now. Please fix the infinite looping and then
> re-commit.
I fixed the problem and re-committed. The newer and better patch is
ready, but it is not approved by Dan yet.
Dan: Ping! ;-)
-Roman
> On Apr 2, 2008, at 2:28 PM, Dan Gohman wrote:
>
> >
> > On Mar 26, 2008, at 5:39 AM, Roman Levenstein wrote:
> >>
> >> +
> >> + SmallSetVector<SDNode*, 16> Users;
> >> while (!From->use_empty()) {
> >> - // Process users until they are all gone.
> >> - SDNode *U = *From->use_begin();
> >> -
> >> + SDNode::use_iterator UI = From->use_begin();
> >> + SDNode *U = UI->getUser();
> >> +
> >> + // Remember that this node is about to morph.
> >> + if (Users.count(U))
> >> + continue;
> >> + Users.insert(U);
> >
> > Hi Roman,
> >
> > This code that remembers users is causing the loop to
> > repeat infinitely in some cases. Actually, if Users.count(U)
> > is ever true, it gooes into an infinite loop because
> > nothing happens that will make From->use_list()
> > get closer to being empty.
> >
> > You can reproduce this by unmerging revision 48994 and
> > running llc on the attached testcase. 48994 is otherwise
> > unrelated, but it happens to change the way this testcase
> > gets compiled such that the above bug doesn't get triggered.
> >
> > Can you take a look at this?
> >
> > Thanks,
> >
> > Dan
>
> > <hang.ll>
>
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> 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