Path: blob/main/contrib/llvm-project/llvm/lib/Target/RISCV/RISCV.h
35266 views
//===-- RISCV.h - Top-level interface for RISC-V ----------------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file contains the entry points for global functions defined in the LLVM9// RISC-V back-end.10//11//===----------------------------------------------------------------------===//1213#ifndef LLVM_LIB_TARGET_RISCV_RISCV_H14#define LLVM_LIB_TARGET_RISCV_RISCV_H1516#include "MCTargetDesc/RISCVBaseInfo.h"17#include "llvm/Target/TargetMachine.h"1819namespace llvm {20class FunctionPass;21class InstructionSelector;22class PassRegistry;23class RISCVRegisterBankInfo;24class RISCVSubtarget;25class RISCVTargetMachine;2627FunctionPass *createRISCVCodeGenPreparePass();28void initializeRISCVCodeGenPreparePass(PassRegistry &);2930FunctionPass *createRISCVDeadRegisterDefinitionsPass();31void initializeRISCVDeadRegisterDefinitionsPass(PassRegistry &);3233FunctionPass *createRISCVISelDag(RISCVTargetMachine &TM,34CodeGenOptLevel OptLevel);3536FunctionPass *createRISCVMakeCompressibleOptPass();37void initializeRISCVMakeCompressibleOptPass(PassRegistry &);3839FunctionPass *createRISCVGatherScatterLoweringPass();40void initializeRISCVGatherScatterLoweringPass(PassRegistry &);4142FunctionPass *createRISCVVectorPeepholePass();43void initializeRISCVVectorPeepholePass(PassRegistry &);4445FunctionPass *createRISCVOptWInstrsPass();46void initializeRISCVOptWInstrsPass(PassRegistry &);4748FunctionPass *createRISCVMergeBaseOffsetOptPass();49void initializeRISCVMergeBaseOffsetOptPass(PassRegistry &);5051FunctionPass *createRISCVExpandPseudoPass();52void initializeRISCVExpandPseudoPass(PassRegistry &);5354FunctionPass *createRISCVPreRAExpandPseudoPass();55void initializeRISCVPreRAExpandPseudoPass(PassRegistry &);5657FunctionPass *createRISCVExpandAtomicPseudoPass();58void initializeRISCVExpandAtomicPseudoPass(PassRegistry &);5960FunctionPass *createRISCVInsertVSETVLIPass();61void initializeRISCVInsertVSETVLIPass(PassRegistry &);62extern char &RISCVInsertVSETVLIID;6364FunctionPass *createRISCVPostRAExpandPseudoPass();65void initializeRISCVPostRAExpandPseudoPass(PassRegistry &);66FunctionPass *createRISCVInsertReadWriteCSRPass();67void initializeRISCVInsertReadWriteCSRPass(PassRegistry &);6869FunctionPass *createRISCVInsertWriteVXRMPass();70void initializeRISCVInsertWriteVXRMPass(PassRegistry &);7172FunctionPass *createRISCVRedundantCopyEliminationPass();73void initializeRISCVRedundantCopyEliminationPass(PassRegistry &);7475FunctionPass *createRISCVMoveMergePass();76void initializeRISCVMoveMergePass(PassRegistry &);7778FunctionPass *createRISCVPushPopOptimizationPass();79void initializeRISCVPushPopOptPass(PassRegistry &);8081InstructionSelector *82createRISCVInstructionSelector(const RISCVTargetMachine &,83const RISCVSubtarget &,84const RISCVRegisterBankInfo &);85void initializeRISCVDAGToDAGISelLegacyPass(PassRegistry &);8687FunctionPass *createRISCVPostLegalizerCombiner();88void initializeRISCVPostLegalizerCombinerPass(PassRegistry &);8990FunctionPass *createRISCVO0PreLegalizerCombiner();91void initializeRISCVO0PreLegalizerCombinerPass(PassRegistry &);9293FunctionPass *createRISCVPreLegalizerCombiner();94void initializeRISCVPreLegalizerCombinerPass(PassRegistry &);95} // namespace llvm9697#endif9899100