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 Andricvoid 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