Revert "[CodeGen] Keep track info of lazy-emitted symbols in ModuleBuilder"

This reverts commit b8f9459715.

Broke the ASan buildbot. See https://reviews.llvm.org/D126781 for more
information.
This commit is contained in:
Mitch Phillips 2022-06-13 09:49:33 -07:00
parent d90eecff5c
commit d3ddc251ac
3 changed files with 0 additions and 36 deletions

View file

@ -1477,31 +1477,6 @@ public:
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");
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->TBAA = std::move(TBAA);
}
private:
llvm::Constant *GetOrCreateLLVMFunction(
StringRef MangledName, llvm::Type *Ty, GlobalDecl D, bool ForVTable,

View file

@ -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();
}

View file

@ -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