Introduce new SelectionDAG node, StatepointSDNode, which captures
return value of original call and use it in place of MachineSDNode
used for statepoint lowering.
This lays ground for further changes and is NFC.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Please pull out a purely NFC patch without any of the first-N-vregs bits which is purely functional. (i.e. replaces the existing target node with the generic node, introduces the node type and wrapper class, but does nothing else.)
The split point chosen here doesn't work. You're introducing untested and unused code. That's not okay.
Rework patch accodring to comments: Replace existing MachineSDNode with
newly introduced StatepointSDNode and use it for statepoint lowering.
No functional changes.
Let's discuss offline.
llvm/include/llvm/CodeGen/ISDOpcodes.h | ||
---|---|---|
1072 | The [Relocates,] part isn't yet present. Remove before commit, readd in relevant follow up. | |
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp | ||
751 | How is it safe not to have memrefs on the node here? Maybe some discussion offline? | |
802 | Please revert this part for now. I'm not sure it's wrong, but I'd like to reduce the scope and audit only this part in it's own change. |
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp | ||
---|---|---|
751 | I simply have no space to put them into StatepointSDNode. |
The [Relocates,] part isn't yet present. Remove before commit, readd in relevant follow up.