brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · 4ae1838 Raw
123 lines · c
1//==-- AArch64.h - Top-level interface for AArch64  --------------*- C++ -*-==//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file contains the entry points for global functions defined in the LLVM10// AArch64 back-end.11//12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64_H15#define LLVM_LIB_TARGET_AARCH64_AARCH64_H16 17#include "MCTargetDesc/AArch64MCTargetDesc.h"18#include "Utils/AArch64BaseInfo.h"19#include "llvm/Pass.h"20#include "llvm/PassRegistry.h"21#include "llvm/Support/DataTypes.h"22#include "llvm/Target/TargetMachine.h"23 24namespace llvm {25 26class AArch64RegisterBankInfo;27class AArch64Subtarget;28class AArch64TargetMachine;29enum class CodeGenOptLevel;30class FunctionPass;31class InstructionSelector;32class ModulePass;33 34FunctionPass *createAArch64DeadRegisterDefinitions();35FunctionPass *createAArch64RedundantCopyEliminationPass();36FunctionPass *createAArch64CondBrTuning();37FunctionPass *createAArch64CompressJumpTablesPass();38FunctionPass *createAArch64ConditionalCompares();39FunctionPass *createAArch64AdvSIMDScalar();40FunctionPass *createAArch64ISelDag(AArch64TargetMachine &TM,41                                   CodeGenOptLevel OptLevel);42FunctionPass *createAArch64StorePairSuppressPass();43FunctionPass *createAArch64ExpandPseudoPass();44FunctionPass *createAArch64SLSHardeningPass();45FunctionPass *createAArch64SpeculationHardeningPass();46FunctionPass *createAArch64LoadStoreOptimizationPass();47ModulePass *createAArch64LowerHomogeneousPrologEpilogPass();48FunctionPass *createAArch64SIMDInstrOptPass();49ModulePass *createAArch64PromoteConstantPass();50FunctionPass *createAArch64ConditionOptimizerPass();51FunctionPass *createAArch64A57FPLoadBalancing();52FunctionPass *createAArch64A53Fix835769();53FunctionPass *createFalkorHWPFFixPass();54FunctionPass *createFalkorMarkStridedAccessesPass();55FunctionPass *createAArch64PointerAuthPass();56FunctionPass *createAArch64BranchTargetsPass();57FunctionPass *createAArch64MIPeepholeOptPass();58FunctionPass *createAArch64PostCoalescerPass();59 60FunctionPass *createAArch64CleanupLocalDynamicTLSPass();61 62FunctionPass *createAArch64CollectLOHPass();63FunctionPass *createSMEABIPass();64FunctionPass *createSMEPeepholeOptPass();65FunctionPass *createMachineSMEABIPass(CodeGenOptLevel);66ModulePass *createSVEIntrinsicOptsPass();67InstructionSelector *68createAArch64InstructionSelector(const AArch64TargetMachine &,69                                 const AArch64Subtarget &,70                                 const AArch64RegisterBankInfo &);71FunctionPass *createAArch64O0PreLegalizerCombiner();72FunctionPass *createAArch64PreLegalizerCombiner();73FunctionPass *createAArch64PostLegalizerCombiner(bool IsOptNone);74FunctionPass *createAArch64PostLegalizerLowering();75FunctionPass *createAArch64PostSelectOptimize();76FunctionPass *createAArch64StackTaggingPass(bool IsOptNone);77FunctionPass *createAArch64StackTaggingPreRAPass();78ModulePass *createAArch64Arm64ECCallLoweringPass();79 80void initializeAArch64A53Fix835769Pass(PassRegistry&);81void initializeAArch64A57FPLoadBalancingPass(PassRegistry&);82void initializeAArch64AdvSIMDScalarPass(PassRegistry&);83void initializeAArch64AsmPrinterPass(PassRegistry &);84void initializeAArch64PointerAuthPass(PassRegistry&);85void initializeAArch64BranchTargetsPass(PassRegistry&);86void initializeAArch64CFIFixupPass(PassRegistry&);87void initializeAArch64CollectLOHPass(PassRegistry &);88void initializeAArch64CompressJumpTablesPass(PassRegistry&);89void initializeAArch64CondBrTuningPass(PassRegistry &);90void initializeAArch64ConditionOptimizerPass(PassRegistry&);91void initializeAArch64ConditionalComparesPass(PassRegistry &);92void initializeAArch64DAGToDAGISelLegacyPass(PassRegistry &);93void initializeAArch64DeadRegisterDefinitionsPass(PassRegistry&);94void initializeAArch64ExpandPseudoPass(PassRegistry &);95void initializeAArch64LoadStoreOptPass(PassRegistry&);96void initializeAArch64LowerHomogeneousPrologEpilogPass(PassRegistry &);97void initializeAArch64MIPeepholeOptPass(PassRegistry &);98void initializeAArch64O0PreLegalizerCombinerPass(PassRegistry &);99void initializeAArch64PostCoalescerPass(PassRegistry &);100void initializeAArch64PostLegalizerCombinerPass(PassRegistry &);101void initializeAArch64PostLegalizerLoweringPass(PassRegistry &);102void initializeAArch64PostSelectOptimizePass(PassRegistry &);103void initializeAArch64PreLegalizerCombinerPass(PassRegistry &);104void initializeAArch64PromoteConstantPass(PassRegistry&);105void initializeAArch64RedundantCopyEliminationPass(PassRegistry&);106void initializeAArch64SIMDInstrOptPass(PassRegistry &);107void initializeAArch64SLSHardeningPass(PassRegistry &);108void initializeAArch64SpeculationHardeningPass(PassRegistry &);109void initializeAArch64StackTaggingPass(PassRegistry &);110void initializeAArch64StackTaggingPreRAPass(PassRegistry &);111void initializeAArch64StorePairSuppressPass(PassRegistry&);112void initializeFalkorHWPFFixPass(PassRegistry&);113void initializeFalkorMarkStridedAccessesLegacyPass(PassRegistry&);114void initializeLDTLSCleanupPass(PassRegistry&);115void initializeSMEABIPass(PassRegistry &);116void initializeSMEPeepholeOptPass(PassRegistry &);117void initializeMachineSMEABIPass(PassRegistry &);118void initializeSVEIntrinsicOptsPass(PassRegistry &);119void initializeAArch64Arm64ECCallLoweringPass(PassRegistry &);120} // end namespace llvm121 122#endif123