implement a new magic global "llvm.compiler.used" which is like llvm.used, but

doesn't cause ".no_dead_strip" to be emitted on darwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-07-20 06:14:25 +00:00
parent ba8dc03935
commit 401e10c4fb
8 changed files with 63 additions and 32 deletions

View File

@ -112,8 +112,9 @@ private:
// common EH frames.
std::vector<Function *> Personalities;
// UsedFunctions - the functions in the llvm.used list in a more easily
// searchable format.
/// UsedFunctions - The functions in the @llvm.used list in a more easily
/// searchable format. This does not include the functions in
/// llvm.compiler.used.
SmallPtrSet<const Function *, 32> UsedFunctions;
/// UsedDbgLabels - labels are used by debug info entries.
@ -240,9 +241,11 @@ public:
return Personalities;
}
// UsedFunctions - Return set of the functions in the llvm.used list.
const SmallPtrSet<const Function *, 32>& getUsedFunctions() const {
return UsedFunctions;
/// isUsedFunction - Return true if the functions in the llvm.used list. This
/// does not return true for things in llvm.compiler.used unless they are also
/// in llvm.used.
bool isUsedFunction(const Function *F) {
return UsedFunctions.count(F);
}
/// addCatchTypeInfo - Provide the catch typeinfo for a landing pad.