diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index c31980a47f39b..81f2753a4edd8 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -653,9 +653,6 @@ option(LLVM_USE_OPROFILE option(LLVM_EXTERNALIZE_DEBUGINFO "Generate dSYM files and strip executables and libraries (Darwin Only)" OFF) -option(LLVM_EXPERIMENTAL_DEBUGINFO_ITERATORS - "Add extra Booleans to ilist_iterators to communicate facts for debug-info" ON) - set(LLVM_CODESIGNING_IDENTITY "" CACHE STRING "Sign executables and dylibs with the given identity or skip if empty (Darwin Only)") diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 0699a8586fcc7..486df22c2c1bb 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -140,10 +140,6 @@ if(LLVM_ENABLE_EXPENSIVE_CHECKS) endif() endif() -if(LLVM_EXPERIMENTAL_DEBUGINFO_ITERATORS) - add_compile_definitions(EXPERIMENTAL_DEBUGINFO_ITERATORS) -endif() - if (LLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS) add_compile_definitions(STRICT_FIXED_SIZE_VECTORS) endif() diff --git a/llvm/include/llvm/ADT/ilist_iterator.h b/llvm/include/llvm/ADT/ilist_iterator.h index 9047b9b73959e..2393c4d2c403c 100644 --- a/llvm/include/llvm/ADT/ilist_iterator.h +++ b/llvm/include/llvm/ADT/ilist_iterator.h @@ -202,17 +202,12 @@ class ilist_iterator_w_bits : ilist_detail::SpecificNodeAccess { node_pointer NodePtr = nullptr; -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS - // (Default: Off) Allow extra position-information flags to be stored - // in iterators, in aid of removing debug-info intrinsics from LLVM. - /// Is this position intended to contain any debug-info immediately before /// the position? mutable bool HeadInclusiveBit = false; /// Is this position intended to contain any debug-info immediately after /// the position? mutable bool TailInclusiveBit = false; -#endif public: /// Create from an ilist_node. @@ -231,10 +226,8 @@ class ilist_iterator_w_bits : ilist_detail::SpecificNodeAccess { const ilist_iterator_w_bits &RHS, std::enable_if_t = nullptr) : NodePtr(RHS.NodePtr) { -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS HeadInclusiveBit = RHS.HeadInclusiveBit; TailInclusiveBit = RHS.TailInclusiveBit; -#endif } // This is templated so that we can allow assigning to a const iterator from @@ -243,10 +236,8 @@ class ilist_iterator_w_bits : ilist_detail::SpecificNodeAccess { std::enable_if_t operator=(const ilist_iterator_w_bits &RHS) { NodePtr = RHS.NodePtr; -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS HeadInclusiveBit = RHS.HeadInclusiveBit; TailInclusiveBit = RHS.TailInclusiveBit; -#endif return *this; } @@ -280,10 +271,8 @@ class ilist_iterator_w_bits : ilist_detail::SpecificNodeAccess { const_cast::node_reference>( *NodePtr)); -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS New.HeadInclusiveBit = HeadInclusiveBit; New.TailInclusiveBit = TailInclusiveBit; -#endif return New; } return ilist_iterator_w_bits(); @@ -309,18 +298,14 @@ class ilist_iterator_w_bits : ilist_detail::SpecificNodeAccess { // Increment and decrement operators... ilist_iterator_w_bits &operator--() { NodePtr = IsReverse ? NodePtr->getNext() : NodePtr->getPrev(); -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS HeadInclusiveBit = false; TailInclusiveBit = false; -#endif return *this; } ilist_iterator_w_bits &operator++() { NodePtr = IsReverse ? NodePtr->getPrev() : NodePtr->getNext(); -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS HeadInclusiveBit = false; TailInclusiveBit = false; -#endif return *this; } ilist_iterator_w_bits operator--(int) { @@ -340,18 +325,10 @@ class ilist_iterator_w_bits : ilist_detail::SpecificNodeAccess { /// Check for end. Only valid if ilist_sentinel_tracking. bool isEnd() const { return NodePtr ? NodePtr->isSentinel() : false; } -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS bool getHeadBit() const { return HeadInclusiveBit; } bool getTailBit() const { return TailInclusiveBit; } void setHeadBit(bool SetBit) const { HeadInclusiveBit = SetBit; } void setTailBit(bool SetBit) const { TailInclusiveBit = SetBit; } -#else - // Store and return no information if we're not using this feature. - bool getHeadBit() const { return false; } - bool getTailBit() const { return false; } - void setHeadBit(bool SetBit) const { (void)SetBit; } - void setTailBit(bool SetBit) const { (void)SetBit; } -#endif }; template struct simplify_type; diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp index 3e2567c441df5..b292f70ba89de 100644 --- a/llvm/tools/llc/llc.cpp +++ b/llvm/tools/llc/llc.cpp @@ -365,15 +365,11 @@ int main(int argc, char **argv) { } // RemoveDIs debug-info transition: tests may request that we /try/ to use the - // new debug-info format, if it's built in. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS + // new debug-info format. if (TryUseNewDbgInfoFormat) { - // If LLVM was built with support for this, turn the new debug-info format - // on. + // Turn the new debug-info format on. UseNewDbgInfoFormat = true; } -#endif - (void)TryUseNewDbgInfoFormat; if (TimeTrace) timeTraceProfilerInitialize(TimeTraceGranularity, argv[0]); diff --git a/llvm/tools/llvm-link/llvm-link.cpp b/llvm/tools/llvm-link/llvm-link.cpp index d50e0678f4610..e6c219a8cd7ec 100644 --- a/llvm/tools/llvm-link/llvm-link.cpp +++ b/llvm/tools/llvm-link/llvm-link.cpp @@ -473,15 +473,11 @@ int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, "llvm linker\n"); // RemoveDIs debug-info transition: tests may request that we /try/ to use the - // new debug-info format, if it's built in. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS + // new debug-info format. if (TryUseNewDbgInfoFormat) { - // If LLVM was built with support for this, turn the new debug-info format - // on. + // Turn the new debug-info format on. UseNewDbgInfoFormat = true; } -#endif - (void)TryUseNewDbgInfoFormat; LLVMContext Context; Context.setDiagnosticHandler(std::make_unique(), diff --git a/llvm/tools/llvm-lto/llvm-lto.cpp b/llvm/tools/llvm-lto/llvm-lto.cpp index f27281438282b..7943d6952b828 100644 --- a/llvm/tools/llvm-lto/llvm-lto.cpp +++ b/llvm/tools/llvm-lto/llvm-lto.cpp @@ -945,15 +945,11 @@ int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, "llvm LTO linker\n"); // RemoveDIs debug-info transition: tests may request that we /try/ to use the - // new debug-info format, if it's built in. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS + // new debug-info format. if (TryUseNewDbgInfoFormat) { - // If LLVM was built with support for this, turn the new debug-info format - // on. + // Turn the new debug-info format on. UseNewDbgInfoFormat = true; } -#endif - (void)TryUseNewDbgInfoFormat; if (OptLevel < '0' || OptLevel > '3') error("optimization level must be between 0 and 3"); diff --git a/llvm/tools/llvm-lto2/llvm-lto2.cpp b/llvm/tools/llvm-lto2/llvm-lto2.cpp index c212374a0eccb..d5de4f6b1a277 100644 --- a/llvm/tools/llvm-lto2/llvm-lto2.cpp +++ b/llvm/tools/llvm-lto2/llvm-lto2.cpp @@ -230,15 +230,11 @@ static int run(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, "Resolution-based LTO test harness"); // RemoveDIs debug-info transition: tests may request that we /try/ to use the - // new debug-info format, if it's built in. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS + // new debug-info format. if (TryUseNewDbgInfoFormat) { - // If LLVM was built with support for this, turn the new debug-info format - // on. + // Turn the new debug-info format on. UseNewDbgInfoFormat = true; } -#endif - (void)TryUseNewDbgInfoFormat; // FIXME: Workaround PR30396 which means that a symbol can appear // more than once if it is defined in module-level assembly and diff --git a/llvm/tools/llvm-reduce/llvm-reduce.cpp b/llvm/tools/llvm-reduce/llvm-reduce.cpp index 71ce0ca5ab6ab..f913771487afe 100644 --- a/llvm/tools/llvm-reduce/llvm-reduce.cpp +++ b/llvm/tools/llvm-reduce/llvm-reduce.cpp @@ -151,15 +151,11 @@ int main(int Argc, char **Argv) { cl::ParseCommandLineOptions(Argc, Argv, "LLVM automatic testcase reducer.\n"); // RemoveDIs debug-info transition: tests may request that we /try/ to use the - // new debug-info format, if it's built in. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS + // new debug-info format. if (TryUseNewDbgInfoFormat) { - // If LLVM was built with support for this, turn the new debug-info format - // on. + // Turn the new debug-info format on. UseNewDbgInfoFormat = true; } -#endif - (void)TryUseNewDbgInfoFormat; if (Argc == 1) { cl::PrintHelpMessage(); diff --git a/llvm/tools/opt/optdriver.cpp b/llvm/tools/opt/optdriver.cpp index 3f66bfc9f0176..85f52941a85b4 100644 --- a/llvm/tools/opt/optdriver.cpp +++ b/llvm/tools/opt/optdriver.cpp @@ -462,15 +462,11 @@ extern "C" int optMain( argc, argv, "llvm .bc -> .bc modular optimizer and analysis printer\n"); // RemoveDIs debug-info transition: tests may request that we /try/ to use the - // new debug-info format, if it's built in. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS + // new debug-info format. if (TryUseNewDbgInfoFormat) { - // If LLVM was built with support for this, turn the new debug-info format - // on. + // Turn the new debug-info format on. UseNewDbgInfoFormat = true; } -#endif - (void)TryUseNewDbgInfoFormat; LLVMContext Context; diff --git a/llvm/unittests/ADT/IListIteratorBitsTest.cpp b/llvm/unittests/ADT/IListIteratorBitsTest.cpp index 167b30a5e3085..8ae73b1ed5f78 100644 --- a/llvm/unittests/ADT/IListIteratorBitsTest.cpp +++ b/llvm/unittests/ADT/IListIteratorBitsTest.cpp @@ -55,10 +55,8 @@ TEST(IListIteratorBitsTest, ConsAndAssignment) { simple_ilist>::iterator I, I2; -// Two sets of tests: if we've compiled in the iterator bits, then check that -// HeadInclusiveBit and TailInclusiveBit are preserved on assignment and copy -// construction, but not on other operations. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS + // Check that HeadInclusiveBit and TailInclusiveBit are preserved on + // assignment and copy construction, but not on other operations. I = L.begin(); EXPECT_FALSE(I.getHeadBit()); EXPECT_FALSE(I.getTailBit()); @@ -85,18 +83,6 @@ TEST(IListIteratorBitsTest, ConsAndAssignment) { simple_ilist>::iterator I3(I); EXPECT_TRUE(I3.getHeadBit()); EXPECT_TRUE(I3.getTailBit()); -#else - // The calls should be available, but shouldn't actually store information. - I = L.begin(); - EXPECT_FALSE(I.getHeadBit()); - EXPECT_FALSE(I.getTailBit()); - I.setHeadBit(true); - I.setTailBit(true); - EXPECT_FALSE(I.getHeadBit()); - EXPECT_FALSE(I.getTailBit()); - // Suppress warnings as we don't test with this variable. - (void)I2; -#endif } class dummy { diff --git a/llvm/unittests/IR/BasicBlockDbgInfoTest.cpp b/llvm/unittests/IR/BasicBlockDbgInfoTest.cpp index ef2b288d859a7..53b191c688384 100644 --- a/llvm/unittests/IR/BasicBlockDbgInfoTest.cpp +++ b/llvm/unittests/IR/BasicBlockDbgInfoTest.cpp @@ -27,11 +27,6 @@ using namespace llvm; extern cl::opt UseNewDbgInfoFormat; -// None of these tests are meaningful or do anything if we do not have the -// experimental "head" bit compiled into ilist_iterator (aka -// ilist_iterator_w_bits), thus there's no point compiling these tests in. -#ifdef EXPERIMENTAL_DEBUGINFO_ITERATORS - static std::unique_ptr parseIR(LLVMContext &C, const char *IR) { SMDiagnostic Err; std::unique_ptr Mod = parseAssemblyString(IR, Err, C); @@ -1535,4 +1530,3 @@ TEST(BasicBlockDbgInfoTest, DbgMoveToEnd) { } } // End anonymous namespace. -#endif // EXPERIMENTAL_DEBUGINFO_ITERATORS