[all-commits] [llvm/llvm-project] 8101d1: [Support] Assert that DomTree nodes share parent (...

Alexis Engelke via All-commits all-commits at lists.llvm.org
Sat Aug 10 09:19:26 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8101d1863cc3a6ca0ca49962903f2d7651b25659
      https://github.com/llvm/llvm-project/commit/8101d1863cc3a6ca0ca49962903f2d7651b25659
  Author: Alexis Engelke <engelke at in.tum.de>
  Date:   2024-08-10 (Sat, 10 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
    A llvm/test/Transforms/AlignmentFromAssumptions/domtree-crash.ll

  Log Message:
  -----------
  [Support] Assert that DomTree nodes share parent (#101198)

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 two 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.



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