mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-03 13:31:05 +00:00
add a comment about why we don't allow inlining indbr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85724 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1107f03ef4
commit
66588707ac
@ -159,6 +159,11 @@ void CodeMetrics::analyzeBasicBlock(const BasicBlock *BB) {
|
||||
if (isa<ReturnInst>(BB->getTerminator()))
|
||||
++NumRets;
|
||||
|
||||
// We never want to inline functions that contain an indirectbr. This is
|
||||
// incorrect because all the blockaddress's (e.g. in static global
|
||||
// initializers would be referring to the original function, and this indirect
|
||||
// jump would jump from the inlined copy of the function into the original
|
||||
// function which is extremely undefined behavior.
|
||||
if (isa<IndirectBrInst>(BB->getTerminator()))
|
||||
NeverInline = true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user