Coverage Report

Created: 2017-10-03 07:32

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h
Line
Count
Source (jump to first uncovered line)
1
//===-- XCoreTargetTransformInfo.h - XCore specific TTI ---------*- 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
/// \file
10
/// This file a TargetTransformInfo::Concept conforming object specific to the
11
/// XCore target machine. It uses the target's detailed information to
12
/// provide more precise answers to certain TTI queries, while letting the
13
/// target independent and default TTI implementations handle the rest.
14
///
15
//===----------------------------------------------------------------------===//
16
17
#ifndef LLVM_LIB_TARGET_XCORE_XCORETARGETTRANSFORMINFO_H
18
#define LLVM_LIB_TARGET_XCORE_XCORETARGETTRANSFORMINFO_H
19
20
#include "XCore.h"
21
#include "XCoreTargetMachine.h"
22
#include "llvm/Analysis/TargetTransformInfo.h"
23
#include "llvm/CodeGen/BasicTTIImpl.h"
24
#include "llvm/Target/TargetLowering.h"
25
26
namespace llvm {
27
28
class XCoreTTIImpl : public BasicTTIImplBase<XCoreTTIImpl> {
29
  typedef BasicTTIImplBase<XCoreTTIImpl> BaseT;
30
  typedef TargetTransformInfo TTI;
31
  friend BaseT;
32
33
  const XCoreSubtarget *ST;
34
  const XCoreTargetLowering *TLI;
35
36
0
  const XCoreSubtarget *getST() const { return ST; }
37
10
  const XCoreTargetLowering *getTLI() const { return TLI; }
38
39
public:
40
  explicit XCoreTTIImpl(const XCoreTargetMachine *TM, const Function &F)
41
      : BaseT(TM, F.getParent()->getDataLayout()), ST(TM->getSubtargetImpl()),
42
1.34k
        TLI(ST->getTargetLowering()) {}
43
44
6
  unsigned getNumberOfRegisters(bool Vector) {
45
6
    if (
Vector6
) {
46
2
      return 0;
47
2
    }
48
4
    return 12;
49
6
  }
50
};
51
52
} // end namespace llvm
53
54
#endif