mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +00:00
Disable inlining of recursive calls. It can complicate tailcallelim and
dependent analyses, and increase code size, so doing it profitably would require more complex heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101471 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -263,6 +263,13 @@ InlineCost InlineCostAnalyzer::getInlineCost(CallSite CS,
|
||||
CS.isNoInline())
|
||||
return llvm::InlineCost::getNever();
|
||||
|
||||
// Don't inline directly recursive calls, for now. Inlining a directly
|
||||
// recursive call is effectively unrolling a loop, so it calls for different
|
||||
// heuristics, which aren't implemented yet. Until then, err on the
|
||||
// conservative side.
|
||||
if (Callee == Caller)
|
||||
return llvm::InlineCost::getNever();
|
||||
|
||||
// InlineCost - This value measures how good of an inline candidate this call
|
||||
// site is to inline. A lower inline cost make is more likely for the call to
|
||||
// be inlined. This value may go negative.
|
||||
|
||||
Reference in New Issue
Block a user