LLVM
3.7.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
work
release_test
rc4
llvm.src
include
llvm
ExecutionEngine
GenericValue.h
Go to the documentation of this file.
1
//===-- GenericValue.h - Represent any type of LLVM value -------*- 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
// The GenericValue class is used to represent an LLVM value of arbitrary type.
11
//
12
//===----------------------------------------------------------------------===//
13
14
15
#ifndef LLVM_EXECUTIONENGINE_GENERICVALUE_H
16
#define LLVM_EXECUTIONENGINE_GENERICVALUE_H
17
18
#include "
llvm/ADT/APInt.h
"
19
#include "llvm/Support/DataTypes.h"
20
21
namespace
llvm {
22
23
typedef
void
*
PointerTy
;
24
class
APInt
;
25
26
struct
GenericValue
{
27
struct
IntPair
{
28
unsigned
int
first
;
29
unsigned
int
second
;
30
};
31
union
{
32
double
DoubleVal
;
33
float
FloatVal
;
34
PointerTy
PointerVal
;
35
struct
IntPair
UIntPairVal
;
36
unsigned
char
Untyped
[8];
37
};
38
APInt
IntVal
;
// also used for long doubles.
39
// For aggregate data types.
40
std::vector<GenericValue>
AggregateVal
;
41
42
// to make code faster, set GenericValue to zero could be omitted, but it is
43
// potentially can cause problems, since GenericValue to store garbage
44
// instead of zero.
45
GenericValue
() :
IntVal
(1,0) {
UIntPairVal
.
first
= 0;
UIntPairVal
.
second
= 0;}
46
explicit
GenericValue
(
void
*V) :
PointerVal
(V),
IntVal
(1,0) { }
47
};
48
49
inline
GenericValue
PTOGV
(
void
*
P
) {
return
GenericValue
(P); }
50
inline
void
*
GVTOP
(
const
GenericValue
&GV) {
return
GV.
PointerVal
; }
51
52
}
// End llvm namespace.
53
#endif
llvm::GenericValue::PointerVal
PointerTy PointerVal
Definition:
GenericValue.h:34
llvm::GenericValue::AggregateVal
std::vector< GenericValue > AggregateVal
Definition:
GenericValue.h:40
llvm::GenericValue::Untyped
unsigned char Untyped[8]
Definition:
GenericValue.h:36
llvm::GenericValue::IntPair
Definition:
GenericValue.h:27
APInt.h
This file implements a class to represent arbitrary precision integral constant values and operations...
llvm::GenericValue
Definition:
GenericValue.h:26
llvm::GenericValue::DoubleVal
double DoubleVal
Definition:
GenericValue.h:32
P
#define P(N)
llvm::GenericValue::GenericValue
GenericValue(void *V)
Definition:
GenericValue.h:46
llvm::GenericValue::IntPair::first
unsigned int first
Definition:
GenericValue.h:28
llvm::GenericValue::FloatVal
float FloatVal
Definition:
GenericValue.h:33
llvm::GenericValue::UIntPairVal
struct IntPair UIntPairVal
Definition:
GenericValue.h:35
llvm::GVTOP
void * GVTOP(const GenericValue &GV)
Definition:
GenericValue.h:50
llvm::PTOGV
GenericValue PTOGV(void *P)
Definition:
GenericValue.h:49
llvm::APInt
Class for arbitrary precision integers.
Definition:
APInt.h:73
llvm::GenericValue::GenericValue
GenericValue()
Definition:
GenericValue.h:45
llvm::PointerTy
void * PointerTy
Definition:
GenericValue.h:23
llvm::GenericValue::IntVal
APInt IntVal
Definition:
GenericValue.h:38
llvm::GenericValue::IntPair::second
unsigned int second
Definition:
GenericValue.h:29
Generated on Mon Aug 31 2015 11:00:47 for LLVM by
1.8.6