From 3d5cf0df4f5a54ff4aeee69f4bb80b8e079c9f23 Mon Sep 17 00:00:00 2001 From: Alan Zhao Date: Wed, 14 Jun 2023 14:10:31 -0700 Subject: [PATCH] Revert "[InstSimplify] Fold all global variables with initializers" This reverts commit 17b7df3daee85c1a4d1d955e558d42b34ce17549. Reason: causes chrome builds to crash: https://crbug.com/1454861 --- llvm/lib/Analysis/MemoryBuiltins.cpp | 4 +- llvm/test/Transforms/InstSimplify/gv-alloca-cmp.ll | 46 ---------------------- .../LowerConstantIntrinsics/objectsize_basic.ll | 38 ------------------ 3 files changed, 1 insertion(+), 87 deletions(-) delete mode 100644 llvm/test/Transforms/InstSimplify/gv-alloca-cmp.ll diff --git a/llvm/lib/Analysis/MemoryBuiltins.cpp b/llvm/lib/Analysis/MemoryBuiltins.cpp index 25fef92..6ff7aed 100644 --- a/llvm/lib/Analysis/MemoryBuiltins.cpp +++ b/llvm/lib/Analysis/MemoryBuiltins.cpp @@ -826,9 +826,7 @@ SizeOffsetType ObjectSizeOffsetVisitor::visitGlobalAlias(GlobalAlias &GA) { } SizeOffsetType ObjectSizeOffsetVisitor::visitGlobalVariable(GlobalVariable &GV){ - if (GV.hasExternalWeakLinkage() || - ((!GV.hasInitializer() || GV.isInterposable()) && - Options.EvalMode != ObjectSizeOpts::Mode::Min)) + if (!GV.hasDefinitiveInitializer()) return unknown(); APInt Size(IntTyBits, DL.getTypeAllocSize(GV.getValueType())); diff --git a/llvm/test/Transforms/InstSimplify/gv-alloca-cmp.ll b/llvm/test/Transforms/InstSimplify/gv-alloca-cmp.ll deleted file mode 100644 index 2bb04c2..0000000 --- a/llvm/test/Transforms/InstSimplify/gv-alloca-cmp.ll +++ /dev/null @@ -1,46 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 -; RUN: opt < %s -passes=instsimplify -S | FileCheck %s - -@gv = global i64 zeroinitializer, align 16 - -define i1 @cmp_gv_alloca() { -; CHECK-LABEL: define i1 @cmp_gv_alloca() { -; CHECK-NEXT: ret i1 false -; - %alloca = alloca i64, align 8 - %cmp = icmp eq ptr %alloca, @gv - ret i1 %cmp -} - -@gv_externally_init = externally_initialized global i64 zeroinitializer, align 16 - -define i1 @cmp_gv_alloca_extern_init() { -; CHECK-LABEL: define i1 @cmp_gv_alloca_extern_init() { -; CHECK-NEXT: ret i1 false -; - %alloca = alloca i64, align 8 - %cmp = icmp eq ptr %alloca, @gv_externally_init - ret i1 %cmp -} - -@const_gv = protected addrspace(4) externally_initialized global [4096 x i64] zeroinitializer, align 16 -define i1 @cmp_gv_alloca_cast() { -; CHECK-LABEL: define i1 @cmp_gv_alloca_cast() { -; CHECK-NEXT: ret i1 false -; - %alloca = alloca i64, align 8, addrspace(5) - %cast.alloca = addrspacecast ptr addrspace(5) %alloca to ptr - %cmp = icmp eq ptr %cast.alloca, addrspacecast (ptr addrspace(4) @const_gv to ptr) - ret i1 %cmp -} - -@gv_weak = weak global i64 zeroinitializer, align 16 - -define i1 @cmp_gv_weak_alloca() { -; CHECK-LABEL: define i1 @cmp_gv_weak_alloca() { -; CHECK-NEXT: ret i1 false -; - %alloca = alloca i64, align 8 - %cmp = icmp eq ptr %alloca, @gv_weak - ret i1 %cmp -} diff --git a/llvm/test/Transforms/LowerConstantIntrinsics/objectsize_basic.ll b/llvm/test/Transforms/LowerConstantIntrinsics/objectsize_basic.ll index c90d515..52f4cbb 100644 --- a/llvm/test/Transforms/LowerConstantIntrinsics/objectsize_basic.ll +++ b/llvm/test/Transforms/LowerConstantIntrinsics/objectsize_basic.ll @@ -146,41 +146,3 @@ define i64 @test_objectsize_malloc() { %objsize = call i64 @llvm.objectsize.i64(ptr %ptr, i1 false, i1 true, i1 true) ret i64 %objsize } - -@gv_weak = weak global i64 zeroinitializer, align 16 - -define i32 @promote_with_objectsize_min_false() { -; CHECK-LABEL: @promote_with_objectsize_min_false( -; CHECK-NEXT: ret i32 -1 -; - %size = call i32 @llvm.objectsize.i32.p0(ptr @gv_weak, i1 false, i1 false, i1 false) - ret i32 %size -} - -define i32 @promote_with_objectsize_min_true() { -; CHECK-LABEL: @promote_with_objectsize_min_true( -; CHECK-NEXT: ret i32 8 -; - %size = call i32 @llvm.objectsize.i32.p0(ptr @gv_weak, i1 true, i1 false, i1 false) - ret i32 %size -} - -@gv_extern = extern_weak global i64, align 16 - -define i32 @promote_with_objectsize_nullunknown_false() { -; CHECK-LABEL: @promote_with_objectsize_nullunknown_false( -; CHECK-NEXT: ret i32 0 -; - %size = call i32 @llvm.objectsize.i32.p0(ptr @gv_extern, i1 true, i1 false, i1 false) - ret i32 %size -} - -define i32 @promote_with_objectsize_nullunknown_true() { -; CHECK-LABEL: @promote_with_objectsize_nullunknown_true( -; CHECK-NEXT: ret i32 0 -; - %size = call i32 @llvm.objectsize.i32.p0(ptr @gv_extern, i1 true, i1 true, i1 false) - ret i32 %size -} - -declare i32 @llvm.objectsize.i32.p0(ptr, i1, i1, i1) -- 2.7.4