[compiler-rt] 1c7c6f2 - Revert "[ORC-RT] Add unit test infrastructure, extensible_rtti..."
Lang Hames via llvm-commits
llvm-commits at lists.llvm.org
Tue May 11 09:51:44 PDT 2021
Author: Lang Hames
Date: 2021-05-11T09:51:12-07:00
New Revision: 1c7c6f2b106250d63905d7cde99a4559f0bb4978
URL: https://github.com/llvm/llvm-project/commit/1c7c6f2b106250d63905d7cde99a4559f0bb4978
DIFF: https://github.com/llvm/llvm-project/commit/1c7c6f2b106250d63905d7cde99a4559f0bb4978.diff
LOG: Revert "[ORC-RT] Add unit test infrastructure, extensible_rtti..."
This reverts commit 6d263b6f1c9 while I investigate the CMake failures that it
causes in some configurations.
Added:
compiler-rt/lib/orc/placeholder.cpp
Modified:
compiler-rt/cmake/config-ix.cmake
compiler-rt/lib/orc/CMakeLists.txt
Removed:
compiler-rt/lib/orc/extensible_rtti.cpp
compiler-rt/lib/orc/extensible_rtti.h
compiler-rt/lib/orc/unittests/CMakeLists.txt
compiler-rt/lib/orc/unittests/extensible_rtti_test.cpp
compiler-rt/lib/orc/unittests/orc_unit_test_main.cpp
################################################################################
diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake
index eea34b60895f6..d6ce36709ca59 100644
--- a/compiler-rt/cmake/config-ix.cmake
+++ b/compiler-rt/cmake/config-ix.cmake
@@ -343,7 +343,7 @@ set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} powe
endif()
set(ALL_SHADOWCALLSTACK_SUPPORTED_ARCH ${ARM64})
-if (UNIX)
+if (APPLE)
set(ALL_ORC_SUPPORTED_ARCH ${X86_64})
endif()
diff --git a/compiler-rt/lib/orc/CMakeLists.txt b/compiler-rt/lib/orc/CMakeLists.txt
index 3c7d5876cd327..4007a46ca4661 100644
--- a/compiler-rt/lib/orc/CMakeLists.txt
+++ b/compiler-rt/lib/orc/CMakeLists.txt
@@ -2,7 +2,7 @@
# ORC runtime library implementation files.
set(ORC_SOURCES
- extensible_rtti.cpp
+ placeholder.cpp
)
# Implementation files for all ORC architectures.
@@ -12,7 +12,6 @@ set(x86_64_SOURCES
set(ORC_IMPL_HEADERS
# Implementation headers will go here.
- extensible_rtti.h
)
# Create list of all source files for
@@ -71,7 +70,7 @@ else() # not Apple
ARCHS ${arch}
SOURCES ${ORC_SOURCES} ${${arch}_SOURCES}
ADDITIONAL_HEADERS ${ORC_IMPL_HEADERS}
- CFLAGS ${ORC_CFLAGS}
+ CFLAGS $ORC_CFLAGS}
DEPS ${ORC_DEPS})
# Common ORC archive for instrumented binaries.
@@ -83,7 +82,3 @@ else() # not Apple
PARENT_TARGET orc)
endforeach()
endif() # not Apple
-
-if(COMPILER_RT_INCLUDE_TESTS)
- add_subdirectory(unittests)
-endif()
diff --git a/compiler-rt/lib/orc/extensible_rtti.cpp b/compiler-rt/lib/orc/extensible_rtti.cpp
deleted file mode 100644
index c6951a449a3d9..0000000000000
--- a/compiler-rt/lib/orc/extensible_rtti.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//===- extensible_rtti.cpp ------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file is a part of the ORC runtime support library.
-//
-// Note:
-// This source file was adapted from lib/Support/ExtensibleRTTI.cpp, however
-// the data structures are not shared and the code need not be kept in sync.
-//
-//===----------------------------------------------------------------------===//
-
-#include "extensible_rtti.h"
-
-namespace __orc_rt {
-
-char RTTIRoot::ID = 0;
-void RTTIRoot::anchor() {}
-
-} // end namespace __orc_rt
diff --git a/compiler-rt/lib/orc/extensible_rtti.h b/compiler-rt/lib/orc/extensible_rtti.h
deleted file mode 100644
index 72f68242e7c45..0000000000000
--- a/compiler-rt/lib/orc/extensible_rtti.h
+++ /dev/null
@@ -1,145 +0,0 @@
-//===------ extensible_rtti.h - Extensible RTTI for ORC RT ------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// \file
-//
-// Provides an extensible RTTI mechanism, that can be used regardless of whether
-// the runtime is built with -frtti or not. This is predominantly used to
-// support error handling.
-//
-// The RTTIRoot class defines methods for comparing type ids. Implementations
-// of these methods can be injected into new classes using the RTTIExtends
-// class template.
-//
-// E.g.
-//
-// @code{.cpp}
-// class MyBaseClass : public RTTIExtends<MyBaseClass, RTTIRoot> {
-// public:
-// static char ID;
-// virtual void foo() = 0;
-// };
-//
-// class MyDerivedClass1 : public RTTIExtends<MyDerivedClass1, MyBaseClass> {
-// public:
-// static char ID;
-// void foo() override {}
-// };
-//
-// class MyDerivedClass2 : public RTTIExtends<MyDerivedClass2, MyBaseClass> {
-// public:
-// static char ID;
-// void foo() override {}
-// };
-//
-// char MyBaseClass::ID = 0;
-// char MyDerivedClass1::ID = 0;
-// char MyDerivedClass2:: ID = 0;
-//
-// void fn() {
-// std::unique_ptr<MyBaseClass> B = std::make_unique<MyDerivedClass1>();
-// outs() << isa<MyBaseClass>(B) << "\n"; // Outputs "1".
-// outs() << isa<MyDerivedClass1>(B) << "\n"; // Outputs "1".
-// outs() << isa<MyDerivedClass2>(B) << "\n"; // Outputs "0'.
-// }
-//
-// @endcode
-//
-// Note:
-// This header was adapted from llvm/Support/ExtensibleRTTI.h, however the
-// data structures are not shared and the code need not be kept in sync.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ORC_RT_EXTENSIBLE_RTTI_H
-#define ORC_RT_EXTENSIBLE_RTTI_H
-
-namespace __orc_rt {
-
-template <typename ThisT, typename ParentT> class RTTIExtends;
-
-/// Base class for the extensible RTTI hierarchy.
-///
-/// This class defines virtual methods, dynamicClassID and isA, that enable
-/// type comparisons.
-class RTTIRoot {
-public:
- virtual ~RTTIRoot() = default;
-
- /// Returns the class ID for this type.
- static const void *classID() { return &ID; }
-
- /// Returns the class ID for the dynamic type of this RTTIRoot instance.
- virtual const void *dynamicClassID() const = 0;
-
- /// Returns true if this class's ID matches the given class ID.
- virtual bool isA(const void *const ClassID) const {
- return ClassID == classID();
- }
-
- /// Check whether this instance is a subclass of QueryT.
- template <typename QueryT> bool isA() const { return isA(QueryT::classID()); }
-
- static bool classof(const RTTIRoot *R) { return R->isA<RTTIRoot>(); }
-
-private:
- virtual void anchor();
-
- static char ID;
-};
-
-/// Inheritance utility for extensible RTTI.
-///
-/// Supports single inheritance only: A class can only have one
-/// ExtensibleRTTI-parent (i.e. a parent for which the isa<> test will work),
-/// though it can have many non-ExtensibleRTTI parents.
-///
-/// RTTIExtents uses CRTP so the first template argument to RTTIExtends is the
-/// newly introduced type, and the *second* argument is the parent class.
-///
-/// class MyType : public RTTIExtends<MyType, RTTIRoot> {
-/// public:
-/// static char ID;
-/// };
-///
-/// class MyDerivedType : public RTTIExtends<MyDerivedType, MyType> {
-/// public:
-/// static char ID;
-/// };
-///
-template <typename ThisT, typename ParentT> class RTTIExtends : public ParentT {
-public:
- // Inherit constructors and isA methods from ParentT.
- using ParentT::isA;
- using ParentT::ParentT;
-
- static char ID;
-
- static const void *classID() { return &ThisT::ID; }
-
- const void *dynamicClassID() const override { return &ThisT::ID; }
-
- bool isA(const void *const ClassID) const override {
- return ClassID == classID() || ParentT::isA(ClassID);
- }
-
- static bool classof(const RTTIRoot *R) { return R->isA<ThisT>(); }
-};
-
-template <typename ThisT, typename ParentT>
-char RTTIExtends<ThisT, ParentT>::ID = 0;
-
-/// Returns true if the given value is an instance of the template type
-/// parameter.
-template <typename To, typename From> bool isa(const From &Value) {
- return To::classof(&Value);
-}
-
-} // end namespace __orc_rt
-
-#endif // ORC_RT_EXTENSIBLE_RTTI_H
diff --git a/compiler-rt/lib/orc/placeholder.cpp b/compiler-rt/lib/orc/placeholder.cpp
new file mode 100644
index 0000000000000..c832f6007a7d1
--- /dev/null
+++ b/compiler-rt/lib/orc/placeholder.cpp
@@ -0,0 +1 @@
+void placeholder(void) {}
diff --git a/compiler-rt/lib/orc/unittests/CMakeLists.txt b/compiler-rt/lib/orc/unittests/CMakeLists.txt
deleted file mode 100644
index 3e6cc64c1144e..0000000000000
--- a/compiler-rt/lib/orc/unittests/CMakeLists.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-include_directories(..)
-
-add_custom_target(OrcRTUnitTests)
-set_target_properties(OrcRTUnitTests PROPERTIES FOLDER "OrcRT unittests")
-
-set(ORC_UNITTEST_CFLAGS
- ${ORC_CFLAGS}
- ${COMPILER_RT_UNITTEST_CFLAGS}
- ${COMPILER_RT_GTEST_CFLAGS}
- -I${COMPILER_RT_SOURCE_DIR}/lib/orc
- )
-
-# We add the include directories one at a time in our CFLAGS.
-foreach (DIR ${LLVM_INCLUDE_DIR} ${LLVM_MAIN_INCLUDE_DIR})
- list(APPEND ORC_UNITTEST_CFLAGS -I${DIR})
-endforeach()
-
-function(add_orc_lib library)
- add_library(${library} STATIC ${ARGN})
- set_target_properties(${library} PROPERTIES
- ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- FOLDER "Compiler-RT Runtime tests")
-endfunction()
-
-function(get_orc_lib_for_arch arch lib)
- if(APPLE)
- set(tgt_name "RTOrc.test.osx")
- else()
- set(tgt_name "RTOrc.test.${arch}")
- endif()
- set(${lib} "${tgt_name}" PARENT_SCOPE)
-endfunction()
-
-set(ORC_TEST_ARCH ${ORC_SUPPORTED_ARCH})
-set(ORC_UNITTEST_LINK_FLAGS
- ${COMPILER_RT_UNITTEST_LINK_FLAGS}
- ${CMAKE_THREAD_LIBS_INIT}
- )
-
-if(APPLE)
- darwin_filter_host_archs(ORC_SUPPORTED_ARCH ORC_TEST_ARCH)
- list(APPEND ORC_UNITTEST_CFLAGS ${DARWIN_osx_CFLAGS})
- list(APPEND ORC_UNITTEST_LINK_FLAGS ${DARWIN_osx_LINK_FLAGS})
-else()
- append_list_if(COMPILER_RT_HAS_LIBM -lm ORC_UNITTEST_LINK_FLAGS)
- append_list_if(COMPILER_RT_HAS_LIBRT -lrt ORC_UNITTEST_LINK_FLAGS)
- append_list_if(COMPILER_RT_HAS_LIBDL -ldl ORC_UNITTEST_LINK_FLAGS)
- append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ORC_UNITTEST_LINK_FLAGS)
- append_list_if(COMPILER_RT_HAS_LIBEXECINFO -lexecinfo ORC_UNITTEST_LINK_FLAGS)
-endif()
-
-foreach(lib ${SANITIZER_TEST_CXX_LIBRARIES})
- list(APPEND ORC_UNITTEST_LINK_FLAGS -l${lib})
-endforeach()
-
-set(ORC_DEPS gtest orc)
-# ORC uses C++ standard library headers.
-if (TARGET cxx-headers OR HAVE_LIBCXX)
- set(ORC_DEPS cxx-headers)
-endif()
-
-macro(add_orc_unittest testname)
- cmake_parse_arguments(TEST "" "" "SOURCES;HEADERS" ${ARGN})
- if(UNIX)
- foreach(arch ${ORC_TEST_ARCH})
- set(TEST_OBJECTS)
- get_orc_lib_for_arch(${arch} ORC_RUNTIME_LIBS)
- generate_compiler_rt_tests(TEST_OBJECTS
- OrcRTUnitTests "${testname}-${arch}-Test" "${arch}"
- SOURCES ${TEST_SOURCES} ${COMPILER_RT_GTEST_SOURCE}
- RUNTIME "${ORC_RUNTIME_LIBS}"
- COMPILE_DEPS ${TEST_HEADERS}
- DEPS ${ORC_DEPS}
- CFLAGS ${ORC_UNITTEST_CFLAGS}
- LINK_FLAGS ${ORC_UNITTEST_LINK_FLAGS})
- endforeach()
- endif()
-endmacro()
-
-set(UNITTEST_SOURCES
- extensible_rtti_test.cpp
- orc_unit_test_main.cpp
- )
-
-if (COMPILER_RT_CAN_EXECUTE_TESTS)
-
- if (APPLE)
- add_orc_lib("RTOrc.test.osx"
- $<TARGET_OBJECTS:RTOrc.osx>)
- else()
- foreach(arch ${ORC_SUPPORTED_ARCH})
- add_orc_lib("RTOrc.test.${arch}"
- $<TARGET_OBJECTS:RTOrc.${arch}>)
- endforeach()
- endif()
-
- add_orc_unittest(OrcUnitTest SOURCES ${UNITTEST_SOURCES})
-
-endif()
diff --git a/compiler-rt/lib/orc/unittests/extensible_rtti_test.cpp b/compiler-rt/lib/orc/unittests/extensible_rtti_test.cpp
deleted file mode 100644
index feca1ec1d18ce..0000000000000
--- a/compiler-rt/lib/orc/unittests/extensible_rtti_test.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===-- extensible_rtti_test.cpp ------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file is a part of the ORC runtime.
-//
-// Note:
-// This unit test was adapted from
-// llvm/unittests/Support/ExtensibleRTTITest.cpp
-//
-//===----------------------------------------------------------------------===//
-
-#include "extensible_rtti.h"
-#include "gtest/gtest.h"
-
-using namespace __orc_rt;
-
-namespace {
-
-class MyBase : public RTTIExtends<MyBase, RTTIRoot> {};
-
-class MyDerivedA : public RTTIExtends<MyDerivedA, MyBase> {};
-
-class MyDerivedB : public RTTIExtends<MyDerivedB, MyBase> {};
-
-} // end anonymous namespace
-
-TEST(ExtensibleRTTITest, BaseCheck) {
- MyBase MB;
- MyDerivedA MDA;
- MyDerivedB MDB;
-
- // Check MB properties.
- EXPECT_TRUE(isa<RTTIRoot>(MB));
- EXPECT_TRUE(isa<MyBase>(MB));
- EXPECT_FALSE(isa<MyDerivedA>(MB));
- EXPECT_FALSE(isa<MyDerivedB>(MB));
-
- // Check MDA properties.
- EXPECT_TRUE(isa<RTTIRoot>(MDA));
- EXPECT_TRUE(isa<MyBase>(MDA));
- EXPECT_TRUE(isa<MyDerivedA>(MDA));
- EXPECT_FALSE(isa<MyDerivedB>(MDA));
-
- // Check MDB properties.
- EXPECT_TRUE(isa<RTTIRoot>(MDB));
- EXPECT_TRUE(isa<MyBase>(MDB));
- EXPECT_FALSE(isa<MyDerivedA>(MDB));
- EXPECT_TRUE(isa<MyDerivedB>(MDB));
-}
diff --git a/compiler-rt/lib/orc/unittests/orc_unit_test_main.cpp b/compiler-rt/lib/orc/unittests/orc_unit_test_main.cpp
deleted file mode 100644
index d02101704d654..0000000000000
--- a/compiler-rt/lib/orc/unittests/orc_unit_test_main.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===-- orc_unit_test_main.cpp --------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file is a part of the ORC runtime.
-//
-//===----------------------------------------------------------------------===//
-#include "gtest/gtest.h"
-
-int main(int argc, char **argv) {
- testing::GTEST_FLAG(death_test_style) = "threadsafe";
- testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
-}
More information about the llvm-commits
mailing list