From: Raphael Isemann Date: Tue, 1 Sep 2020 11:21:18 +0000 (+0200) Subject: Reland [FileCheck] Move FileCheck implementation out of LLVMSupport into its own... X-Git-Tag: llvmorg-13-init~13209 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ffd940ac02a8e000691c45a6dc4f69d0198e675;p=platform%2Fupstream%2Fllvm.git Reland [FileCheck] Move FileCheck implementation out of LLVMSupport into its own library This relands e9a3d1a401b07cbf7b11695637f1b549782a26cd which was originally missing linking LLVMSupport into LLMVFileCheck which broke the SHARED_LIBS build. Original summary: The actual FileCheck logic seems to be implemented in LLVMSupport. I don't see a good reason for having FileCheck implemented there as it has a very specific use while LLVMSupport is a dependency of pretty much every LLVM tool there is. In fact, the only use of FileCheck I could find (outside the FileCheck tool and the FileCheck unit test) is a single call in GISelMITest.h. This moves the FileCheck logic to its own LLVMFileCheck library. This way only FileCheck and the GlobalISelTests now have a dependency on this code. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D86344 --- diff --git a/llvm/include/llvm/Support/FileCheck.h b/llvm/include/llvm/FileCheck/FileCheck.h similarity index 97% rename from llvm/include/llvm/Support/FileCheck.h rename to llvm/include/llvm/FileCheck/FileCheck.h index 1eb609e..f9fd3d7 100644 --- a/llvm/include/llvm/Support/FileCheck.h +++ b/llvm/include/llvm/FileCheck/FileCheck.h @@ -1,4 +1,4 @@ -//==-- llvm/Support/FileCheck.h ---------------------------*- C++ -*-==// +//==-- llvm/FileCheck/FileCheck.h --------------------------------*- C++ -*-==// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -10,8 +10,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_SUPPORT_FILECHECK_H -#define LLVM_SUPPORT_FILECHECK_H +#ifndef LLVM_FILECHECK_FILECHECK_H +#define LLVM_FILECHECK_FILECHECK_H #include "llvm/ADT/StringRef.h" #include "llvm/Support/MemoryBuffer.h" diff --git a/llvm/include/llvm/module.modulemap b/llvm/include/llvm/module.modulemap index 0ce3574..22959c6 100644 --- a/llvm/include/llvm/module.modulemap +++ b/llvm/include/llvm/module.modulemap @@ -195,6 +195,13 @@ module LLVM_ExecutionEngine { } +module LLVM_FileCheck { + requires cplusplus + + umbrella "FileCheck" + module * { export * } +} + // Orc utilities that don't depend only on Support (not ExecutionEngine or // IR). This is a workaround for ExecutionEngine's broken layering, and will // be removed in the future. diff --git a/llvm/lib/CMakeLists.txt b/llvm/lib/CMakeLists.txt index 35d204d..851b89b 100644 --- a/llvm/lib/CMakeLists.txt +++ b/llvm/lib/CMakeLists.txt @@ -3,6 +3,7 @@ add_subdirectory(IR) add_subdirectory(FuzzMutate) +add_subdirectory(FileCheck) add_subdirectory(InterfaceStub) add_subdirectory(IRReader) add_subdirectory(CodeGen) diff --git a/llvm/lib/FileCheck/CMakeLists.txt b/llvm/lib/FileCheck/CMakeLists.txt new file mode 100644 index 0000000..91c80e1 --- /dev/null +++ b/llvm/lib/FileCheck/CMakeLists.txt @@ -0,0 +1,8 @@ +add_llvm_component_library(LLVMFileCheck + FileCheck.cpp + + ADDITIONAL_HEADER_DIRS + "${LLVM_MAIN_INCLUDE_DIR}/llvm/FileCheck" +) + +target_link_libraries(LLVMFileCheck LLVMSupport) diff --git a/llvm/lib/Support/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp similarity index 99% rename from llvm/lib/Support/FileCheck.cpp rename to llvm/lib/FileCheck/FileCheck.cpp index 0cc3a2d..a0371cf 100644 --- a/llvm/lib/Support/FileCheck.cpp +++ b/llvm/lib/FileCheck/FileCheck.cpp @@ -13,7 +13,7 @@ // as well as various unittests. //===----------------------------------------------------------------------===// -#include "llvm/Support/FileCheck.h" +#include "llvm/FileCheck/FileCheck.h" #include "FileCheckImpl.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringSet.h" diff --git a/llvm/lib/Support/FileCheckImpl.h b/llvm/lib/FileCheck/FileCheckImpl.h similarity index 99% rename from llvm/lib/Support/FileCheckImpl.h rename to llvm/lib/FileCheck/FileCheckImpl.h index 7cdeb7c..05b2a52 100644 --- a/llvm/lib/Support/FileCheckImpl.h +++ b/llvm/lib/FileCheck/FileCheckImpl.h @@ -12,13 +12,13 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_LIB_SUPPORT_FILECHECKIMPL_H -#define LLVM_LIB_SUPPORT_FILECHECKIMPL_H +#ifndef LLVM_LIB_FILECHECK_FILECHECKIMPL_H +#define LLVM_LIB_FILECHECK_FILECHECKIMPL_H -#include "llvm/Support/FileCheck.h" #include "llvm/ADT/Optional.h" #include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringRef.h" +#include "llvm/FileCheck/FileCheck.h" #include "llvm/Support/Error.h" #include "llvm/Support/SourceMgr.h" #include diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt index 5e0d43b..9eefea5 100644 --- a/llvm/lib/Support/CMakeLists.txt +++ b/llvm/lib/Support/CMakeLists.txt @@ -134,7 +134,6 @@ add_llvm_component_library(LLVMSupport Error.cpp ErrorHandling.cpp ExtensibleRTTI.cpp - FileCheck.cpp FileCollector.cpp FileUtilities.cpp FileOutputBuffer.cpp diff --git a/llvm/unittests/CMakeLists.txt b/llvm/unittests/CMakeLists.txt index 850bc14..4076642 100644 --- a/llvm/unittests/CMakeLists.txt +++ b/llvm/unittests/CMakeLists.txt @@ -24,6 +24,7 @@ add_subdirectory(CodeGen) add_subdirectory(DebugInfo) add_subdirectory(Demangle) add_subdirectory(ExecutionEngine) +add_subdirectory(FileCheck) add_subdirectory(Frontend) add_subdirectory(FuzzMutate) add_subdirectory(InterfaceStub) diff --git a/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt b/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt index 7ca77b9..4b27821 100644 --- a/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt +++ b/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt @@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} CodeGen Core + FileCheck GlobalISel MC MIRParser diff --git a/llvm/unittests/CodeGen/GlobalISel/GISelMITest.h b/llvm/unittests/CodeGen/GlobalISel/GISelMITest.h index db3f2b9..336915c 100644 --- a/llvm/unittests/CodeGen/GlobalISel/GISelMITest.h +++ b/llvm/unittests/CodeGen/GlobalISel/GISelMITest.h @@ -21,8 +21,8 @@ #include "llvm/CodeGen/TargetInstrInfo.h" #include "llvm/CodeGen/TargetLowering.h" #include "llvm/CodeGen/TargetSubtargetInfo.h" +#include "llvm/FileCheck/FileCheck.h" #include "llvm/InitializePasses.h" -#include "llvm/Support/FileCheck.h" #include "llvm/Support/SourceMgr.h" #include "llvm/Support/TargetRegistry.h" #include "llvm/Support/TargetSelect.h" diff --git a/llvm/unittests/FileCheck/CMakeLists.txt b/llvm/unittests/FileCheck/CMakeLists.txt new file mode 100644 index 0000000..7fe4f0c --- /dev/null +++ b/llvm/unittests/FileCheck/CMakeLists.txt @@ -0,0 +1,10 @@ +set(LLVM_LINK_COMPONENTS + FileCheck + Support +) + +add_llvm_unittest(FileCheckTests + FileCheckTest.cpp +) + +target_link_libraries(FileCheckTests PRIVATE LLVMTestingSupport) diff --git a/llvm/unittests/Support/FileCheckTest.cpp b/llvm/unittests/FileCheck/FileCheckTest.cpp similarity index 99% rename from llvm/unittests/Support/FileCheckTest.cpp rename to llvm/unittests/FileCheck/FileCheckTest.cpp index e986c434..c5eaa5f 100644 --- a/llvm/unittests/Support/FileCheckTest.cpp +++ b/llvm/unittests/FileCheck/FileCheckTest.cpp @@ -1,4 +1,4 @@ -//===- llvm/unittest/Support/FileCheckTest.cpp - FileCheck tests --===// +//===- llvm/unittest/FileCheck/FileCheckTest.cpp - FileCheck tests --------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -6,8 +6,8 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/FileCheck.h" -#include "../lib/Support/FileCheckImpl.h" +#include "llvm/FileCheck/FileCheck.h" +#include "../lib/FileCheck/FileCheckImpl.h" #include "llvm/Support/Regex.h" #include "llvm/Testing/Support/Error.h" #include "gtest/gtest.h" diff --git a/llvm/unittests/Support/CMakeLists.txt b/llvm/unittests/Support/CMakeLists.txt index 19fabfe..30de294 100644 --- a/llvm/unittests/Support/CMakeLists.txt +++ b/llvm/unittests/Support/CMakeLists.txt @@ -33,7 +33,6 @@ add_llvm_unittest(SupportTests ErrorOrTest.cpp ErrorTest.cpp ExtensibleRTTITest.cpp - FileCheckTest.cpp FileCollectorTest.cpp FileOutputBufferTest.cpp FileUtilitiesTest.cpp diff --git a/llvm/utils/FileCheck/CMakeLists.txt b/llvm/utils/FileCheck/CMakeLists.txt index 32e948a..d170343 100644 --- a/llvm/utils/FileCheck/CMakeLists.txt +++ b/llvm/utils/FileCheck/CMakeLists.txt @@ -2,4 +2,4 @@ add_llvm_utility(FileCheck FileCheck.cpp ) -target_link_libraries(FileCheck PRIVATE LLVMSupport) +target_link_libraries(FileCheck PRIVATE LLVMFileCheck LLVMSupport) diff --git a/llvm/utils/FileCheck/FileCheck.cpp b/llvm/utils/FileCheck/FileCheck.cpp index 81889b2..66b0a97 100644 --- a/llvm/utils/FileCheck/FileCheck.cpp +++ b/llvm/utils/FileCheck/FileCheck.cpp @@ -15,12 +15,12 @@ // //===----------------------------------------------------------------------===// +#include "llvm/FileCheck/FileCheck.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/InitLLVM.h" #include "llvm/Support/Process.h" #include "llvm/Support/WithColor.h" #include "llvm/Support/raw_ostream.h" -#include "llvm/Support/FileCheck.h" #include using namespace llvm; diff --git a/llvm/utils/gn/secondary/llvm/lib/FileCheck/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/FileCheck/BUILD.gn new file mode 100644 index 0000000..af211df3 --- /dev/null +++ b/llvm/utils/gn/secondary/llvm/lib/FileCheck/BUILD.gn @@ -0,0 +1,7 @@ +static_library("FileCheck") { + output_name = "LLVMFileCheck" + deps = [ "//llvm/lib/Support" ] + sources = [ + "FileCheck.cpp", + ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn index 93270c2..150847a 100644 --- a/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn @@ -71,7 +71,6 @@ static_library("Support") { "Error.cpp", "ErrorHandling.cpp", "ExtensibleRTTI.cpp", - "FileCheck.cpp", "FileCollector.cpp", "FileOutputBuffer.cpp", "FileUtilities.cpp", diff --git a/llvm/utils/gn/secondary/llvm/unittests/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/BUILD.gn index 5a23567..ae233fd 100644 --- a/llvm/utils/gn/secondary/llvm/unittests/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/unittests/BUILD.gn @@ -20,6 +20,7 @@ group("unittests") { "ExecutionEngine/JITLink:JITLinkTests", "ExecutionEngine/MCJIT:MCJITTests", "ExecutionEngine/Orc:OrcJITTests", + "FileCheck:FileCheckTests", "Frontend:LLVMFrontendTests", "FuzzMutate:FuzzMutateTests", "IR:IRTests", diff --git a/llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn index 5104716..7933f8c 100644 --- a/llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn @@ -5,6 +5,7 @@ unittest("GlobalISelTests") { "//llvm/lib/CodeGen", "//llvm/lib/CodeGen/GlobalISel", "//llvm/lib/CodeGen/MIRParser", + "//llvm/lib/FileCheck", "//llvm/lib/IR", "//llvm/lib/MC", "//llvm/lib/Support", diff --git a/llvm/utils/gn/secondary/llvm/unittests/FileCheck/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/FileCheck/BUILD.gn new file mode 100644 index 0000000..85eef06 --- /dev/null +++ b/llvm/utils/gn/secondary/llvm/unittests/FileCheck/BUILD.gn @@ -0,0 +1,9 @@ +import("//llvm/utils/unittest/unittest.gni") + +unittest("FileCheckTests") { + deps = [ + "//llvm/lib/FileCheck", + "//llvm/lib/Support", + ] + sources = [ "FileCheckTest.cpp" ] +} diff --git a/llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn index be757fe..f47e5a9 100644 --- a/llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn @@ -36,7 +36,6 @@ unittest("SupportTests") { "ErrorOrTest.cpp", "ErrorTest.cpp", "ExtensibleRTTITest.cpp", - "FileCheckTest.cpp", "FileCollectorTest.cpp", "FileOutputBufferTest.cpp", "FileUtilitiesTest.cpp",