[llvm] [MachineSink] Fix missing sinks along critical edges (PR #97618)

Alexander Kornienko via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 11 07:46:17 PDT 2024


alexfh wrote:

This commit causes an assertion failure when compiling some code with hwasan for aarch64:
```
assertion failed at llvm-project/llvm/lib/CodeGen/MachineBasicBlock.cpp:877 in void llvm::MachineBasicBlock::replaceSuccessor(MachineBasicBlock *, MachineBasicBlock *): OldI != E && "Old is not a successor of this block"
    @     0x55c77a4e3cc4  __assert_fail
    @     0x55c778a22219  llvm::MachineBasicBlock::replaceSuccessor()
    @     0x55c778a239b6  llvm::MachineBasicBlock::SplitCriticalEdge()
    @     0x55c778b558fc  (anonymous namespace)::MachineSinking::runOnMachineFunction()
    @     0x55c778a9c590  llvm::MachineFunctionPass::runOnFunction()
    @     0x55c77a195cb2  llvm::FPPassManager::runOnFunction()
    @     0x55c77a19dbc4  llvm::FPPassManager::runOnModule()
    @     0x55c77a1967a3  llvm::legacy::PassManagerImpl::run()
    @     0x55c774f5f9fc  clang::EmitBackendOutput()
    @     0x55c774bb077f  clang::BackendConsumer::HandleTranslationUnit()
    @     0x55c775b505b9  clang::ParseAST()
    @     0x55c77589d4c3  clang::FrontendAction::Execute()
    @     0x55c775817d8d  clang::CompilerInstance::ExecuteAction()
    @     0x55c77482a6d8  clang::ExecuteCompilerInvocation()
    @     0x55c77481ead6  cc1_main()
```
I'm currently working on a standalone reproducer.

https://github.com/llvm/llvm-project/pull/97618


More information about the llvm-commits mailing list