LLVM
3.7.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
work
release_test
rc4
llvm.src
include
llvm
Support
CodeGen.h
Go to the documentation of this file.
1
//===-- llvm/Support/CodeGen.h - CodeGen Concepts ---------------*- 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 define some types which define code generation concepts. For
11
// example, relocation model.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_SUPPORT_CODEGEN_H
16
#define LLVM_SUPPORT_CODEGEN_H
17
18
#include "
llvm-c/TargetMachine.h
"
19
#include "
llvm/Support/ErrorHandling.h
"
20
21
namespace
llvm {
22
23
// Relocation model types.
24
namespace
Reloc {
25
enum
Model
{
Default
,
Static
,
PIC_
,
DynamicNoPIC
};
26
}
27
28
// Code model types.
29
namespace
CodeModel {
30
enum
Model
{
Default
,
JITDefault
,
Small
,
Kernel
,
Medium
,
Large
};
31
}
32
33
namespace
PICLevel {
34
enum
Level
{
Default
=0,
Small
=1,
Large
=2 };
35
}
36
37
// TLS models.
38
namespace
TLSModel {
39
enum
Model
{
40
GeneralDynamic
,
41
LocalDynamic
,
42
InitialExec
,
43
LocalExec
44
};
45
}
46
47
// Code generation optimization level.
48
namespace
CodeGenOpt {
49
enum
Level
{
50
None
,
// -O0
51
Less
,
// -O1
52
Default
,
// -O2, -Os
53
Aggressive
// -O3
54
};
55
}
56
57
// Create wrappers for C Binding types (see CBindingWrapping.h).
58
inline
CodeModel::Model
unwrap
(
LLVMCodeModel
Model
) {
59
switch
(Model) {
60
case
LLVMCodeModelDefault
:
61
return
CodeModel::Default
;
62
case
LLVMCodeModelJITDefault
:
63
return
CodeModel::JITDefault
;
64
case
LLVMCodeModelSmall
:
65
return
CodeModel::Small
;
66
case
LLVMCodeModelKernel
:
67
return
CodeModel::Kernel
;
68
case
LLVMCodeModelMedium
:
69
return
CodeModel::Medium
;
70
case
LLVMCodeModelLarge
:
71
return
CodeModel::Large
;
72
}
73
return
CodeModel::Default
;
74
}
75
76
inline
LLVMCodeModel
wrap
(
CodeModel::Model
Model
) {
77
switch
(Model) {
78
case
CodeModel::Default
:
79
return
LLVMCodeModelDefault
;
80
case
CodeModel::JITDefault
:
81
return
LLVMCodeModelJITDefault
;
82
case
CodeModel::Small
:
83
return
LLVMCodeModelSmall
;
84
case
CodeModel::Kernel
:
85
return
LLVMCodeModelKernel
;
86
case
CodeModel::Medium
:
87
return
LLVMCodeModelMedium
;
88
case
CodeModel::Large
:
89
return
LLVMCodeModelLarge
;
90
}
91
llvm_unreachable
(
"Bad CodeModel!"
);
92
}
93
}
// end llvm namespace
94
95
#endif
llvm::CodeModel::Model
Model
Definition:
CodeGen.h:30
LLVMCodeModelMedium
Definition:
c/TargetMachine.h:50
llvm::TLSModel::GeneralDynamic
Definition:
CodeGen.h:40
llvm::CodeModel::Small
Definition:
CodeGen.h:30
llvm::Reloc::Model
Model
Definition:
CodeGen.h:25
llvm::TLSModel::Model
Model
Definition:
CodeGen.h:39
llvm::CodeGenOpt::Aggressive
Definition:
CodeGen.h:53
llvm::PICLevel::Level
Level
Definition:
CodeGen.h:34
LLVMCodeModelKernel
Definition:
c/TargetMachine.h:49
llvm::CodeGenOpt::Default
Definition:
CodeGen.h:52
llvm::PICLevel::Default
Definition:
CodeGen.h:34
llvm_unreachable
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Definition:
ErrorHandling.h:98
ErrorHandling.h
TargetMachine.h
llvm::CodeModel::Medium
Definition:
CodeGen.h:30
llvm::wrap
LLVMTargetDataRef wrap(const DataLayout *P)
Definition:
DataLayout.h:469
llvm::Reloc::Static
Definition:
CodeGen.h:25
llvm::CodeGenOpt::Level
Level
Definition:
CodeGen.h:49
llvm::unwrap
DataLayout * unwrap(LLVMTargetDataRef P)
Definition:
DataLayout.h:465
llvm::CodeModel::JITDefault
Definition:
CodeGen.h:30
LLVMCodeModel
LLVMCodeModel
Definition:
c/TargetMachine.h:45
llvm::TLSModel::LocalDynamic
Definition:
CodeGen.h:41
LLVMCodeModelJITDefault
Definition:
c/TargetMachine.h:47
llvm::Reloc::PIC_
Definition:
CodeGen.h:25
llvm::PICLevel::Large
Definition:
CodeGen.h:34
llvm::CodeModel::Kernel
Definition:
CodeGen.h:30
llvm::CodeGenOpt::None
Definition:
CodeGen.h:50
llvm::Reloc::Default
Definition:
CodeGen.h:25
LLVMCodeModelDefault
Definition:
c/TargetMachine.h:46
LLVMCodeModelSmall
Definition:
c/TargetMachine.h:48
llvm::PICLevel::Small
Definition:
CodeGen.h:34
llvm::TLSModel::LocalExec
Definition:
CodeGen.h:43
llvm::CodeGenOpt::Less
Definition:
CodeGen.h:51
llvm::Reloc::DynamicNoPIC
Definition:
CodeGen.h:25
LLVMCodeModelLarge
Definition:
c/TargetMachine.h:51
llvm::CodeModel::Default
Definition:
CodeGen.h:30
llvm::TLSModel::InitialExec
Definition:
CodeGen.h:42
llvm::CodeModel::Large
Definition:
CodeGen.h:30
Generated on Mon Aug 31 2015 10:59:39 for LLVM by
1.8.6