Skip to content
Snippets Groups Projects
Commit c7b5f381 authored by Benjamin Kramer's avatar Benjamin Kramer
Browse files

ArrayRefize code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180632 91177308-0d34-0410-b5e6-96231b3b80d8
parent 622bb4ac
No related branches found
No related tags found
No related merge requests found
......@@ -296,14 +296,14 @@ void CodeGenModule::EmitCXXThreadLocalInitFunc() {
if (!CXXThreadLocalInits.empty()) {
// Generate a guarded initialization function.
llvm::FunctionType *FTy = llvm::FunctionType::get(VoidTy, false);
InitFn = CreateGlobalInitOrDestructFunction(
*this, FTy, "__tls_init", /*TLS*/ true);
InitFn = CreateGlobalInitOrDestructFunction(*this, FTy, "__tls_init",
/*TLS*/ true);
llvm::GlobalVariable *Guard = new llvm::GlobalVariable(
getModule(), Int8Ty, false, llvm::GlobalVariable::InternalLinkage,
llvm::ConstantInt::get(Int8Ty, 0), "__tls_guard");
Guard->setThreadLocal(true);
CodeGenFunction(*this).GenerateCXXGlobalInitFunc(
InitFn, CXXThreadLocalInits.data(), CXXThreadLocalInits.size(), Guard);
CodeGenFunction(*this)
.GenerateCXXGlobalInitFunc(InitFn, CXXThreadLocalInits, Guard);
}
getCXXABI().EmitThreadLocalInitFuncs(CXXThreadLocals, InitFn);
......@@ -351,9 +351,7 @@ CodeGenModule::EmitCXXGlobalInitFunc() {
for (; I < PrioE; ++I)
LocalCXXGlobalInits.push_back(I->second);
CodeGenFunction(*this).GenerateCXXGlobalInitFunc(Fn,
&LocalCXXGlobalInits[0],
LocalCXXGlobalInits.size());
CodeGenFunction(*this).GenerateCXXGlobalInitFunc(Fn, LocalCXXGlobalInits);
AddGlobalCtor(Fn, Priority);
}
}
......@@ -361,9 +359,7 @@ CodeGenModule::EmitCXXGlobalInitFunc() {
llvm::Function *Fn =
CreateGlobalInitOrDestructFunction(*this, FTy, "_GLOBAL__I_a");
CodeGenFunction(*this).GenerateCXXGlobalInitFunc(Fn,
&CXXGlobalInits[0],
CXXGlobalInits.size());
CodeGenFunction(*this).GenerateCXXGlobalInitFunc(Fn, CXXGlobalInits);
AddGlobalCtor(Fn);
CXXGlobalInits.clear();
......@@ -410,10 +406,10 @@ void CodeGenFunction::GenerateCXXGlobalVarDeclInitFunc(llvm::Function *Fn,
FinishFunction();
}
void CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn,
llvm::Constant **Decls,
unsigned NumDecls,
llvm::GlobalVariable *Guard) {
void
CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn,
ArrayRef<llvm::Constant *> Decls,
llvm::GlobalVariable *Guard) {
// Initialize debug info if needed.
maybeInitializeDebugInfo();
......@@ -445,8 +441,8 @@ void CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn,
llvm::Value *token = EmitObjCAutoreleasePoolPush();
EmitObjCAutoreleasePoolCleanup(token);
}
for (unsigned i = 0; i != NumDecls; ++i)
for (unsigned i = 0, e = Decls.size(); i != e; ++i)
if (Decls[i])
EmitRuntimeCall(Decls[i]);
......
......@@ -2668,8 +2668,7 @@ public:
/// GenerateCXXGlobalInitFunc - Generates code for initializing global
/// variables.
void GenerateCXXGlobalInitFunc(llvm::Function *Fn,
llvm::Constant **Decls,
unsigned NumDecls,
ArrayRef<llvm::Constant *> Decls,
llvm::GlobalVariable *Guard = 0);
/// GenerateCXXGlobalDtorsFunc - Generates code for destroying global
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment