LLVM  8.0.0svn
AMDGPUMachineFunction.h
Go to the documentation of this file.
1 //===-- AMDGPUMachineFunctionInfo.h -------------------------------*- 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 #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEFUNCTION_H
11 #define LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEFUNCTION_H
12 
13 #include "llvm/ADT/DenseMap.h"
15 
16 namespace llvm {
17 
18 class GCNSubtarget;
19 
21  /// A map to keep track of local memory objects and their offsets within the
22  /// local memory space.
24 
25 protected:
26  uint64_t ExplicitKernArgSize; // Cache for this.
27  unsigned MaxKernArgAlign; // Cache for this.
28 
29  /// Number of bytes in the LDS that are being used.
30  unsigned LDSSize;
31 
32  // Kernels + shaders. i.e. functions called by the driver and not called
33  // by other functions.
35 
37 
38  // Function may be memory bound.
40 
41  // Kernel may need limited waves per EU for better performance.
43 
44 public:
46 
47  uint64_t getExplicitKernArgSize() const {
48  return ExplicitKernArgSize;
49  }
50 
51  unsigned getMaxKernArgAlign() const {
52  return MaxKernArgAlign;
53  }
54 
55  unsigned getLDSSize() const {
56  return LDSSize;
57  }
58 
59  bool isEntryFunction() const {
60  return IsEntryFunction;
61  }
62 
63  bool hasNoSignedZerosFPMath() const {
64  return NoSignedZerosFPMath;
65  }
66 
67  bool isMemoryBound() const {
68  return MemoryBound;
69  }
70 
71  bool needsWaveLimiter() const {
72  return WaveLimiter;
73  }
74 
75  unsigned allocateLDSGlobal(const DataLayout &DL, const GlobalValue &GV);
76 };
77 
78 }
79 #endif
A parsed version of the target data layout string in and methods for querying it. ...
Definition: DataLayout.h:111
unsigned allocateLDSGlobal(const DataLayout &DL, const GlobalValue &GV)
This class represents lattice values for constants.
Definition: AllocatorList.h:24
AMDGPUMachineFunction(const MachineFunction &MF)
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
unsigned LDSSize
Number of bytes in the LDS that are being used.