diff --git a/llvm/docs/WritingAnLLVMNewPMPass.rst b/llvm/docs/WritingAnLLVMNewPMPass.rst index ad8a9d5a19268f..6a8d3c90b30e89 100644 --- a/llvm/docs/WritingAnLLVMNewPMPass.rst +++ b/llvm/docs/WritingAnLLVMNewPMPass.rst @@ -48,20 +48,11 @@ Setting up the build First, configure and build LLVM as described in :doc:`GettingStarted`. Next, we will reuse an existing directory (creating a new directory involves -modifying more ``CMakeLists.txt``s than we want). For -this example, we'll use ``llvm/lib/Transforms/HelloNew/HelloWorld.cpp``, -which has already been created. If you'd like to create your own pass, add a -new source file into ``llvm/lib/Transforms/HelloNew/CMakeLists.txt`` under -``HelloWorld.cpp``: - -.. code-block:: cmake - - add_llvm_component_library(LLVMHelloWorld - HelloWorld.cpp - - DEPENDS - intrinsics_gen - ) +messing around with more CMake files than we want). For this example, we'll use +``llvm/lib/Transforms/Utils/HelloWorld.cpp``, which has already been created. +If you'd like to create your own pass, add a new source file into +``llvm/lib/Transforms/Utils/CMakeLists.txt`` (assuming you want your pass in +the ``Transforms/Utils`` directory. Now that we have the build set up for a new pass, we need to write the code for the pass itself. @@ -74,7 +65,7 @@ Basic code required Now that the build is setup for a new pass, we just have to write it. First we need to define the pass in a header file. We'll create -``llvm/include/llvm/Transforms/HelloNew/HelloWorld.h``. The file should +``llvm/include/llvm/Transforms/Utils/HelloWorld.h``. The file should contain the following boilerplate: .. code-block:: c++ @@ -102,12 +93,12 @@ sets up some more boilerplate so that we don't have to write it ourselves. Our class is in the ``llvm`` namespace so that we don't pollute the global namespace. -Next we'll create ``llvm/lib/Transforms/HelloNew/HelloWorld.cpp``, starting +Next we'll create ``llvm/lib/Transforms/Utils/HelloWorld.cpp``, starting with .. code-block:: c++ - #include "llvm/Transforms/HelloNew/HelloWorld.h" + #include "llvm/Transforms/Utils/HelloWorld.h" ... to include the header file we just created. @@ -135,7 +126,7 @@ tree) are still valid after this pass since we didn't modify any functions. That's it for the pass itself. Now in order to "register" the pass, we need to add it to a couple places. Add the following to -``llvm\lib\Passes\PassRegistry.def`` in the ``FUNCTION_PASS`` section +``llvm/lib/Passes/PassRegistry.def`` in the ``FUNCTION_PASS`` section .. code-block:: c++ @@ -143,14 +134,14 @@ to add it to a couple places. Add the following to ... which adds the pass under the name "helloworld". -``llvm\lib\Passes\PassRegistry.def`` is #include'd into -``llvm\lib\Passes\PassBuilder.cpp`` multiple times for various reasons. Since +``llvm/lib/Passes/PassRegistry.def`` is #include'd into +``llvm/lib/Passes/PassBuilder.cpp`` multiple times for various reasons. Since it constructs our pass, we need to also add the proper #include in -``llvm\lib\Passes\PassBuilder.cpp``: +``llvm/lib/Passes/PassBuilder.cpp``: .. code-block:: c++ - #include "llvm/Transforms/HelloNew/HelloWorld.h" + #include "llvm/Transforms/Utils/HelloWorld.h" This should be all the code necessary for our pass, now it's time to compile and run it. @@ -186,12 +177,12 @@ Testing a pass -------------- Testing our pass is important to prevent future regressions. We'll add a lit -test at ``llvm/test/Transforms/HelloNew/helloworld.ll``. See +test at ``llvm/test/Transforms/Utils/helloworld.ll``. See :doc:`TestingGuide` for more information on testing. .. code-block:: llvm - $ cat llvm/test/Transforms/HelloNew/helloworld.ll + $ cat llvm/test/Transforms/Utils/helloworld.ll ; RUN: opt -disable-output -passes=helloworld %s 2>&1 | FileCheck %s ; CHECK: {{^}}foo{{$}} diff --git a/llvm/include/llvm/Transforms/HelloNew/HelloWorld.h b/llvm/include/llvm/Transforms/Utils/HelloWorld.h similarity index 100% rename from llvm/include/llvm/Transforms/HelloNew/HelloWorld.h rename to llvm/include/llvm/Transforms/Utils/HelloWorld.h diff --git a/llvm/lib/Passes/CMakeLists.txt b/llvm/lib/Passes/CMakeLists.txt index d834c0db4b458c..f517136223ec1f 100644 --- a/llvm/lib/Passes/CMakeLists.txt +++ b/llvm/lib/Passes/CMakeLists.txt @@ -15,7 +15,6 @@ add_llvm_component_library(LLVMPasses Analysis Core Coroutines - HelloNew IPO InstCombine ObjCARC diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index f801bcd879d373..29c2eb82c3bb95 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -84,7 +84,6 @@ #include "llvm/Transforms/Coroutines/CoroEarly.h" #include "llvm/Transforms/Coroutines/CoroElide.h" #include "llvm/Transforms/Coroutines/CoroSplit.h" -#include "llvm/Transforms/HelloNew/HelloWorld.h" #include "llvm/Transforms/IPO/AlwaysInliner.h" #include "llvm/Transforms/IPO/Annotation2Metadata.h" #include "llvm/Transforms/IPO/ArgumentPromotion.h" @@ -215,6 +214,7 @@ #include "llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h" #include "llvm/Transforms/Utils/EntryExitInstrumenter.h" #include "llvm/Transforms/Utils/FixIrreducible.h" +#include "llvm/Transforms/Utils/HelloWorld.h" #include "llvm/Transforms/Utils/InjectTLIMappings.h" #include "llvm/Transforms/Utils/InstructionNamer.h" #include "llvm/Transforms/Utils/LCSSA.h" diff --git a/llvm/lib/Transforms/CMakeLists.txt b/llvm/lib/Transforms/CMakeLists.txt index 2a0abebdf19b51..dda5f6de11e326 100644 --- a/llvm/lib/Transforms/CMakeLists.txt +++ b/llvm/lib/Transforms/CMakeLists.txt @@ -6,7 +6,6 @@ add_subdirectory(Scalar) add_subdirectory(IPO) add_subdirectory(Vectorize) add_subdirectory(Hello) -add_subdirectory(HelloNew) add_subdirectory(ObjCARC) add_subdirectory(Coroutines) add_subdirectory(CFGuard) diff --git a/llvm/lib/Transforms/HelloNew/CMakeLists.txt b/llvm/lib/Transforms/HelloNew/CMakeLists.txt deleted file mode 100644 index 76ac8ada6e3292..00000000000000 --- a/llvm/lib/Transforms/HelloNew/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -add_llvm_component_library(LLVMHelloNew - HelloWorld.cpp - - DEPENDS - intrinsics_gen - - LINK_COMPONENTS - Core - Support - ) diff --git a/llvm/lib/Transforms/Utils/CMakeLists.txt b/llvm/lib/Transforms/Utils/CMakeLists.txt index b3bdc192a877f5..30c9a3daa90b14 100644 --- a/llvm/lib/Transforms/Utils/CMakeLists.txt +++ b/llvm/lib/Transforms/Utils/CMakeLists.txt @@ -27,6 +27,7 @@ add_llvm_component_library(LLVMTransformUtils FunctionImportUtils.cpp GlobalStatus.cpp GuardUtils.cpp + HelloWorld.cpp InlineFunction.cpp InjectTLIMappings.cpp InstructionNamer.cpp diff --git a/llvm/lib/Transforms/HelloNew/HelloWorld.cpp b/llvm/lib/Transforms/Utils/HelloWorld.cpp similarity index 92% rename from llvm/lib/Transforms/HelloNew/HelloWorld.cpp rename to llvm/lib/Transforms/Utils/HelloWorld.cpp index dea94f8a8f6276..7019e9e4451b2f 100644 --- a/llvm/lib/Transforms/HelloNew/HelloWorld.cpp +++ b/llvm/lib/Transforms/Utils/HelloWorld.cpp @@ -6,7 +6,7 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Transforms/HelloNew/HelloWorld.h" +#include "llvm/Transforms/Utils/HelloWorld.h" using namespace llvm; diff --git a/llvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn index bb8a671dd6a7d0..9afe48db159b2d 100644 --- a/llvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn @@ -8,7 +8,6 @@ static_library("Passes") { "//llvm/lib/Target", "//llvm/lib/Transforms/AggressiveInstCombine", "//llvm/lib/Transforms/Coroutines", - "//llvm/lib/Transforms/HelloNew", "//llvm/lib/Transforms/IPO", "//llvm/lib/Transforms/InstCombine", "//llvm/lib/Transforms/Instrumentation", diff --git a/llvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn deleted file mode 100644 index 5e6167324a4aef..00000000000000 --- a/llvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn +++ /dev/null @@ -1,9 +0,0 @@ -static_library("HelloNew") { - output_name = "LLVMHelloNew" - deps = [ - "//llvm/lib/Analysis", - "//llvm/lib/IR", - "//llvm/lib/Support", - ] - sources = [ "HelloWorld.cpp" ] -} diff --git a/llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn index efdded38c7c270..a7cae6b4b88994 100644 --- a/llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn @@ -34,6 +34,7 @@ static_library("Utils") { "FunctionImportUtils.cpp", "GlobalStatus.cpp", "GuardUtils.cpp", + "HelloWorld.cpp", "InjectTLIMappings.cpp", "InlineFunction.cpp", "InstructionNamer.cpp",