Coverage Report

Created: 2017-10-03 07:32

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/CodeGen/Spiller.h
Line
Count
Source (jump to first uncovered line)
1
//===- llvm/CodeGen/Spiller.h - Spiller -------------------------*- 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_CODEGEN_SPILLER_H
11
#define LLVM_LIB_CODEGEN_SPILLER_H
12
13
namespace llvm {
14
15
class LiveRangeEdit;
16
class MachineFunction;
17
class MachineFunctionPass;
18
class VirtRegMap;
19
20
  /// Spiller interface.
21
  ///
22
  /// Implementations are utility classes which insert spill or remat code on
23
  /// demand.
24
  class Spiller {
25
    virtual void anchor();
26
27
  public:
28
    virtual ~Spiller() = 0;
29
30
    /// spill - Spill the LRE.getParent() live interval.
31
    virtual void spill(LiveRangeEdit &LRE) = 0;
32
33
0
    virtual void postOptimization() {}
34
  };
35
36
  /// Create and return a spiller that will insert spill code directly instead
37
  /// of deferring though VirtRegMap.
38
  Spiller *createInlineSpiller(MachineFunctionPass &pass,
39
                               MachineFunction &mf,
40
                               VirtRegMap &vrm);
41
42
} // end namespace llvm
43
44
#endif // LLVM_LIB_CODEGEN_SPILLER_H