31 bool VectorABI =
true;
32 if (CPU.
empty() || CPU ==
"generic" ||
33 CPU ==
"z10" || CPU ==
"z196" || CPU ==
"zEC12")
37 FS.
split(Features,
',', -1,
false );
38 for (
auto &Feature : Features) {
39 if (Feature ==
"vector" || Feature ==
"+vector")
41 if (Feature ==
"-vector")
62 Ret +=
"-i1:8:16-i8:8:16";
100 Subtarget(TT, CPU, FS, *this) {
114 return getTM<SystemZTargetMachine>();
119 return new ScheduleDAGMI(C, make_unique<SystemZPostRASchedStrategy>(C),
123 void addIRPasses()
override;
124 bool addInstSelector()
override;
125 bool addILPOpts()
override;
126 void addPreSched2()
override;
127 void addPreEmitPass()
override;
131 void SystemZPassConfig::addIRPasses() {
138 bool SystemZPassConfig::addInstSelector() {
147 bool SystemZPassConfig::addILPOpts() {
152 void SystemZPassConfig::addPreSched2() {
159 void SystemZPassConfig::addPreEmitPass() {
202 return new SystemZPassConfig(
this, PM);
virtual void addIRPasses()
Add common target configurable passes that perform LLVM IR to IR transforms following machine indepen...
char & EarlyIfConverterID
EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions...
Analysis pass providing the TargetTransformInfo.
ScheduleDAGMI is an implementation of ScheduleDAGInstrs that simply schedules machine instructions ac...
static const char * getManglingComponent(const Triple &T)
~SystemZTargetMachine() override
TargetIRAnalysis getTargetIRAnalysis() override
Get a TargetIRAnalysis implementation for the target.
SystemZTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Optional< Reloc::Model > RM, CodeModel::Model CM, CodeGenOpt::Level OL)
FunctionPass * createSystemZTDCPass()
FunctionPass * createSystemZISelDag(SystemZTargetMachine &TM, CodeGenOpt::Level OptLevel)
static std::string computeDataLayout(const Triple &TT, StringRef CPU, StringRef FS)
Target-Independent Code Generator Pass Configuration Options.
FunctionPass * createSystemZShortenInstPass(SystemZTargetMachine &TM)
std::enable_if<!std::is_array< T >::value, std::unique_ptr< T > >::type make_unique(Args &&...args)
Constructs a new T() with the given args and returns a unique_ptr<T> which owns the object...
static Reloc::Model getEffectiveRelocModel(Optional< Reloc::Model > RM)
static bool UsesVectorABI(StringRef CPU, StringRef FS)
TargetPassConfig * createPassConfig(PassManagerBase &PM) override
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of ...
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
This class describes a target machine that is implemented with the LLVM target-independent code gener...
Triple - Helper class for working with autoconf configuration names.
FunctionPass * createSystemZExpandPseudoPass(SystemZTargetMachine &TM)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
FunctionPass * createSystemZLongBranchPass(SystemZTargetMachine &TM)
static GCRegistry::Add< ShadowStackGC > C("shadow-stack","Very portable GC for uncooperative code generators")
void LLVMInitializeSystemZTarget()
Target - Wrapper for Target specific information.
LLVM_NODISCARD std::pair< StringRef, StringRef > split(char Separator) const
Split into two substrings around the first occurrence of a separator character.
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE bool empty() const
empty - Check if the string is empty.
Target & getTheSystemZTarget()
ScheduleDAGInstrs - A ScheduleDAG subclass for scheduling lists of MachineInstrs. ...
FunctionPass * createSystemZLDCleanupPass(SystemZTargetMachine &TM)
char & PostMachineSchedulerID
PostMachineScheduler - This pass schedules machine instructions postRA.
char & IfConverterID
IfConverter - This pass performs machine code if conversion.
MachineSchedContext provides enough context from the MachineScheduler pass for the target to instanti...
FunctionPass * createSystemZElimComparePass(SystemZTargetMachine &TM)
RegisterTargetMachine - Helper template for registering a target machine implementation, for use in the target machine initialization function.
const FeatureBitset Features
StringRef - Represent a constant reference to a string, i.e.