[all-commits] [llvm/llvm-project] 5f3d1b: DAG: Use poison in getLoad/getStore for offsets
Matt Arsenault via All-commits
all-commits at lists.llvm.org
Thu Jul 30 05:37:54 PDT 2026
Branch: refs/heads/users/arsenm/dag/use-poison-getLoad-getStore-offsets
Home: https://github.com/llvm/llvm-project
Commit: 5f3d1bc2bec3a032d02d99d047e0fb4583d38baf
https://github.com/llvm/llvm-project/commit/5f3d1bc2bec3a032d02d99d047e0fb4583d38baf
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
M llvm/test/CodeGen/X86/merge-store-partially-alias-loads.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_isel.ll.expected
M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
Log Message:
-----------
DAG: Use poison in getLoad/getStore for offsets
The painful part of this is due to a few unfortunate things.
1. poison is legalized to undef
2. Non-indexed load/store encode the offset as an undef (which is
not like a TargetConstant, and does get legalized)
3. 2 asserts in DAGCombiner expect identical load/store nodes,
which assumes the offset will be preserved and not converted
between poison and undef
4. The getLoad/getStore overloads are a mess, and a path was missing
to recreate the store case with the original offset.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list