diff options
author | Fabian Ritter <fabian.ritter@amd.com> | 2025-09-19 11:58:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-19 11:58:41 +0200 |
commit | d5607694e1270a4fc4e3c6f8c9de5d1c4f9c34ff (patch) | |
tree | cb82971ddde571c321def83364bb2c89b8395a97 /clang/lib/AST/ByteCode/Compiler.cpp | |
parent | 91dba2201ec63907105ffddbea1de82f649d35d8 (diff) | |
download | llvm-d5607694e1270a4fc4e3c6f8c9de5d1c4f9c34ff.zip llvm-d5607694e1270a4fc4e3c6f8c9de5d1c4f9c34ff.tar.gz llvm-d5607694e1270a4fc4e3c6f8c9de5d1c4f9c34ff.tar.bz2 |
[AMDGPU][SDAG] DAGCombine PTRADD -> disjoint OR (#146075)
If we can't fold a PTRADD's offset into its users, lowering them to
disjoint ORs is preferable: Often, a 32-bit OR instruction suffices
where we'd otherwise use a pair of 32-bit additions with carry.
This needs to be a DAGCombine (and not a selection rule) because its
main purpose is to enable subsequent DAGCombines for bitwise operations.
We don't want to just turn PTRADDs into disjoint ORs whenever that's
sound because this transform loses the information that the operation
implements pointer arithmetic, which AMDGPU for instance needs when
folding constant offsets.
For SWDEV-516125.
Diffstat (limited to 'clang/lib/AST/ByteCode/Compiler.cpp')
0 files changed, 0 insertions, 0 deletions