Deleted Added
full compact
GVMaterializer.h (276479) GVMaterializer.h (280031)
1//===- GVMaterializer.h - Interface for GV materializers --------*- 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//===----------------------------------------------------------------------===//

--- 5 unchanged lines hidden (view full) ---

14// at the same time.
15//
16//===----------------------------------------------------------------------===//
17
18#ifndef LLVM_IR_GVMATERIALIZER_H
19#define LLVM_IR_GVMATERIALIZER_H
20
21#include <system_error>
1//===- GVMaterializer.h - Interface for GV materializers --------*- 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//===----------------------------------------------------------------------===//

--- 5 unchanged lines hidden (view full) ---

14// at the same time.
15//
16//===----------------------------------------------------------------------===//
17
18#ifndef LLVM_IR_GVMATERIALIZER_H
19#define LLVM_IR_GVMATERIALIZER_H
20
21#include <system_error>
22#include <vector>
22
23namespace llvm {
24class Function;
25class GlobalValue;
26class Module;
23
24namespace llvm {
25class Function;
26class GlobalValue;
27class Module;
28class StructType;
27
28class GVMaterializer {
29protected:
30 GVMaterializer() {}
31
32public:
33 virtual ~GVMaterializer();
34
29
30class GVMaterializer {
31protected:
32 GVMaterializer() {}
33
34public:
35 virtual ~GVMaterializer();
36
35 /// True if GV can be materialized from whatever backing store this
36 /// GVMaterializer uses and has not been materialized yet.
37 virtual bool isMaterializable(const GlobalValue *GV) const = 0;
38
39 /// True if GV has been materialized and can be dematerialized back to
40 /// whatever backing store this GVMaterializer uses.
41 virtual bool isDematerializable(const GlobalValue *GV) const = 0;
42
43 /// Make sure the given GlobalValue is fully read.
44 ///
37 /// True if GV has been materialized and can be dematerialized back to
38 /// whatever backing store this GVMaterializer uses.
39 virtual bool isDematerializable(const GlobalValue *GV) const = 0;
40
41 /// Make sure the given GlobalValue is fully read.
42 ///
45 virtual std::error_code Materialize(GlobalValue *GV) = 0;
43 virtual std::error_code materialize(GlobalValue *GV) = 0;
46
47 /// If the given GlobalValue is read in, and if the GVMaterializer supports
48 /// it, release the memory for the GV, and set it up to be materialized
49 /// lazily. If the Materializer doesn't support this capability, this method
50 /// is a noop.
51 ///
52 virtual void Dematerialize(GlobalValue *) {}
53
54 /// Make sure the entire Module has been completely read.
55 ///
56 virtual std::error_code MaterializeModule(Module *M) = 0;
57
44
45 /// If the given GlobalValue is read in, and if the GVMaterializer supports
46 /// it, release the memory for the GV, and set it up to be materialized
47 /// lazily. If the Materializer doesn't support this capability, this method
48 /// is a noop.
49 ///
50 virtual void Dematerialize(GlobalValue *) {}
51
52 /// Make sure the entire Module has been completely read.
53 ///
54 virtual std::error_code MaterializeModule(Module *M) = 0;
55
58 virtual void releaseBuffer() = 0;
56 virtual std::vector<StructType *> getIdentifiedStructTypes() const = 0;
59};
60
61} // End llvm namespace
62
63#endif
57};
58
59} // End llvm namespace
60
61#endif