[NewPM][HelloWorld] Move HelloWorld to Utils
authorArthur Eubanks <aeubanks@google.com>
Wed, 3 Feb 2021 00:43:32 +0000 (16:43 -0800)
committerArthur Eubanks <aeubanks@google.com>
Wed, 3 Feb 2021 20:59:40 +0000 (12:59 -0800)
To prevent creating a new component, which creates a new library.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D95907

llvm/docs/WritingAnLLVMNewPMPass.rst
llvm/include/llvm/Transforms/Utils/HelloWorld.h [moved from llvm/include/llvm/Transforms/HelloNew/HelloWorld.h with 100% similarity]
llvm/lib/Passes/CMakeLists.txt
llvm/lib/Passes/PassBuilder.cpp
llvm/lib/Transforms/CMakeLists.txt
llvm/lib/Transforms/HelloNew/CMakeLists.txt [deleted file]
llvm/lib/Transforms/Utils/CMakeLists.txt
llvm/lib/Transforms/Utils/HelloWorld.cpp [moved from llvm/lib/Transforms/HelloNew/HelloWorld.cpp with 92% similarity]
llvm/utils/gn/secondary/llvm/lib/Passes/BUILD.gn
llvm/utils/gn/secondary/llvm/lib/Transforms/HelloNew/BUILD.gn [deleted file]
llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn

index ad8a9d5..6a8d3c9 100644 (file)
@@ -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{{$}}
index d834c0d..f517136 100644 (file)
@@ -15,7 +15,6 @@ add_llvm_component_library(LLVMPasses
   Analysis
   Core
   Coroutines
-  HelloNew
   IPO
   InstCombine
   ObjCARC
index f801bcd..29c2eb8 100644 (file)
@@ -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"
 #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"
index 2a0abeb..dda5f6d 100644 (file)
@@ -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 (file)
index 76ac8ad..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_llvm_component_library(LLVMHelloNew
-  HelloWorld.cpp
-
-  DEPENDS
-  intrinsics_gen
-
-  LINK_COMPONENTS
-  Core
-  Support
-  )
index b3bdc19..30c9a3d 100644 (file)
@@ -27,6 +27,7 @@ add_llvm_component_library(LLVMTransformUtils
   FunctionImportUtils.cpp
   GlobalStatus.cpp
   GuardUtils.cpp
+  HelloWorld.cpp
   InlineFunction.cpp
   InjectTLIMappings.cpp
   InstructionNamer.cpp
similarity index 92%
rename from llvm/lib/Transforms/HelloNew/HelloWorld.cpp
rename to llvm/lib/Transforms/Utils/HelloWorld.cpp
index dea94f8..7019e9e 100644 (file)
@@ -6,7 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Transforms/HelloNew/HelloWorld.h"
+#include "llvm/Transforms/Utils/HelloWorld.h"
 
 using namespace llvm;
 
index bb8a671..9afe48d 100644 (file)
@@ -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 (file)
index 5e61673..0000000
+++ /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" ]
-}
index efdded3..a7cae6b 100644 (file)
@@ -34,6 +34,7 @@ static_library("Utils") {
     "FunctionImportUtils.cpp",
     "GlobalStatus.cpp",
     "GuardUtils.cpp",
+    "HelloWorld.cpp",
     "InjectTLIMappings.cpp",
     "InlineFunction.cpp",
     "InstructionNamer.cpp",