Lab6: fix performance test freeze by only zero-initializing local variables with initializers

This commit is contained in:
2026-06-01 16:00:00 +08:00
committed by CGH0S7
parent 6f48016c10
commit 233c163271
2 changed files with 6 additions and 4 deletions

View File

@@ -208,8 +208,10 @@ std::any IRGenImpl::visitVarDef(SysYParser::VarDefContext* ctx) {
slot = module_.CreateGlobalValue(name, StorageType(ty), init);
} else {
slot = builder_.CreateAlloca(StorageType(ty), name);
ZeroInitializeLocal(slot, ty);
if (ctx->initValue()) EmitLocalInitValue(slot, ty, ctx->initValue());
if (ctx->initValue()) {
ZeroInitializeLocal(slot, ty);
EmitLocalInitValue(slot, ty, ctx->initValue());
}
}
storage_map_[ctx] = slot;