[llvm] [X86] Avoid crashing in PIC mode on narrowing to i8 followed by extension to i32 (PR #145965)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Jun 28 09:52:33 PDT 2025
================
@@ -631,7 +631,8 @@ void InstrEmitter::EmitSubregNode(SDNode *Node, VRBaseMapType &VRBaseMap,
void
InstrEmitter::EmitCopyToRegClassNode(SDNode *Node,
VRBaseMapType &VRBaseMap) {
- Register VReg = getVR(Node->getOperand(0), VRBaseMap);
+ RegisterSDNode *R = dyn_cast<RegisterSDNode>(Node->getOperand(0));
+ unsigned VReg = R ? R->getReg() : getVR(Node->getOperand(0), VRBaseMap);
----------------
Ralender wrote:
I looked around, it doesn't appear that `X86ISD::GlobalBaseReg` usually in the in the `VRBaseMap`.
it is usually handled by: https://github.com/llvm/llvm-project/blob/372c808217773c910c0379a8ceda6293dbbf663b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp#L408
or
https://github.com/llvm/llvm-project/blob/372c808217773c910c0379a8ceda6293dbbf663b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp#L1264
https://github.com/llvm/llvm-project/pull/145965
More information about the llvm-commits
mailing list