Add llvm::function_ref (and a couple of uses of it), representing a type-erased reference to a callable object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208025 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Smith
2014-05-06 01:01:29 +00:00
parent 9331beb910
commit 245e8bdfba
7 changed files with 153 additions and 46 deletions

View File

@ -3022,10 +3022,9 @@ bool GlobalOpt::runOnModule(Module &M) {
LocalChange |= OptimizeFunctions(M);
// Optimize global_ctors list.
LocalChange |= optimizeGlobalCtorsList(M, [](void *C, Function *F) -> bool {
GlobalOpt *self = static_cast<GlobalOpt *>(C);
return EvaluateStaticConstructor(F, self->DL, self->TLI);
}, this);
LocalChange |= optimizeGlobalCtorsList(M, [&](Function *F) {
return EvaluateStaticConstructor(F, DL, TLI);
});
// Optimize non-address-taken globals.
LocalChange |= OptimizeGlobalVars(M);