Skip to content

Commit

Permalink
[NFC] Move function definition to cpp file
Browse files Browse the repository at this point in the history
Signed-off-by: Jun Zhang <jun@junz.org>
  • Loading branch information
junaire committed Jul 23, 2022
1 parent 6b7eae1 commit 1a3a2ee
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 28 deletions.
28 changes: 28 additions & 0 deletions clang/lib/CodeGen/CodeGenModule.cpp
Expand Up @@ -6973,3 +6973,31 @@ void CodeGenModule::printPostfixForExternalizedDecl(llvm::raw_ostream &OS,
OS << getContext().getCUIDHash();
}
}

void CodeGenModule::moveLazyEmissionStates(CodeGenModule *NewBuilder) {
assert(DeferredDeclsToEmit.empty() &&
"Should have emitted all decls deferred to emit.");
assert(NewBuilder->DeferredDecls.empty() &&
"Newly created module should not have deferred decls");
NewBuilder->DeferredDecls = std::move(DeferredDecls);

assert(NewBuilder->DeferredVTables.empty() &&
"Newly created module should not have deferred vtables");
NewBuilder->DeferredVTables = std::move(DeferredVTables);

assert(NewBuilder->MangledDeclNames.empty() &&
"Newly created module should not have mangled decl names");
assert(NewBuilder->Manglings.empty() &&
"Newly created module should not have manglings");
NewBuilder->Manglings = std::move(Manglings);

assert(WeakRefReferences.empty() && "Not all WeakRefRefs have been applied");
NewBuilder->WeakRefReferences = std::move(WeakRefReferences);

NewBuilder->TBAA = std::move(TBAA);

assert(NewBuilder->EmittedDeferredDecls.empty() &&
"Still have (unmerged) EmittedDeferredDecls deferred decls");

NewBuilder->EmittedDeferredDecls = std::move(EmittedDeferredDecls);
}
29 changes: 1 addition & 28 deletions clang/lib/CodeGen/CodeGenModule.h
Expand Up @@ -1514,34 +1514,7 @@ class CodeGenModule : public CodeGenTypeCache {
/// Move some lazily-emitted states to the NewBuilder. This is especially
/// essential for the incremental parsing environment like Clang Interpreter,
/// because we'll lose all important information after each repl.
void moveLazyEmissionStates(CodeGenModule *NewBuilder) {
assert(DeferredDeclsToEmit.empty() &&
"Should have emitted all decls deferred to emit.");
assert(NewBuilder->DeferredDecls.empty() &&
"Newly created module should not have deferred decls");
NewBuilder->DeferredDecls = std::move(DeferredDecls);

assert(NewBuilder->DeferredVTables.empty() &&
"Newly created module should not have deferred vtables");
NewBuilder->DeferredVTables = std::move(DeferredVTables);

assert(NewBuilder->MangledDeclNames.empty() &&
"Newly created module should not have mangled decl names");
assert(NewBuilder->Manglings.empty() &&
"Newly created module should not have manglings");
NewBuilder->Manglings = std::move(Manglings);

assert(WeakRefReferences.empty() &&
"Not all WeakRefRefs have been applied");
NewBuilder->WeakRefReferences = std::move(WeakRefReferences);

NewBuilder->TBAA = std::move(TBAA);

assert(NewBuilder->EmittedDeferredDecls.empty() &&
"Still have (unmerged) EmittedDeferredDecls deferred decls");

NewBuilder->EmittedDeferredDecls = std::move(EmittedDeferredDecls);
}
void moveLazyEmissionStates(CodeGenModule *NewBuilder);

private:
llvm::Constant *GetOrCreateLLVMFunction(
Expand Down

0 comments on commit 1a3a2ee

Please sign in to comment.