[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