[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