aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2024-03-19 20:16:18 +0100
committerGitHub <noreply@github.com>2024-03-19 20:16:18 +0100
commitc2c1e6ee4ce0df3d000ba880fa6cf58441da6462 (patch)
treeb0dd8a06673dd895d2e8263c9e652878e02a4c11 /llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
parenta6e231bb2a7924f4269e6735d29a54b2318cd16c (diff)
downloadllvm-c2c1e6ee4ce0df3d000ba880fa6cf58441da6462.zip
llvm-c2c1e6ee4ce0df3d000ba880fa6cf58441da6462.tar.gz
llvm-c2c1e6ee4ce0df3d000ba880fa6cf58441da6462.tar.bz2
[VPlan] Replace disjoint or with add instead of dropping disjoint. (#83821)
Dropping disjoint from an OR may yield incorrect results, as some analysis may have converted it to an Add implicitly (e.g. SCEV used for dependence analysis). Instead, replace it with an equivalent Add. This is possible as all users of the disjoint OR only access lanes where the operands are disjoint or poison otherwise. Note that replacing all disjoint ORs with ADDs instead of dropping the flags is not strictly necessary. It is only needed for disjoint ORs that SCEV treated as ADDs, but those are not tracked. There are other places that may drop poison-generating flags; those likely need similar treatment. Fixes https://github.com/llvm/llvm-project/issues/81872 PR: https://github.com/llvm/llvm-project/pull/83821
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleInfoImpls.cpp')
0 files changed, 0 insertions, 0 deletions