mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 16:24:23 +00:00
The 'optnone' attribute means don't inline anything into this function
(except functions marked always_inline). Functions with 'optnone' must also have 'noinline' so they don't get inlined into any other function. Based on work by Andrea Di Biagio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195046 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1206,6 +1206,10 @@ InlineCost InlineCostAnalysis::getInlineCost(CallSite CS, Function *Callee,
|
||||
if (!functionsHaveCompatibleAttributes(CS.getCaller(), Callee))
|
||||
return llvm::InlineCost::getNever();
|
||||
|
||||
// Don't inline this call if the caller has the optnone attribute.
|
||||
if (CS.getCaller()->hasFnAttribute(Attribute::OptimizeNone))
|
||||
return llvm::InlineCost::getNever();
|
||||
|
||||
// Don't inline functions which can be redefined at link-time to mean
|
||||
// something else. Don't inline functions marked noinline or call sites
|
||||
// marked noinline.
|
||||
|
Reference in New Issue
Block a user