Coverage Report

Created: 2017-10-03 07:32

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h
Line
Count
Source (jump to first uncovered line)
1
//===- NVPTXRegisterInfo.h - NVPTX Register Information Impl ----*- 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 contains the NVPTX implementation of the TargetRegisterInfo class.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_LIB_TARGET_NVPTX_NVPTXREGISTERINFO_H
15
#define LLVM_LIB_TARGET_NVPTX_NVPTXREGISTERINFO_H
16
17
#include "ManagedStringPool.h"
18
#include "llvm/Target/TargetRegisterInfo.h"
19
#include <sstream>
20
21
#define GET_REGINFO_HEADER
22
#include "NVPTXGenRegisterInfo.inc"
23
24
namespace llvm {
25
class NVPTXRegisterInfo : public NVPTXGenRegisterInfo {
26
private:
27
  // Hold Strings that can be free'd all together with NVPTXRegisterInfo
28
  ManagedStringPool ManagedStrPool;
29
30
public:
31
  NVPTXRegisterInfo();
32
33
  //------------------------------------------------------
34
  // Pure virtual functions from TargetRegisterInfo
35
  //------------------------------------------------------
36
37
  // NVPTX callee saved registers
38
  const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override;
39
40
  BitVector getReservedRegs(const MachineFunction &MF) const override;
41
42
  void eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj,
43
                           unsigned FIOperandNum,
44
                           RegScavenger *RS = nullptr) const override;
45
46
  unsigned getFrameRegister(const MachineFunction &MF) const override;
47
48
0
  ManagedStringPool *getStrPool() const {
49
0
    return const_cast<ManagedStringPool *>(&ManagedStrPool);
50
0
  }
51
52
0
  const char *getName(unsigned RegNo) const {
53
0
    std::stringstream O;
54
0
    O << "reg" << RegNo;
55
0
    return getStrPool()->getManagedString(O.str().c_str())->c_str();
56
0
  }
57
58
};
59
60
std::string getNVPTXRegClassName(const TargetRegisterClass *RC);
61
std::string getNVPTXRegClassStr(const TargetRegisterClass *RC);
62
63
} // end namespace llvm
64
65
#endif