[PATCH] D131582: [AArch64][SME] Add support for arm_locally_streaming functions.
Sander de Smalen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 12 05:51:59 PDT 2022
sdesmalen added inline comments.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp:1162
case ISD::EntryToken:
- llvm_unreachable("EntryToken should have been excluded from the schedule!");
case ISD::MERGE_VALUES:
----------------
aemerson wrote:
> ?
Perhaps removing this without any alternative `assert` is a little crude, but I wasn't really sure what to test for instead.
The change here is that EntryToken now "becomes part of the schedule" because other instructions can be glued to it, even though the node itself isn't schedulable (it is always guaranteed to be the first instruction). I was hoping someone would have a suggestion here.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1239
+ // passing a getVTList(MVT::Other, MVT::Glue) in its definition above led to a
+ // SegFault when trying to add the VTList.
+ EntryNode =
----------------
aemerson wrote:
> I think we need a better understanding.
You're right. The issue was that calling `getVTList` with more than one operand went through a different code-path which queries the `VTListMap`, which is initialised //after// EntryNode. By reordering these member variables (lexicographically) the issue goes away.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D131582/new/
https://reviews.llvm.org/D131582
More information about the llvm-commits
mailing list