[llvm] [bazel] Fix LLVM plugin tests under Analysis. (PR #142999)

Chenguang Wang via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 5 09:17:41 PDT 2025


https://github.com/wecing created https://github.com/llvm/llvm-project/pull/142999

Those tests were broken on bazel as a side effect of 8830e380.

This commit is tested with this command on Linux:

    bazelisk test \
        @llvm-project//llvm/unittests:analysis_tests \
        @llvm-project//llvm/unittests:plugin_inline_advisor_analysis_test \
        @llvm-project//llvm/unittests:plugin_inline_order_analysis_test

>From 6d428dde64db0a116780c5dd8ff76f0a677c89b1 Mon Sep 17 00:00:00 2001
From: Chenguang Wang <w3cing at gmail.com>
Date: Thu, 5 Jun 2025 09:14:40 -0700
Subject: [PATCH] [bazel] Fix LLVM plugin tests under Analysis.

Those tests were broken on bazel as a side effect of 8830e380.

This commit is tested with this command on Linux:

    bazelisk test \
        @llvm-project//llvm/unittests:analysis_tests \
        @llvm-project//llvm/unittests:plugin_inline_advisor_analysis_test \
        @llvm-project//llvm/unittests:plugin_inline_order_analysis_test
---
 .../llvm/unittests/BUILD.bazel                | 80 +++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
index 8ae197a64620d..142b39823ed63 100644
--- a/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
@@ -33,6 +33,80 @@ cc_test(
     ],
 )
 
+cc_library(
+    name = "inline_advisor_plugin",
+    srcs = glob(["Analysis/InlineAdvisorPlugin/*.cpp"]),
+    deps = [
+        "//llvm:Analysis",
+        "//llvm:Core",
+        "//llvm:Passes",
+        "//llvm:Support",
+    ],
+)
+
+cc_shared_library(
+    name = "inline_advisor_plugin_shared",
+    shared_lib_name = "InlineAdvisorPlugin.so",
+    deps = [":inline_advisor_plugin"],
+)
+
+cc_test(
+    name = "plugin_inline_advisor_analysis_test",
+    srcs = ["Analysis/PluginInlineAdvisorAnalysisTest.cpp"],
+    data = [
+        ":inline_advisor_plugin_shared",
+    ],
+    deps = [
+        "//llvm:Analysis",
+        "//llvm:AsmParser",
+        "//llvm:Core",
+        "//llvm:Passes",
+        "//llvm:Support",
+        "//llvm:TestingSupport",
+        "//llvm:attributes_gen",
+        "//llvm:config",
+        "//third-party/unittest:gtest",
+        "//third-party/unittest:gtest_main",
+    ],
+)
+
+cc_library(
+    name = "inline_order_plugin",
+    srcs = glob(["Analysis/InlineOrderPlugin/*.cpp"]),
+    deps = [
+        "//llvm:Analysis",
+        "//llvm:Core",
+        "//llvm:Passes",
+        "//llvm:Support",
+    ],
+)
+
+cc_shared_library(
+    name = "inline_order_plugin_shared",
+    shared_lib_name = "InlineOrderPlugin.so",
+    deps = [":inline_order_plugin"],
+)
+
+cc_test(
+    name = "plugin_inline_order_analysis_test",
+    srcs = ["Analysis/PluginInlineOrderAnalysisTest.cpp"],
+    data = [
+        ":inline_order_plugin_shared",
+    ],
+    deps = [
+        "//llvm:Analysis",
+        "//llvm:AsmParser",
+        "//llvm:Core",
+        "//llvm:Passes",
+        "//llvm:Support",
+        "//llvm:TestingSupport",
+        "//llvm:attributes_gen",
+        "//llvm:config",
+        "//third-party/unittest:gtest",
+        "//third-party/unittest:gtest_main",
+    ],
+)
+
 cc_test(
     name = "analysis_tests",
     size = "small",
@@ -45,6 +119,12 @@ cc_test(
             "Analysis/TFUtilsTest.cpp",
             "Analysis/TrainingLoggerTest.cpp",
             "Analysis/MLModelRunnerTest.cpp",
+            # These tests dynamically load Plugins which both pull in
+            # llvm/lib/Analysis/ProfileSummaryInfo.cpp, which registers flags;
+            # if built into the same cc_test target, those flags will be
+            # registered twice and cause runtime failures.
+            "Analysis/PluginInlineAdvisorAnalysisTest.cpp",
+            "Analysis/PluginInlineOrderAnalysisTest.cpp",
         ],
     ),
     deps = [



More information about the llvm-commits mailing list