[llvm] da09b04 - Revert "[SimplifyCFG] Reuse function comdat for switch lookup table (#190995)" (#192294)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 15 10:30:56 PDT 2026
Author: 8051Enthusiast
Date: 2026-04-15T10:30:50-07:00
New Revision: da09b04cf166ccc2fb50217649c54960a2753cfe
URL: https://github.com/llvm/llvm-project/commit/da09b04cf166ccc2fb50217649c54960a2753cfe
DIFF: https://github.com/llvm/llvm-project/commit/da09b04cf166ccc2fb50217649c54960a2753cfe.diff
LOG: Revert "[SimplifyCFG] Reuse function comdat for switch lookup table (#190995)" (#192294)
This reverts commit 4e3a074501cae5f132293d56f9987ded94ee72be.
CI broke with errors that look very much like they're caused by #190995.
I can't merge, so someone else will have to.
https://lab.llvm.org/buildbot/#/builders/94/builds/16933
https://lab.llvm.org/buildbot/#/builders/55/builds/26779
Added:
Modified:
llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Removed:
llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-comdat.ll
################################################################################
diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
index 57e404a145f77..e7a6c9354953a 100644
--- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -6962,7 +6962,6 @@ Value *SwitchReplacement::replaceSwitch(Value *Index, IRBuilder<> &Builder,
// Set the alignment to that of an array items. We will be only loading one
// value out of it.
Table->setAlignment(DL.getPrefTypeAlign(ValueType));
- Table->setComdat(Func->getComdat());
Type *IndexTy = DL.getIndexType(Table->getType());
auto *ArrayTy = cast<ArrayType>(Table->getValueType());
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-comdat.ll b/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-comdat.ll
deleted file mode 100644
index 51e91cf0de8bc..0000000000000
--- a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-comdat.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: -p --check-globals all --version 6
-; RUN: opt -S -passes="simplifycfg<switch-to-lookup>" < %s | FileCheck %s
-target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-$foostring = comdat any
-
- at .str = private unnamed_addr constant [4 x i8] c"foo\00", comdat($foostring), align 1
- at .str1 = private unnamed_addr constant [4 x i8] c"bar\00", comdat($foostring), align 1
- at .str2 = private unnamed_addr constant [4 x i8] c"baz\00", comdat($foostring), align 1
- at .str3 = private unnamed_addr constant [4 x i8] c"qux\00", comdat($foostring), align 1
- at .str4 = private unnamed_addr constant [6 x i8] c"error\00", comdat($foostring), align 1
-
-;.
-; CHECK: @.str = private unnamed_addr constant [4 x i8] c"foo\00", comdat($foostring), align 1
-; CHECK: @.str1 = private unnamed_addr constant [4 x i8] c"bar\00", comdat($foostring), align 1
-; CHECK: @.str2 = private unnamed_addr constant [4 x i8] c"baz\00", comdat($foostring), align 1
-; CHECK: @.str3 = private unnamed_addr constant [4 x i8] c"qux\00", comdat($foostring), align 1
-; CHECK: @.str4 = private unnamed_addr constant [6 x i8] c"error\00", comdat($foostring), align 1
-; CHECK: @switch.table.foostring = private unnamed_addr constant [4 x ptr] [ptr @.str, ptr @.str1, ptr @.str2, ptr @.str3], comdat($foostring), align 8
-;.
-define ptr @foostring(i32 %x) comdat {
-; CHECK-LABEL: define ptr @foostring(i32 %x) comdat {
-; CHECK-NEXT: entry:
-; CHECK-NEXT: %0 = icmp ult i32 %x, 4
-; CHECK-NEXT: br i1 %0, label %switch.lookup, label %return
-; CHECK: switch.lookup:
-; CHECK-NEXT: %1 = zext nneg i32 %x to i64
-; CHECK-NEXT: %switch.gep = getelementptr inbounds [4 x ptr], ptr @switch.table.foostring, i64 0, i64 %1
-; CHECK-NEXT: %switch.load = load ptr, ptr %switch.gep, align 8
-; CHECK-NEXT: br label %return
-; CHECK: return:
-; CHECK-NEXT: %retval.0 = phi ptr [ %switch.load, %switch.lookup ], [ @.str4, %entry ]
-; CHECK-NEXT: ret ptr %retval.0
-;
-entry:
- switch i32 %x, label %sw.default [
- i32 0, label %return
- i32 1, label %sw.bb1
- i32 2, label %sw.bb2
- i32 3, label %sw.bb3
- ]
-
-sw.bb1: br label %return
-sw.bb2: br label %return
-sw.bb3: br label %return
-sw.default: br label %return
-
-return:
- %retval.0 = phi ptr [ @.str4, %sw.default ],
- [ @.str3, %sw.bb3 ],
- [ @.str2, %sw.bb2 ],
- [ @.str1, %sw.bb1 ],
- [ @.str, %entry ]
- ret ptr %retval.0
-
-}
-
More information about the llvm-commits
mailing list