LLVM 24.0.0git
RISCVSubtarget.cpp File Reference
#include "RISCVSubtarget.h"
#include "GISel/RISCVCallLowering.h"
#include "GISel/RISCVInlineAsmLowering.h"
#include "GISel/RISCVLegalizerInfo.h"
#include "RISCV.h"
#include "RISCVFrameLowering.h"
#include "RISCVSelectionDAGInfo.h"
#include "RISCVTargetMachine.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/MC/MCSchedule.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "RISCVGenMacroFusion.inc"
#include "RISCVGenSubtargetInfo.inc"
#include "RISCVGenSearchableTables.inc"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::RISCVTuneInfoTable

Macros

#define DEBUG_TYPE   "riscv-macro-fusion"
#define GET_RISCV_MACRO_FUSION_PRED_IMPL
#define DEBUG_TYPE   "riscv-subtarget"
#define GET_SUBTARGETINFO_TARGET_DESC
#define GET_SUBTARGETINFO_CTOR
#define GET_RISCVTuneInfoTable_IMPL

Variables

static cl::opt< unsignedSchedMispredictPenalty ("riscv-sched-mispredict-penalty", cl::Hidden, cl::init(MCSchedModel::DefaultMispredictPenalty), cl::cat(MCScheduleOptions), cl::desc("Override the mispredict penalty (in cycles) in the scheduler " "model. A non-negative value overrides the target default."))
static cl::opt< unsignedSchedLoadLatency ("riscv-sched-load-latency", cl::Hidden, cl::init(MCSchedModel::DefaultLoadLatency), cl::cat(MCScheduleOptions), cl::desc("Override the load latency (in cycles) in the scheduler model. " "A non-negative value overrides the target default."))
static cl::opt< boolRISCVDisableUsingConstantPoolForLargeInts ("riscv-disable-using-constant-pool-for-large-ints", cl::desc("Disable using constant pool for large integers."), cl::init(false), cl::Hidden)
static cl::opt< unsignedRISCVMaxBuildIntsCost ("riscv-max-build-ints-cost", cl::desc("The maximum cost used for building integers."), cl::init(0), cl::Hidden)
static cl::opt< boolUseAA ("riscv-use-aa", cl::init(true), cl::desc("Enable the use of AA during codegen."))
static cl::opt< unsignedRISCVMinimumJumpTableEntries ("riscv-min-jump-table-entries", cl::Hidden, cl::desc("Set minimum number of entries to use a jump table on RISCV"))
static cl::opt< boolUseMIPSLoadStorePairsOpt ("use-riscv-mips-load-store-pairs", cl::desc("Enable the load/store pair optimization pass"), cl::init(false), cl::Hidden)
static cl::opt< boolUseMIPSCCMovInsn ("use-riscv-mips-ccmov", cl::desc("Use 'mips.ccmov' instruction"), cl::init(true), cl::Hidden)

Macro Definition Documentation

◆ DEBUG_TYPE [1/2]

#define DEBUG_TYPE   "riscv-macro-fusion"

Definition at line 43 of file RISCVSubtarget.cpp.

◆ DEBUG_TYPE [2/2]

#define DEBUG_TYPE   "riscv-subtarget"

Definition at line 43 of file RISCVSubtarget.cpp.

◆ GET_RISCV_MACRO_FUSION_PRED_IMPL

#define GET_RISCV_MACRO_FUSION_PRED_IMPL

Definition at line 45 of file RISCVSubtarget.cpp.

◆ GET_RISCVTuneInfoTable_IMPL

#define GET_RISCVTuneInfoTable_IMPL

Definition at line 57 of file RISCVSubtarget.cpp.

◆ GET_SUBTARGETINFO_CTOR

#define GET_SUBTARGETINFO_CTOR

Definition at line 52 of file RISCVSubtarget.cpp.

◆ GET_SUBTARGETINFO_TARGET_DESC

