LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SystemZSubtarget.h
Go to the documentation of this file.
1 //===-- SystemZSubtarget.h - SystemZ subtarget information -----*- C++ -*--===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file declares the SystemZ specific subclass of TargetSubtargetInfo.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef SYSTEMZSUBTARGET_H
15 #define SYSTEMZSUBTARGET_H
16 
17 #include "llvm/ADT/Triple.h"
19 #include <string>
20 
21 #define GET_SUBTARGETINFO_HEADER
22 #include "SystemZGenSubtargetInfo.inc"
23 
24 namespace llvm {
25 class GlobalValue;
26 class StringRef;
27 
29  virtual void anchor();
30 protected:
35 
36 private:
37  Triple TargetTriple;
38 
39 public:
40  SystemZSubtarget(const std::string &TT, const std::string &CPU,
41  const std::string &FS);
42 
43  // This is important for reducing register pressure in vector code.
44  virtual bool useAA() const LLVM_OVERRIDE { return true; }
45 
46  // Automatically generated by tblgen.
48 
49  // Return true if the target has the distinct-operands facility.
50  bool hasDistinctOps() const { return HasDistinctOps; }
51 
52  // Return true if the target has the load/store-on-condition facility.
53  bool hasLoadStoreOnCond() const { return HasLoadStoreOnCond; }
54 
55  // Return true if the target has the high-word facility.
56  bool hasHighWord() const { return HasHighWord; }
57 
58  // Return true if the target has the floating-point extension facility.
59  bool hasFPExtension() const { return HasFPExtension; }
60 
61  // Return true if GV can be accessed using LARL for reloc model RM
62  // and code model CM.
64  CodeModel::Model CM) const;
65 
66  bool isTargetELF() const { return TargetTriple.isOSBinFormatELF(); }
67 };
68 } // end namespace llvm
69 
70 #endif
bool isPC32DBLSymbol(const GlobalValue *GV, Reloc::Model RM, CodeModel::Model CM) const
void ParseSubtargetFeatures(StringRef CPU, StringRef FS)
bool hasLoadStoreOnCond() const
SystemZSubtarget(const std::string &TT, const std::string &CPU, const std::string &FS)
bool isOSBinFormatELF() const
Tests whether the OS uses the ELF binary format.
Definition: Triple.h:343
virtual bool useAA() const LLVM_OVERRIDE
bool hasDistinctOps() const
bool hasFPExtension() const
#define LLVM_OVERRIDE
Definition: Compiler.h:155