OSDN Git Service

Slightly change the way stackmap and patchpoint intrinsics are lowered.
authorAndrew Trick <atrick@apple.com>
Tue, 5 Nov 2013 22:44:04 +0000 (22:44 +0000)
committerAndrew Trick <atrick@apple.com>
Tue, 5 Nov 2013 22:44:04 +0000 (22:44 +0000)
commitdc8224def3d88915b0ff830687815a9a0aad5f63
tree5f203af73fc413cca88f5da19a7f233a953ee97f
parent14cfb10174fa443074c235a207d290a9816392f8
Slightly change the way stackmap and patchpoint intrinsics are lowered.

MorphNodeTo is not safe to call during DAG building. It eagerly
deletes dependent DAG nodes which invalidates the NodeMap. We could
expose a safe interface for morphing nodes, but I don't think it's
worth it. Just create a new MachineNode and replaceAllUsesWith.

My understaning of the SD design has been that we want to support
early target opcode selection. That isn't very well supported, but
generally works. It seems reasonable to rely on this feature even if
it isn't widely used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194102 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
test/CodeGen/X86/patchpoint.ll