Author: Jun Zhang Date: 2022-06-14T19:53:17+08:00 New Revision: 44f0a2658d22ffc12bac6ca2c8f4a3d98603ea3a
URL: https://github.com/llvm/llvm-project/commit/44f0a2658d22ffc12bac6ca2c8f4a3d98603ea3a DIFF: https://github.com/llvm/llvm-project/commit/44f0a2658d22ffc12bac6ca2c8f4a3d98603ea3a.diff LOG: Revert "Reland "[CodeGen] Keep track info of lazy-emitted symbols in ModuleBuilder"" This reverts commit 781ee538da1855876b085989a37ec959e3f2ecd1. Asan build is still broken :( Added: Modified: clang/lib/CodeGen/CodeGenModule.h clang/lib/CodeGen/ModuleBuilder.cpp clang/test/Interpreter/execute.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h index cce8e46ad5ac6..779d94ad62d98 100644 --- a/clang/lib/CodeGen/CodeGenModule.h +++ b/clang/lib/CodeGen/CodeGenModule.h @@ -1486,33 +1486,6 @@ class CodeGenModule : public CodeGenTypeCache { void printPostfixForExternalizedDecl(llvm::raw_ostream &OS, const Decl *D) const; - /// 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"); - std::swap(NewBuilder->DeferredDecls, DeferredDecls); - - assert(NewBuilder->DeferredVTables.empty() && - "Newly created module should not have deferred vtables"); - std::swap(NewBuilder->DeferredVTables, 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"); - std::swap(NewBuilder->Manglings, Manglings); - - assert(WeakRefReferences.empty() && - "Not all WeakRefRefs have been applied"); - std::swap(NewBuilder->WeakRefReferences, WeakRefReferences); - - std::swap(NewBuilder->TBAA, TBAA); - } - private: llvm::Constant *GetOrCreateLLVMFunction( StringRef MangledName, llvm::Type *Ty, GlobalDecl D, bool ForVTable, diff --git a/clang/lib/CodeGen/ModuleBuilder.cpp b/clang/lib/CodeGen/ModuleBuilder.cpp index 8e97a298ce7fa..50b7fd8eb993c 100644 --- a/clang/lib/CodeGen/ModuleBuilder.cpp +++ b/clang/lib/CodeGen/ModuleBuilder.cpp @@ -134,14 +134,7 @@ namespace { llvm::LLVMContext &C) { assert(!M && "Replacing existing Module?"); M.reset(new llvm::Module(ExpandModuleName(ModuleName, CodeGenOpts), C)); - - std::unique_ptr<CodeGenModule> OldBuilder = std::move(Builder); - Initialize(*Ctx); - - if (OldBuilder) - OldBuilder->moveLazyEmissionStates(Builder.get()); - return M.get(); } diff --git a/clang/test/Interpreter/execute.cpp b/clang/test/Interpreter/execute.cpp index 61e68990acf96..298046c068c37 100644 --- a/clang/test/Interpreter/execute.cpp +++ b/clang/test/Interpreter/execute.cpp @@ -13,8 +13,4 @@ struct S { float f = 1.0; S *m = nullptr;} s; auto r2 = printf("S[f=%f, m=0x%llx]\n", s.f, reinterpret_cast<unsigned long long>(s.m)); // CHECK-NEXT: S[f=1.000000, m=0x0] - -inline int foo() { return 42; } -int r3 = foo(); - quit _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits