xref: /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/Scalar.cpp (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
10b57cec5SDimitry Andric //===-- Scalar.cpp --------------------------------------------------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric //
90b57cec5SDimitry Andric // This file implements common infrastructure for libLLVMScalarOpts.a, which
100b57cec5SDimitry Andric // implements several scalar transformations over the LLVM intermediate
110b57cec5SDimitry Andric // representation, including the C bindings for that library.
120b57cec5SDimitry Andric //
130b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
140b57cec5SDimitry Andric 
150b57cec5SDimitry Andric #include "llvm/InitializePasses.h"
160b57cec5SDimitry Andric 
170b57cec5SDimitry Andric using namespace llvm;
180b57cec5SDimitry Andric 
190b57cec5SDimitry Andric /// initializeScalarOptsPasses - Initialize all passes linked into the
200b57cec5SDimitry Andric /// ScalarOpts library.
initializeScalarOpts(PassRegistry & Registry)210b57cec5SDimitry Andric void llvm::initializeScalarOpts(PassRegistry &Registry) {
220b57cec5SDimitry Andric   initializeConstantHoistingLegacyPassPass(Registry);
230b57cec5SDimitry Andric   initializeDCELegacyPassPass(Registry);
240b57cec5SDimitry Andric   initializeGVNLegacyPassPass(Registry);
250b57cec5SDimitry Andric   initializeEarlyCSELegacyPassPass(Registry);
260b57cec5SDimitry Andric   initializeEarlyCSEMemSSALegacyPassPass(Registry);
270eae32dcSDimitry Andric   initializeFlattenCFGLegacyPassPass(Registry);
280b57cec5SDimitry Andric   initializeInferAddressSpacesPass(Registry);
290b57cec5SDimitry Andric   initializeInstSimplifyLegacyPassPass(Registry);
300b57cec5SDimitry Andric   initializeLegacyLICMPassPass(Registry);
310b57cec5SDimitry Andric   initializeLoopDataPrefetchLegacyPassPass(Registry);
320b57cec5SDimitry Andric   initializeLoopStrengthReducePass(Registry);
330b57cec5SDimitry Andric   initializeLoopUnrollPass(Registry);
340b57cec5SDimitry Andric   initializeLowerAtomicLegacyPassPass(Registry);
358bcb0991SDimitry Andric   initializeLowerConstantIntrinsicsPass(Registry);
360b57cec5SDimitry Andric   initializeMergeICmpsLegacyPassPass(Registry);
370b57cec5SDimitry Andric   initializeNaryReassociateLegacyPassPass(Registry);
380b57cec5SDimitry Andric   initializePartiallyInlineLibCallsLegacyPassPass(Registry);
390b57cec5SDimitry Andric   initializeReassociateLegacyPassPass(Registry);
40e8d8bef9SDimitry Andric   initializeScalarizeMaskedMemIntrinLegacyPassPass(Registry);
410b57cec5SDimitry Andric   initializeSROALegacyPassPass(Registry);
420b57cec5SDimitry Andric   initializeCFGSimplifyPassPass(Registry);
43e8d8bef9SDimitry Andric   initializeStructurizeCFGLegacyPassPass(Registry);
440b57cec5SDimitry Andric   initializeSinkingLegacyPassPass(Registry);
450b57cec5SDimitry Andric   initializeTailCallElimPass(Registry);
4681ad6265SDimitry Andric   initializeTLSVariableHoistLegacyPassPass(Registry);
47e8d8bef9SDimitry Andric   initializeSeparateConstOffsetFromGEPLegacyPassPass(Registry);
480b57cec5SDimitry Andric   initializeSpeculativeExecutionLegacyPassPass(Registry);
49e8d8bef9SDimitry Andric   initializeStraightLineStrengthReduceLegacyPassPass(Registry);
5006c3fb27SDimitry Andric   initializePlaceBackedgeSafepointsLegacyPassPass(Registry);
51*0fca6ea1SDimitry Andric   initializePostInlineEntryExitInstrumenterPass(Registry);
520b57cec5SDimitry Andric }
53