[all-commits] [llvm/llvm-project] 5ce47a: Reland "[Support] Assert that DomTree nodes share ...
Vitaly Buka via All-commits
all-commits at lists.llvm.org
Tue Aug 13 02:56:23 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5ce47a5813506e08daddc1e3d59b06f7a452c300
https://github.com/llvm/llvm-project/commit/5ce47a5813506e08daddc1e3d59b06f7a452c300
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-08-13 (Tue, 13 Aug 2024)
Changed paths:
M llvm/include/llvm/Support/GenericDomTree.h
M llvm/lib/Analysis/TypeMetadataUtils.cpp
M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/AlignmentFromAssumptions/domtree-crash.ll
A llvm/test/Transforms/SLPVectorizer/X86/const-in-different-functions.ll
Log Message:
-----------
Reland "[Support] Assert that DomTree nodes share parent" (#102782)
A dominance query of a block that is in a different function is
ill-defined, so assert that getNode() is only called for blocks that are
in the same function.
There are three cases, where this behavior did occur. LoopFuse didn't
explicitly do this, but didn't invalidate the SCEV block dispositions,
leaving dangling pointers to free'ed basic blocks behind, causing
use-after-free. We do, however, want to be able to dereference basic
blocks inside the dominator tree, so that we can refer to them by a
number stored inside the basic block.
Reverts #102780
Reland #101198
Fixes #102784
Co-authored-by: Alexis Engelke <engelke at in.tum.de>
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