[llvm-commits] [llvm] r128759 - in /llvm/trunk: lib/Target/ARM/ARMISelLowering.cpp test/CodeGen/ARM/fp-arg-shuffle.ll

Eli Friedman eli.friedman at gmail.com
Fri Apr 1 23:50:39 PDT 2011


On Fri, Apr 1, 2011 at 9:14 PM, Cameron Zwarich <zwarich at apple.com> wrote:
> On 2011-04-01, at 8:46 PM, Eli Friedman wrote:
>
>> The reason why RemoveFromWorklist didn't exist is that you don't need
>> it; unlike in IR, you don't have to erase a dead instruction.  (The
>> nature of the DAG datastructure is that a node with no uses is
>> automatically dead.)
>
> That's what I thought at first, but it's apparently not true. If you remove that extra code from my patch, then another ARM test case fails because a store has a dead user of its chain value. There is special logic all throughout DAGCombiner to explicitly kill dead nodes and remove them from the worklist.

You're right; I've never made a change that had an issue like that,
but I don't think I've had changes with explicit calls to
ReplaceAllUsesOfValueWith.  The invariants in ISel tend to be messy...

-Eli




More information about the llvm-commits mailing list