diff options
author | Dhruv Chawla <dhruvc@nvidia.com> | 2024-05-23 13:45:52 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-23 13:45:52 +0530 |
commit | 4c48b3cb5c681b34345e0dffe920649a5c26aaf4 (patch) | |
tree | a24368d8fda4fee3f55c91e2c0b43141dc543c47 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 781b13538e55a42b2d02bb4d21779f15ff8a640c (diff) | |
download | llvm-4c48b3cb5c681b34345e0dffe920649a5c26aaf4.zip llvm-4c48b3cb5c681b34345e0dffe920649a5c26aaf4.tar.gz llvm-4c48b3cb5c681b34345e0dffe920649a5c26aaf4.tar.bz2 |
[GISel][CombinerHelper] Push freeze through non-poison-producing operands (#90618)
This combine matches the existing fold in InstCombine, i.e.
InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating.
It tries to push freeze through an operand if the operand has only one
maybe-poison operand and all other operands are guaranteed non-poison,
and if the operation itself cannot generate poison (eg. add with nsw can
generate poison, even with non-poison operands).
This is beneficial because it can potentially enable other optimizations
to occur that would otherwise be blocked because of the freeze.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions