[clang] 44f0a26 - Revert "Reland "[CodeGen] Keep track info of lazy-emitted symbols in ModuleBuilder""

Jun Zhang via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 14 04:53:28 PDT 2022


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


        


More information about the cfe-commits mailing list