#define GET_SUBTARGETINFO_TARGET_DESC

Definition at line 51 of file RISCVSubtarget.cpp.

Variable Documentation

◆ RISCVDisableUsingConstantPoolForLargeInts

cl::opt< bool > RISCVDisableUsingConstantPoolForLargeInts("riscv-disable-using-constant-pool-for-large-ints", cl::desc("Disable using constant pool for large integers."), cl::init(false), cl::Hidden) ( "riscv-disable-using-constant-pool-for-large-ints" ,
cl::desc("Disable using constant pool for large integers.") ,
cl::init(false) ,
cl::Hidden  )
static

◆ RISCVMaxBuildIntsCost

cl::opt< unsigned > RISCVMaxBuildIntsCost("riscv-max-build-ints-cost", cl::desc("The maximum cost used for building integers."), cl::init(0), cl::Hidden) ( "riscv-max-build-ints-cost" ,
cl::desc("The maximum cost used for building integers.") ,
cl::init(0) ,
cl::Hidden  )
static

◆ RISCVMinimumJumpTableEntries

cl::opt< unsigned > RISCVMinimumJumpTableEntries("riscv-min-jump-table-entries", cl::Hidden, cl::desc("Set minimum number of entries to use a jump table on RISCV")) ( "riscv-min-jump-table-entries" ,
cl::Hidden ,
cl::desc("Set minimum number of entries to use a jump table on RISCV")  )
static

◆ SchedLoadLatency

cl::opt< unsigned > SchedLoadLatency("riscv-sched-load-latency", cl::Hidden, cl::init(MCSchedModel::DefaultLoadLatency), cl::cat(MCScheduleOptions), cl::desc("Override the load latency (in cycles) in the scheduler model. " "A non-negative value overrides the target default.")) ( "riscv-sched-load-latency" ,
cl::Hidden ,
cl::init(MCSchedModel::DefaultLoadLatency) ,
cl::cat(MCScheduleOptions) ,
cl::desc("Override the load latency (in cycles) in the scheduler model. " "A non-negative value overrides the target default.")  )
static

◆ SchedMispredictPenalty

cl::opt< unsigned > SchedMispredictPenalty("riscv-sched-mispredict-penalty", cl::Hidden, cl::init(MCSchedModel::DefaultMispredictPenalty), cl::cat(MCScheduleOptions), cl::desc("Override the mispredict penalty (in cycles) in the scheduler " "model. A non-negative value overrides the target default.")) ( "riscv-sched-mispredict-penalty" ,
cl::Hidden ,
cl::init(MCSchedModel::DefaultMispredictPenalty) ,
cl::cat(MCScheduleOptions) ,
cl::desc("Override the mispredict penalty (in cycles) in the scheduler " "model. A non-negative value overrides the target default.")  )
static

◆ UseAA

cl::opt< bool > UseAA("riscv-use-aa", cl::init(true), cl::desc("Enable the use of AA during codegen.")) ( "riscv-use-aa" ,
cl::init(true) ,
cl::desc("Enable the use of AA during codegen.")  )
static

◆ UseMIPSCCMovInsn

cl::opt< bool > UseMIPSCCMovInsn("use-riscv-mips-ccmov", cl::desc("Use 'mips.ccmov' instruction"), cl::init(true), cl::Hidden) ( "use-riscv-mips-ccmov" ,
cl::desc("Use 'mips.ccmov' instruction") ,
cl::init(true) ,
cl::Hidden  )
static

◆ UseMIPSLoadStorePairsOpt

cl::opt< bool > UseMIPSLoadStorePairsOpt("use-riscv-mips-load-store-pairs", cl::desc("Enable the load/store pair optimization pass"), cl::init(false), cl::Hidden) ( "use-riscv-mips-load-store-pairs" ,
cl::desc("Enable the load/store pair optimization pass") ,
cl::init(false) ,
cl::Hidden  )
static