summarylogtreecommitdiffstats
path: root/0004-llvm-c-Remove-bindings-for-creating-legacy-passes.patch
diff options
context:
space:
mode:
Diffstat (limited to '0004-llvm-c-Remove-bindings-for-creating-legacy-passes.patch')
-rw-r--r--0004-llvm-c-Remove-bindings-for-creating-legacy-passes.patch714
1 files changed, 714 insertions, 0 deletions
diff --git a/0004-llvm-c-Remove-bindings-for-creating-legacy-passes.patch b/0004-llvm-c-Remove-bindings-for-creating-legacy-passes.patch
new file mode 100644
index 000000000000..a9dfd87457cd
--- /dev/null
+++ b/0004-llvm-c-Remove-bindings-for-creating-legacy-passes.patch
@@ -0,0 +1,714 @@
+From f7ca01333214f934c580c162afdee933e7430b6c Mon Sep 17 00:00:00 2001
+From: Nikita Popov <npopov@redhat.com>
+Date: Tue, 28 Feb 2023 16:38:45 +0100
+Subject: [PATCH] [llvm-c] Remove bindings for creating legacy passes
+
+Legacy passes are only supported for codegen, and I don't believe
+it's possible to write backends using the C API, so we should drop
+all of those. Reduces the number of places that need to be modified
+when removing legacy passes.
+
+Differential Revision: https://reviews.llvm.org/D144970
+---
+ clang/docs/tools/clang-formatted-files.txt | 2 -
+ llvm/docs/ReleaseNotes.rst | 2 +
+ llvm/include/llvm-c/Transforms/IPO.h | 45 -----
+ llvm/include/llvm-c/Transforms/InstCombine.h | 40 -----
+ llvm/include/llvm-c/Transforms/Scalar.h | 152 -----------------
+ llvm/include/llvm-c/Transforms/Utils.h | 50 ------
+ llvm/include/llvm-c/Transforms/Vectorize.h | 47 ------
+ llvm/lib/Transforms/IPO/IPO.cpp | 9 -
+ .../InstCombine/InstructionCombining.cpp | 5 -
+ llvm/lib/Transforms/Scalar/Scalar.cpp | 158 ------------------
+ llvm/lib/Transforms/Utils/Utils.cpp | 13 --
+ llvm/lib/Transforms/Vectorize/Vectorize.cpp | 9 -
+ llvm/tools/llvm-c-test/include-all.c | 6 +-
+ 13 files changed, 3 insertions(+), 535 deletions(-)
+ delete mode 100644 llvm/include/llvm-c/Transforms/IPO.h
+ delete mode 100644 llvm/include/llvm-c/Transforms/InstCombine.h
+ delete mode 100644 llvm/include/llvm-c/Transforms/Scalar.h
+ delete mode 100644 llvm/include/llvm-c/Transforms/Utils.h
+ delete mode 100644 llvm/include/llvm-c/Transforms/Vectorize.h
+
+diff --git a/clang/docs/tools/clang-formatted-files.txt b/clang/docs/tools/clang-formatted-files.txt
+index 45970232d0c0..31d1dd7f365a 100644
+--- a/clang/docs/tools/clang-formatted-files.txt
++++ b/clang/docs/tools/clang-formatted-files.txt
+@@ -5713,8 +5713,6 @@ llvm/include/llvm-c/OrcEE.h
+ llvm/include/llvm-c/Remarks.h
+ llvm/include/llvm-c/Types.h
+ llvm/include/llvm-c/Transforms/PassBuilder.h
+-llvm/include/llvm-c/Transforms/Scalar.h
+-llvm/include/llvm-c/Transforms/Vectorize.h
+ llvm/lib/Analysis/CodeMetrics.cpp
+ llvm/lib/Analysis/CycleAnalysis.cpp
+ llvm/lib/Analysis/DDGPrinter.cpp
+diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst
+index ef7dacd82bf0..aed1df36b490 100644
+--- a/llvm/docs/ReleaseNotes.rst
++++ b/llvm/docs/ReleaseNotes.rst
+@@ -145,6 +145,8 @@ Changes to the C API
+
+ * ``LLVMContextSetOpaquePointers``, a temporary API to pin to legacy typed
+ pointer, has been removed.
++* Functions for adding legacy passes like ``LLVMAddInstructionCombiningPass``
++ have been removed.
+
+ Changes to the FastISel infrastructure
+ --------------------------------------
+diff --git a/llvm/include/llvm-c/Transforms/IPO.h b/llvm/include/llvm-c/Transforms/IPO.h
+deleted file mode 100644
+index c558aa37f1c3..000000000000
+--- a/llvm/include/llvm-c/Transforms/IPO.h
++++ /dev/null
+@@ -1,45 +0,0 @@
+-/*===-- IPO.h - Interprocedural Transformations C Interface -----*- 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 *|
+-|* *|
+-|*===----------------------------------------------------------------------===*|
+-|* *|
+-|* This header declares the C interface to libLLVMIPO.a, which implements *|
+-|* various interprocedural transformations of the LLVM IR. *|
+-|* *|
+-\*===----------------------------------------------------------------------===*/
+-
+-#ifndef LLVM_C_TRANSFORMS_IPO_H
+-#define LLVM_C_TRANSFORMS_IPO_H
+-
+-#include "llvm-c/ExternC.h"
+-#include "llvm-c/Types.h"
+-
+-LLVM_C_EXTERN_C_BEGIN
+-
+-/**
+- * @defgroup LLVMCTransformsIPO Interprocedural transformations
+- * @ingroup LLVMCTransforms
+- *
+- * @{
+- */
+-
+-/** See llvm::createDeadArgEliminationPass function. */
+-void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createFunctionAttrsPass function. */
+-void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createAlwaysInlinerPass function. */
+-void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM);
+-
+-/**
+- * @}
+- */
+-
+-LLVM_C_EXTERN_C_END
+-
+-#endif
+diff --git a/llvm/include/llvm-c/Transforms/InstCombine.h b/llvm/include/llvm-c/Transforms/InstCombine.h
+deleted file mode 100644
+index ebe17d667061..000000000000
+--- a/llvm/include/llvm-c/Transforms/InstCombine.h
++++ /dev/null
+@@ -1,40 +0,0 @@
+-/*===-- Scalar.h - Scalar Transformation Library C Interface ----*- 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 *|
+-|* *|
+-|*===----------------------------------------------------------------------===*|
+-|* *|
+-|* This header declares the C interface to libLLVMInstCombine.a, which *|
+-|* combines instructions to form fewer, simple IR instructions. *|
+-|* *|
+-\*===----------------------------------------------------------------------===*/
+-
+-#ifndef LLVM_C_TRANSFORMS_INSTCOMBINE_H
+-#define LLVM_C_TRANSFORMS_INSTCOMBINE_H
+-
+-#include "llvm-c/ExternC.h"
+-#include "llvm-c/Types.h"
+-
+-LLVM_C_EXTERN_C_BEGIN
+-
+-/**
+- * @defgroup LLVMCTransformsInstCombine Instruction Combining transformations
+- * @ingroup LLVMCTransforms
+- *
+- * @{
+- */
+-
+-/** See llvm::createInstructionCombiningPass function. */
+-void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM);
+-
+-/**
+- * @}
+- */
+-
+-LLVM_C_EXTERN_C_END
+-
+-#endif
+-
+diff --git a/llvm/include/llvm-c/Transforms/Scalar.h b/llvm/include/llvm-c/Transforms/Scalar.h
+deleted file mode 100644
+index 8eefe7bec457..000000000000
+--- a/llvm/include/llvm-c/Transforms/Scalar.h
++++ /dev/null
+@@ -1,152 +0,0 @@
+-/*===-- Scalar.h - Scalar Transformation Library C Interface ----*- 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 *|
+-|* *|
+-|*===----------------------------------------------------------------------===*|
+-|* *|
+-|* This header declares the C interface to libLLVMScalarOpts.a, which *|
+-|* implements various scalar transformations of the LLVM IR. *|
+-|* *|
+-|* Many exotic languages can interoperate with C code but have a harder time *|
+-|* with C++ due to name mangling. So in addition to C, this interface enables *|
+-|* tools written in such languages. *|
+-|* *|
+-\*===----------------------------------------------------------------------===*/
+-
+-#ifndef LLVM_C_TRANSFORMS_SCALAR_H
+-#define LLVM_C_TRANSFORMS_SCALAR_H
+-
+-#include "llvm-c/ExternC.h"
+-#include "llvm-c/Types.h"
+-
+-LLVM_C_EXTERN_C_BEGIN
+-
+-/**
+- * @defgroup LLVMCTransformsScalar Scalar transformations
+- * @ingroup LLVMCTransforms
+- *
+- * @{
+- */
+-
+-/** See llvm::createAggressiveDCEPass function. */
+-void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createDeadCodeEliminationPass function. */
+-void LLVMAddDCEPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createBitTrackingDCEPass function. */
+-void LLVMAddBitTrackingDCEPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createAlignmentFromAssumptionsPass function. */
+-void LLVMAddAlignmentFromAssumptionsPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createCFGSimplificationPass function. */
+-void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createDeadStoreEliminationPass function. */
+-void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createScalarizerPass function. */
+-void LLVMAddScalarizerPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createMergedLoadStoreMotionPass function. */
+-void LLVMAddMergedLoadStoreMotionPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createGVNPass function. */
+-void LLVMAddGVNPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createGVNPass function. */
+-void LLVMAddNewGVNPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createIndVarSimplifyPass function. */
+-void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createInstructionCombiningPass function. */
+-void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createInstSimplifyLegacyPass function. */
+-void LLVMAddInstructionSimplifyPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createJumpThreadingPass function. */
+-void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createLICMPass function. */
+-void LLVMAddLICMPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createLoopRotatePass function. */
+-void LLVMAddLoopRotatePass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createLoopUnrollPass function. */
+-void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createLowerAtomicPass function. */
+-void LLVMAddLowerAtomicPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createMemCpyOptPass function. */
+-void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createPartiallyInlineLibCallsPass function. */
+-void LLVMAddPartiallyInlineLibCallsPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createReassociatePass function. */
+-void LLVMAddReassociatePass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createSROAPass function. */
+-void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createSROAPass function. */
+-void LLVMAddScalarReplAggregatesPassSSA(LLVMPassManagerRef PM);
+-
+-/** See llvm::createSROAPass function. */
+-void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM,
+- int Threshold);
+-
+-/** See llvm::createSimplifyLibCallsPass function. */
+-void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createTailCallEliminationPass function. */
+-void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::demotePromoteMemoryToRegisterPass function. */
+-void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createVerifierPass function. */
+-void LLVMAddVerifierPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createCorrelatedValuePropagationPass function */
+-void LLVMAddCorrelatedValuePropagationPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createEarlyCSEPass function */
+-void LLVMAddEarlyCSEPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createEarlyCSEPass function */
+-void LLVMAddEarlyCSEMemSSAPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createLowerExpectIntrinsicPass function */
+-void LLVMAddLowerExpectIntrinsicPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createLowerConstantIntrinsicsPass function */
+-void LLVMAddLowerConstantIntrinsicsPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createTypeBasedAliasAnalysisPass function */
+-void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createScopedNoAliasAAPass function */
+-void LLVMAddScopedNoAliasAAPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createBasicAliasAnalysisPass function */
+-void LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createUnifyFunctionExitNodesPass function */
+-void LLVMAddUnifyFunctionExitNodesPass(LLVMPassManagerRef PM);
+-
+-/**
+- * @}
+- */
+-
+-LLVM_C_EXTERN_C_END
+-
+-#endif
+diff --git a/llvm/include/llvm-c/Transforms/Utils.h b/llvm/include/llvm-c/Transforms/Utils.h
+deleted file mode 100644
+index 30d1ae63de1d..000000000000
+--- a/llvm/include/llvm-c/Transforms/Utils.h
++++ /dev/null
+@@ -1,50 +0,0 @@
+-/*===-- Utils.h - Transformation Utils Library C Interface ------*- 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 *|
+-|* *|
+-|*===----------------------------------------------------------------------===*|
+-|* *|
+-|* This header declares the C interface to libLLVMTransformUtils.a, which *|
+-|* implements various transformation utilities of the LLVM IR. *|
+-|* *|
+-|* Many exotic languages can interoperate with C code but have a harder time *|
+-|* with C++ due to name mangling. So in addition to C, this interface enables *|
+-|* tools written in such languages. *|
+-|* *|
+-\*===----------------------------------------------------------------------===*/
+-
+-#ifndef LLVM_C_TRANSFORMS_UTILS_H
+-#define LLVM_C_TRANSFORMS_UTILS_H
+-
+-#include "llvm-c/ExternC.h"
+-#include "llvm-c/Types.h"
+-
+-LLVM_C_EXTERN_C_BEGIN
+-
+-/**
+- * @defgroup LLVMCTransformsUtils Transformation Utilities
+- * @ingroup LLVMCTransforms
+- *
+- * @{
+- */
+-
+-/** See llvm::createLowerSwitchPass function. */
+-void LLVMAddLowerSwitchPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createPromoteMemoryToRegisterPass function. */
+-void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createAddDiscriminatorsPass function. */
+-void LLVMAddAddDiscriminatorsPass(LLVMPassManagerRef PM);
+-
+-/**
+- * @}
+- */
+-
+-LLVM_C_EXTERN_C_END
+-
+-#endif
+-
+diff --git a/llvm/include/llvm-c/Transforms/Vectorize.h b/llvm/include/llvm-c/Transforms/Vectorize.h
+deleted file mode 100644
+index 0de458381399..000000000000
+--- a/llvm/include/llvm-c/Transforms/Vectorize.h
++++ /dev/null
+@@ -1,47 +0,0 @@
+-/*===---------------------------Vectorize.h --------------------- -*- C -*-===*\
+-|*===----------- Vectorization Transformation Library C Interface ---------===*|
+-|* *|
+-|* 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 header declares the C interface to libLLVMVectorize.a, which *|
+-|* implements various vectorization transformations of the LLVM IR. *|
+-|* *|
+-|* Many exotic languages can interoperate with C code but have a harder time *|
+-|* with C++ due to name mangling. So in addition to C, this interface enables *|
+-|* tools written in such languages. *|
+-|* *|
+-\*===----------------------------------------------------------------------===*/
+-
+-#ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
+-#define LLVM_C_TRANSFORMS_VECTORIZE_H
+-
+-#include "llvm-c/ExternC.h"
+-#include "llvm-c/Types.h"
+-
+-LLVM_C_EXTERN_C_BEGIN
+-
+-/**
+- * @defgroup LLVMCTransformsVectorize Vectorization transformations
+- * @ingroup LLVMCTransforms
+- *
+- * @{
+- */
+-
+-/** See llvm::createLoopVectorizePass function. */
+-void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
+-
+-/** See llvm::createSLPVectorizerPass function. */
+-void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
+-
+-/**
+- * @}
+- */
+-
+-LLVM_C_EXTERN_C_END
+-
+-#endif
+diff --git a/llvm/lib/Transforms/IPO/IPO.cpp b/llvm/lib/Transforms/IPO/IPO.cpp
+index eb0a91bbbc90..fcd58898c88b 100644
+--- a/llvm/lib/Transforms/IPO/IPO.cpp
++++ b/llvm/lib/Transforms/IPO/IPO.cpp
+@@ -12,7 +12,6 @@
+ //
+ //===----------------------------------------------------------------------===//
+
+-#include "llvm-c/Transforms/IPO.h"
+ #include "llvm-c/Initialization.h"
+ #include "llvm/IR/LegacyPassManager.h"
+ #include "llvm/InitializePasses.h"
+@@ -34,11 +33,3 @@ void llvm::initializeIPO(PassRegistry &Registry) {
+ void LLVMInitializeIPO(LLVMPassRegistryRef R) {
+ initializeIPO(*unwrap(R));
+ }
+-
+-void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createDeadArgEliminationPass());
+-}
+-
+-void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(llvm::createAlwaysInlinerLegacyPass());
+-}
+diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+index 34d1b2b46db2..c3ba452e3341 100644
+--- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
++++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+@@ -34,7 +34,6 @@
+
+ #include "InstCombineInternal.h"
+ #include "llvm-c/Initialization.h"
+-#include "llvm-c/Transforms/InstCombine.h"
+ #include "llvm/ADT/APInt.h"
+ #include "llvm/ADT/ArrayRef.h"
+ #include "llvm/ADT/DenseMap.h"
+@@ -4760,7 +4759,3 @@ FunctionPass *llvm::createInstructionCombiningPass() {
+ FunctionPass *llvm::createInstructionCombiningPass(unsigned MaxIterations) {
+ return new InstructionCombiningPass(MaxIterations);
+ }
+-
+-void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createInstructionCombiningPass());
+-}
+diff --git a/llvm/lib/Transforms/Scalar/Scalar.cpp b/llvm/lib/Transforms/Scalar/Scalar.cpp
+index c2b9350933d4..9a3d243859be 100644
+--- a/llvm/lib/Transforms/Scalar/Scalar.cpp
++++ b/llvm/lib/Transforms/Scalar/Scalar.cpp
+@@ -14,7 +14,6 @@
+
+ #include "llvm/Transforms/Scalar.h"
+ #include "llvm-c/Initialization.h"
+-#include "llvm-c/Transforms/Scalar.h"
+ #include "llvm/Analysis/BasicAliasAnalysis.h"
+ #include "llvm/Analysis/ScopedNoAliasAA.h"
+ #include "llvm/Analysis/TypeBasedAliasAnalysis.h"
+@@ -97,163 +96,6 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) {
+ initializeLoopSimplifyCFGLegacyPassPass(Registry);
+ }
+
+-void LLVMAddLoopSimplifyCFGPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLoopSimplifyCFGPass());
+-}
+-
+ void LLVMInitializeScalarOpts(LLVMPassRegistryRef R) {
+ initializeScalarOpts(*unwrap(R));
+ }
+-
+-void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createAggressiveDCEPass());
+-}
+-
+-void LLVMAddDCEPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createDeadCodeEliminationPass());
+-}
+-
+-void LLVMAddBitTrackingDCEPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createBitTrackingDCEPass());
+-}
+-
+-void LLVMAddAlignmentFromAssumptionsPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createAlignmentFromAssumptionsPass());
+-}
+-
+-void LLVMAddCFGSimplificationPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createCFGSimplificationPass());
+-}
+-
+-void LLVMAddDeadStoreEliminationPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createDeadStoreEliminationPass());
+-}
+-
+-void LLVMAddScalarizerPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createScalarizerPass());
+-}
+-
+-void LLVMAddGVNPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createGVNPass());
+-}
+-
+-void LLVMAddNewGVNPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createNewGVNPass());
+-}
+-
+-void LLVMAddMergedLoadStoreMotionPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createMergedLoadStoreMotionPass());
+-}
+-
+-void LLVMAddIndVarSimplifyPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createIndVarSimplifyPass());
+-}
+-
+-void LLVMAddInstructionSimplifyPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createInstSimplifyLegacyPass());
+-}
+-
+-void LLVMAddJumpThreadingPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createJumpThreadingPass());
+-}
+-
+-void LLVMAddLoopSinkPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLoopSinkPass());
+-}
+-
+-void LLVMAddLICMPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLICMPass());
+-}
+-
+-void LLVMAddLoopRotatePass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLoopRotatePass());
+-}
+-
+-void LLVMAddLoopUnrollPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLoopUnrollPass());
+-}
+-
+-void LLVMAddLowerAtomicPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLowerAtomicPass());
+-}
+-
+-void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createMemCpyOptPass());
+-}
+-
+-void LLVMAddPartiallyInlineLibCallsPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createPartiallyInlineLibCallsPass());
+-}
+-
+-void LLVMAddReassociatePass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createReassociatePass());
+-}
+-
+-void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createSROAPass());
+-}
+-
+-void LLVMAddScalarReplAggregatesPassSSA(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createSROAPass());
+-}
+-
+-void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM,
+- int Threshold) {
+- unwrap(PM)->add(createSROAPass());
+-}
+-
+-void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM) {
+- // NOTE: The simplify-libcalls pass has been removed.
+-}
+-
+-void LLVMAddTailCallEliminationPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createTailCallEliminationPass());
+-}
+-
+-void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createDemoteRegisterToMemoryPass());
+-}
+-
+-void LLVMAddVerifierPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createVerifierPass());
+-}
+-
+-void LLVMAddCorrelatedValuePropagationPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createCorrelatedValuePropagationPass());
+-}
+-
+-void LLVMAddEarlyCSEPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createEarlyCSEPass(false/*=UseMemorySSA*/));
+-}
+-
+-void LLVMAddEarlyCSEMemSSAPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createEarlyCSEPass(true/*=UseMemorySSA*/));
+-}
+-
+-void LLVMAddGVNHoistLegacyPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createGVNHoistPass());
+-}
+-
+-void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createTypeBasedAAWrapperPass());
+-}
+-
+-void LLVMAddScopedNoAliasAAPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createScopedNoAliasAAWrapperPass());
+-}
+-
+-void LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createBasicAAWrapperPass());
+-}
+-
+-void LLVMAddLowerConstantIntrinsicsPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLowerConstantIntrinsicsPass());
+-}
+-
+-void LLVMAddLowerExpectIntrinsicPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLowerExpectIntrinsicPass());
+-}
+-
+-void LLVMAddUnifyFunctionExitNodesPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createUnifyFunctionExitNodesPass());
+-}
+diff --git a/llvm/lib/Transforms/Utils/Utils.cpp b/llvm/lib/Transforms/Utils/Utils.cpp
+index a20dadb69767..d86f20c7bb6f 100644
+--- a/llvm/lib/Transforms/Utils/Utils.cpp
++++ b/llvm/lib/Transforms/Utils/Utils.cpp
+@@ -13,7 +13,6 @@
+
+ #include "llvm/Transforms/Utils.h"
+ #include "llvm-c/Initialization.h"
+-#include "llvm-c/Transforms/Utils.h"
+ #include "llvm/IR/LegacyPassManager.h"
+ #include "llvm/InitializePasses.h"
+ #include "llvm/Pass.h"
+@@ -50,15 +49,3 @@ void llvm::initializeTransformUtils(PassRegistry &Registry) {
+ void LLVMInitializeTransformUtils(LLVMPassRegistryRef R) {
+ initializeTransformUtils(*unwrap(R));
+ }
+-
+-void LLVMAddLowerSwitchPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLowerSwitchPass());
+-}
+-
+-void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createPromoteMemoryToRegisterPass());
+-}
+-
+-void LLVMAddAddDiscriminatorsPass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createAddDiscriminatorsPass());
+-}
+diff --git a/llvm/lib/Transforms/Vectorize/Vectorize.cpp b/llvm/lib/Transforms/Vectorize/Vectorize.cpp
+index c2060484af5d..6a335e9120bb 100644
+--- a/llvm/lib/Transforms/Vectorize/Vectorize.cpp
++++ b/llvm/lib/Transforms/Vectorize/Vectorize.cpp
+@@ -14,7 +14,6 @@
+
+ #include "llvm/Transforms/Vectorize.h"
+ #include "llvm-c/Initialization.h"
+-#include "llvm-c/Transforms/Vectorize.h"
+ #include "llvm/IR/LegacyPassManager.h"
+ #include "llvm/InitializePasses.h"
+ #include "llvm/PassRegistry.h"
+@@ -31,11 +30,3 @@ void llvm::initializeVectorization(PassRegistry &Registry) {
+ void LLVMInitializeVectorization(LLVMPassRegistryRef R) {
+ initializeVectorization(*unwrap(R));
+ }
+-
+-void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createLoopVectorizePass());
+-}
+-
+-void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM) {
+- unwrap(PM)->add(createSLPVectorizerPass());
+-}
+diff --git a/llvm/tools/llvm-c-test/include-all.c b/llvm/tools/llvm-c-test/include-all.c
+index 69ed753e5068..eada03caf5e0 100644
+--- a/llvm/tools/llvm-c-test/include-all.c
++++ b/llvm/tools/llvm-c-test/include-all.c
+@@ -35,11 +35,7 @@
+ #include "llvm-c/Support.h"
+ #include "llvm-c/Target.h"
+ #include "llvm-c/TargetMachine.h"
+-#include "llvm-c/Transforms/InstCombine.h"
+-#include "llvm-c/Transforms/IPO.h"
++#include "llvm-c/Transforms/PassBuilder.h"
+ #include "llvm-c/Transforms/PassManagerBuilder.h"
+-#include "llvm-c/Transforms/Scalar.h"
+-#include "llvm-c/Transforms/Utils.h"
+-#include "llvm-c/Transforms/Vectorize.h"
+ #include "llvm-c/Types.h"
+ #include "llvm-c/lto.h"
+--
+2.39.2
+