Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/lib/Target/AMDGPU/SIProgramInfo.h
Line
Count
Source
1
//===--- SIProgramInfo.h ----------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
/// \file
10
/// Defines struct to track resource usage for kernels and entry functions.
11
///
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_LIB_TARGET_AMDGPU_SIPROGRAMINFO_H
16
#define LLVM_LIB_TARGET_AMDGPU_SIPROGRAMINFO_H
17
18
namespace llvm {
19
20
/// Track resource usage for kernels / entry functions.
21
struct SIProgramInfo {
22
    // Fields set in PGM_RSRC1 pm4 packet.
23
    uint32_t VGPRBlocks = 0;
24
    uint32_t SGPRBlocks = 0;
25
    uint32_t Priority = 0;
26
    uint32_t FloatMode = 0;
27
    uint32_t Priv = 0;
28
    uint32_t DX10Clamp = 0;
29
    uint32_t DebugMode = 0;
30
    uint32_t IEEEMode = 0;
31
    uint32_t WgpMode = 0; // GFX10+
32
    uint32_t MemOrdered = 0; // GFX10+
33
    uint64_t ScratchSize = 0;
34
35
    uint64_t ComputePGMRSrc1 = 0;
36
37
    // Fields set in PGM_RSRC2 pm4 packet.
38
    uint32_t LDSBlocks = 0;
39
    uint32_t ScratchBlocks = 0;
40
41
    uint64_t ComputePGMRSrc2 = 0;
42
43
    uint32_t NumVGPR = 0;
44
    uint32_t NumSGPR = 0;
45
    uint32_t LDSSize = 0;
46
    bool FlatUsed = false;
47
48
    // Number of SGPRs that meets number of waves per execution unit request.
49
    uint32_t NumSGPRsForWavesPerEU = 0;
50
51
    // Number of VGPRs that meets number of waves per execution unit request.
52
    uint32_t NumVGPRsForWavesPerEU = 0;
53
54
    // Whether there is recursion, dynamic allocas, indirect calls or some other
55
    // reason there may be statically unknown stack usage.
56
    bool DynamicCallStack = false;
57
58
    // Bonus information for debugging.
59
    bool VCCUsed = false;
60
61
27.8k
    SIProgramInfo() = default;
62
};
63
64
} // namespace llvm
65
66
#endif // LLVM_LIB_TARGET_AMDGPU_SIPROGRAMINFO_H