003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/lib/Target/SystemZ
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
lib
/
Target
/
SystemZ
/
📁
..
📁
AsmParser
📁
Disassembler
📁
MCTargetDesc
📄
README.txt
(3.94 KB)
📄
SystemZ.h
(8.19 KB)
📄
SystemZ.td
(2.86 KB)
📄
SystemZAsmPrinter.cpp
(23.49 KB)
📄
SystemZAsmPrinter.h
(1.88 KB)
📄
SystemZCallingConv.cpp
(710 B)
📄
SystemZCallingConv.h
(4.89 KB)
📄
SystemZCallingConv.td
(6.99 KB)
📄
SystemZConstantPoolValue.cpp
(1.78 KB)
📄
SystemZConstantPoolValue.h
(1.75 KB)
📄
SystemZCopyPhysRegs.cpp
(3.82 KB)
📄
SystemZElimCompare.cpp
(26.21 KB)
📄
SystemZFeatures.td
(12.3 KB)
📄
SystemZFrameLowering.cpp
(29.88 KB)
📄
SystemZFrameLowering.h
(3.02 KB)
📄
SystemZHazardRecognizer.cpp
(14.75 KB)
📄
SystemZHazardRecognizer.h
(5.86 KB)
📄
SystemZISelDAGToDAG.cpp
(68.74 KB)
📄
SystemZISelLowering.cpp
(321.22 KB)
📄
SystemZISelLowering.h
(28.44 KB)
📄
SystemZInstrBuilder.h
(1.63 KB)
📄
SystemZInstrDFP.td
(9.3 KB)
📄
SystemZInstrFP.td
(26.21 KB)
📄
SystemZInstrFormats.td
(182.82 KB)
📄
SystemZInstrHFP.td
(9.46 KB)
📄
SystemZInstrInfo.cpp
(69.75 KB)
📄
SystemZInstrInfo.h
(14.6 KB)
📄
SystemZInstrInfo.td
(103.17 KB)
📄
SystemZInstrSystem.td
(17.18 KB)
📄
SystemZInstrVector.td
(84.36 KB)
📄
SystemZLDCleanup.cpp
(4.91 KB)
📄
SystemZLongBranch.cpp
(16.04 KB)
📄
SystemZMCInstLower.cpp
(3.16 KB)
📄
SystemZMCInstLower.h
(1.28 KB)
📄
SystemZMachineFunctionInfo.cpp
(508 B)
📄
SystemZMachineFunctionInfo.h
(3.77 KB)
📄
SystemZMachineScheduler.cpp
(8.76 KB)
📄
SystemZMachineScheduler.h
(5.05 KB)
📄
SystemZOperands.td
(24.89 KB)
📄
SystemZOperators.td
(48.97 KB)
📄
SystemZPatterns.td
(8.52 KB)
📄
SystemZPostRewrite.cpp
(10.33 KB)
📄
SystemZProcessors.td
(1.78 KB)
📄
SystemZRegisterInfo.cpp
(16.27 KB)
📄
SystemZRegisterInfo.h
(3.52 KB)
📄
SystemZRegisterInfo.td
(12.04 KB)
📄
SystemZSchedule.td
(2.1 KB)
📄
SystemZScheduleZ13.td
(72.43 KB)
📄
SystemZScheduleZ14.td
(78.06 KB)
📄
SystemZScheduleZ15.td
(80.69 KB)
📄
SystemZScheduleZ196.td
(55.68 KB)
📄
SystemZScheduleZEC12.td
(57.44 KB)
📄
SystemZSelectionDAGInfo.cpp
(12.92 KB)
📄
SystemZSelectionDAGInfo.h
(3.15 KB)
📄
SystemZShortenInst.cpp
(12 KB)
📄
SystemZSubtarget.cpp
(3.67 KB)
📄
SystemZSubtarget.h
(9.14 KB)
📄
SystemZTDC.cpp
(13.52 KB)
📄
SystemZTargetMachine.cpp
(11.58 KB)
📄
SystemZTargetMachine.h
(2.09 KB)
📄
SystemZTargetTransformInfo.cpp
(43.51 KB)
📄
SystemZTargetTransformInfo.h
(4.88 KB)
📁
TargetInfo
Editing: SystemZSubtarget.h
//===-- SystemZSubtarget.h - SystemZ subtarget information -----*- C++ -*--===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file declares the SystemZ specific subclass of TargetSubtargetInfo. // //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSUBTARGET_H #define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSUBTARGET_H #include "SystemZFrameLowering.h" #include "SystemZISelLowering.h" #include "SystemZInstrInfo.h" #include "SystemZRegisterInfo.h" #include "SystemZSelectionDAGInfo.h" #include "llvm/ADT/Triple.h" #include "llvm/CodeGen/TargetSubtargetInfo.h" #include "llvm/IR/DataLayout.h" #include <string> #define GET_SUBTARGETINFO_HEADER #include "SystemZGenSubtargetInfo.inc" namespace llvm { class GlobalValue; class StringRef; class SystemZSubtarget : public SystemZGenSubtargetInfo { virtual void anchor(); protected: bool HasDistinctOps; bool HasLoadStoreOnCond; bool HasHighWord; bool HasFPExtension; bool HasPopulationCount; bool HasMessageSecurityAssist3; bool HasMessageSecurityAssist4; bool HasResetReferenceBitsMultiple; bool HasFastSerialization; bool HasInterlockedAccess1; bool HasMiscellaneousExtensions; bool HasExecutionHint; bool HasLoadAndTrap; bool HasTransactionalExecution; bool HasProcessorAssist; bool HasDFPZonedConversion; bool HasEnhancedDAT2; bool HasVector; bool HasLoadStoreOnCond2; bool HasLoadAndZeroRightmostByte; bool HasMessageSecurityAssist5; bool HasDFPPackedConversion; bool HasMiscellaneousExtensions2; bool HasGuardedStorage; bool HasMessageSecurityAssist7; bool HasMessageSecurityAssist8; bool HasVectorEnhancements1; bool HasVectorPackedDecimal; bool HasInsertReferenceBitsMultiple; bool HasMiscellaneousExtensions3; bool HasMessageSecurityAssist9; bool HasVectorEnhancements2; bool HasVectorPackedDecimalEnhancement; bool HasEnhancedSort; bool HasDeflateConversion; bool HasSoftFloat; private: Triple TargetTriple; SystemZInstrInfo InstrInfo; SystemZTargetLowering TLInfo; SystemZSelectionDAGInfo TSInfo; SystemZFrameLowering FrameLowering; SystemZSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS); public: SystemZSubtarget(const Triple &TT, const std::string &CPU, const std::string &FS, const TargetMachine &TM); const TargetFrameLowering *getFrameLowering() const override { return &FrameLowering; } const SystemZInstrInfo *getInstrInfo() const override { return &InstrInfo; } const SystemZRegisterInfo *getRegisterInfo() const override { return &InstrInfo.getRegisterInfo(); } const SystemZTargetLowering *getTargetLowering() const override { return &TLInfo; } const SelectionDAGTargetInfo *getSelectionDAGInfo() const override { return &TSInfo; } // True if the subtarget should run MachineScheduler after aggressive // coalescing. This currently replaces the SelectionDAG scheduler with the // "source" order scheduler. bool enableMachineScheduler() const override { return true; } // This is important for reducing register pressure in vector code. bool useAA() const override { return true; } // Always enable the early if-conversion pass. bool enableEarlyIfConversion() const override { return true; } // Enable tracking of subregister liveness in register allocator. bool enableSubRegLiveness() const override; // Automatically generated by tblgen. void ParseSubtargetFeatures(StringRef CPU, StringRef FS); // Return true if the target has the distinct-operands facility. bool hasDistinctOps() const { return HasDistinctOps; } // Return true if the target has the load/store-on-condition facility. bool hasLoadStoreOnCond() const { return HasLoadStoreOnCond; } // Return true if the target has the load/store-on-condition facility 2. bool hasLoadStoreOnCond2() const { return HasLoadStoreOnCond2; } // Return true if the target has the high-word facility. bool hasHighWord() const { return HasHighWord; } // Return true if the target has the floating-point extension facility. bool hasFPExtension() const { return HasFPExtension; } // Return true if the target has the population-count facility. bool hasPopulationCount() const { return HasPopulationCount; } // Return true if the target has the message-security-assist // extension facility 3. bool hasMessageSecurityAssist3() const { return HasMessageSecurityAssist3; } // Return true if the target has the message-security-assist // extension facility 4. bool hasMessageSecurityAssist4() const { return HasMessageSecurityAssist4; } // Return true if the target has the reset-reference-bits-multiple facility. bool hasResetReferenceBitsMultiple() const { return HasResetReferenceBitsMultiple; } // Return true if the target has the fast-serialization facility. bool hasFastSerialization() const { return HasFastSerialization; } // Return true if the target has interlocked-access facility 1. bool hasInterlockedAccess1() const { return HasInterlockedAccess1; } // Return true if the target has the miscellaneous-extensions facility. bool hasMiscellaneousExtensions() const { return HasMiscellaneousExtensions; } // Return true if the target has the execution-hint facility. bool hasExecutionHint() const { return HasExecutionHint; } // Return true if the target has the load-and-trap facility. bool hasLoadAndTrap() const { return HasLoadAndTrap; } // Return true if the target has the transactional-execution facility. bool hasTransactionalExecution() const { return HasTransactionalExecution; } // Return true if the target has the processor-assist facility. bool hasProcessorAssist() const { return HasProcessorAssist; } // Return true if the target has the DFP zoned-conversion facility. bool hasDFPZonedConversion() const { return HasDFPZonedConversion; } // Return true if the target has the enhanced-DAT facility 2. bool hasEnhancedDAT2() const { return HasEnhancedDAT2; } // Return true if the target has the load-and-zero-rightmost-byte facility. bool hasLoadAndZeroRightmostByte() const { return HasLoadAndZeroRightmostByte; } // Return true if the target has the message-security-assist // extension facility 5. bool hasMessageSecurityAssist5() const { return HasMessageSecurityAssist5; } // Return true if the target has the DFP packed-conversion facility. bool hasDFPPackedConversion() const { return HasDFPPackedConversion; } // Return true if the target has the vector facility. bool hasVector() const { return HasVector; } // Return true if the target has the miscellaneous-extensions facility 2. bool hasMiscellaneousExtensions2() const { return HasMiscellaneousExtensions2; } // Return true if the target has the guarded-storage facility. bool hasGuardedStorage() const { return HasGuardedStorage; } // Return true if the target has the message-security-assist // extension facility 7. bool hasMessageSecurityAssist7() const { return HasMessageSecurityAssist7; } // Return true if the target has the message-security-assist // extension facility 8. bool hasMessageSecurityAssist8() const { return HasMessageSecurityAssist8; } // Return true if the target has the vector-enhancements facility 1. bool hasVectorEnhancements1() const { return HasVectorEnhancements1; } // Return true if the target has the vector-packed-decimal facility. bool hasVectorPackedDecimal() const { return HasVectorPackedDecimal; } // Return true if the target has the insert-reference-bits-multiple facility. bool hasInsertReferenceBitsMultiple() const { return HasInsertReferenceBitsMultiple; } // Return true if the target has the miscellaneous-extensions facility 3. bool hasMiscellaneousExtensions3() const { return HasMiscellaneousExtensions3; } // Return true if the target has the message-security-assist // extension facility 9. bool hasMessageSecurityAssist9() const { return HasMessageSecurityAssist9; } // Return true if the target has the vector-enhancements facility 2. bool hasVectorEnhancements2() const { return HasVectorEnhancements2; } // Return true if the target has the vector-packed-decimal // enhancement facility. bool hasVectorPackedDecimalEnhancement() const { return HasVectorPackedDecimalEnhancement; } // Return true if the target has the enhanced-sort facility. bool hasEnhancedSort() const { return HasEnhancedSort; } // Return true if the target has the deflate-conversion facility. bool hasDeflateConversion() const { return HasDeflateConversion; } // Return true if soft float should be used. bool hasSoftFloat() const { return HasSoftFloat; } // Return true if GV can be accessed using LARL for reloc model RM // and code model CM. bool isPC32DBLSymbol(const GlobalValue *GV, CodeModel::Model CM) const; bool isTargetELF() const { return TargetTriple.isOSBinFormatELF(); } }; } // end namespace llvm #endif
Upload File
Create Folder