aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2024-03-27 19:11:17 +0000
committerFlorian Hahn <flo@fhahn.com>2024-03-27 19:11:18 +0000
commit6ef829941b38f7e8a28c4cba1ff25cd0ae9f7d3d (patch)
treeabd14f98d6e27286e8322e5b44e2a1f9093adeb0 /clang/lib/CodeGen/CodeGenModule.cpp
parented68aac9f225ce560a89315c30f1e97e7e035a03 (diff)
downloadllvm-6ef829941b38f7e8a28c4cba1ff25cd0ae9f7d3d.zip
llvm-6ef829941b38f7e8a28c4cba1ff25cd0ae9f7d3d.tar.gz
llvm-6ef829941b38f7e8a28c4cba1ff25cd0ae9f7d3d.tar.bz2
Recommit "[VPlan] Replace disjoint or with add instead of dropping disjoint. (#83821)"
Recommit with a fix for the use-after-free causing the revert. This reverts the revert commit f872043e055f4163c3c4b1b86ca0354490174987. Original commit message: 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 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions