aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorJames Molloy <james.molloy@arm.com>2015-11-12 08:53:04 +0000
committerJames Molloy <james.molloy@arm.com>2015-11-12 08:53:04 +0000
commitb14994e7525d20cb97ce9ebef18802cb038c5d66 (patch)
tree61362001c7b92ecfea48d181b7e538ec35931ada /llvm/lib/Object/MachOObjectFile.cpp
parent71a51ff10ee175f3dadc40062950a8110ce4e832 (diff)
downloadllvm-b14994e7525d20cb97ce9ebef18802cb038c5d66.zip
llvm-b14994e7525d20cb97ce9ebef18802cb038c5d66.tar.gz
llvm-b14994e7525d20cb97ce9ebef18802cb038c5d66.tar.bz2
[FunctionAttrs] Identify norecurse functions
A function can be marked as norecurse if: * The SCC to which it belongs has cardinality 1; and either a) It does not call any non-norecurse function. This includes self-recursion; or b) It only has one callsite and the function that callsite is within is marked norecurse. a) is best propagated bottom-up and b) is best propagated top-down. We build up the norecurse attributes bottom-up using the existing SCC pass, and mark functions with no obvious recursion (but not provably norecurse) to sweep later, top-down. llvm-svn: 252862
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions