[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

Evan Cheng evan.cheng at apple.com
Mon Apr 7 09:30:08 PDT 2008


On Apr 7, 2008, at 3:10 AM, Roman Levenstein wrote:

> 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! ;-)

Thanks.

Evan

>
>
> -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
>>
> _______________________________________________
> 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