mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
60914a2419
Summary: llvm::SplitEdge was failing an assertion that the BasicBlock only had one successor (for BasicBlocks terminated by CallBrInst, we typically have multiple successors). It was surprising that the earlier call to SplitCriticalEdge did not handle the critical edge (there was an early return). Removing that triggered another assertion relating to creating a BlockAddress for a BasicBlock that did not (yet) have a parent, which is a simple order of operations issue in llvm::SplitCriticalEdge (a freshly constructed BasicBlock must be inserted into a Function's basic block list to have a parent). Thanks to @nathanchance for the report. Fixes: https://github.com/ClangBuiltLinux/linux/issues/1018 Reviewers: craig.topper, jyknight, void, fhahn, efriedma Reviewed By: efriedma Subscribers: eli.friedman, rnk, efriedma, fhahn, hiraditya, llvm-commits, nathanchance, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D81607 |
||
---|---|---|
.. | ||
callsite-instructions-before-call.ll | ||
callsite-no-or-structure.ll | ||
callsite-no-splitting.ll | ||
callsite-split-callbr.ll | ||
callsite-split-debug.ll | ||
callsite-split-or-phi.ll | ||
callsite-split-preserve-debug.ll | ||
callsite-split.ll | ||
convergent.ll | ||
lpad.ll | ||
musttail.ll | ||
noduplicate.ll | ||
split-loop.ll |