v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
turbofan-typer.cc File Reference
Include dependency graph for turbofan-typer.cc:

Go to the source code of this file.

Classes

class  v8::internal::compiler::Typer::Decorator
 
class  v8::internal::compiler::Typer::Visitor
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::compiler
 

Macros

#define DECLARE_UNARY_CASE(x, ...)
 
#define DECLARE_BINARY_CASE(x, ...)
 
#define DECLARE_OTHER_CASE(x, ...)
 
#define DECLARE_IMPOSSIBLE_CASE(x, ...)
 
#define DECLARE_METHOD(x, ...)
 
#define DECLARE_METHOD(x, ...)
 
#define DECLARE_METHOD(Name)
 
#define DECLARE_METHOD(Name)
 
#define DECLARE_METHOD(Name, ...)
 
#define DECLARE_METHOD(Name, ...)
 
#define DECLARE_METHOD(Name, ...)
 
#define DECLARE_METHOD(x, ...)
 
#define CASE(x)
 
#define DEFINE_METHOD(Name)
 
#define BIGINT_COMPARISON_BINOP(Name)
 
#define TYPED_ARRAY_CASE(ElemType, type, TYPE, ctype)
 
#define TYPED_ARRAY_CASE(ElemType, type, TYPE, ctype)
 

Macro Definition Documentation

◆ BIGINT_COMPARISON_BINOP

#define BIGINT_COMPARISON_BINOP ( Name)
Value:
Type Typer::Visitor::Type##Name(Node* node) { \
return TypeBinaryOp(node, BigIntCompareTyper); \
}

Definition at line 2309 of file turbofan-typer.cc.

◆ CASE

#define CASE ( x)
Value:
case IrOpcode::k##x: \
type = Type##x(type, increment_type); \
break;
int x

◆ DECLARE_BINARY_CASE

#define DECLARE_BINARY_CASE ( x,
... )
Value:
case IrOpcode::k##x: \
return Type##x(Operand(node, 0), Operand(node, 1));

◆ DECLARE_IMPOSSIBLE_CASE

#define DECLARE_IMPOSSIBLE_CASE ( x,
... )
Value:
case IrOpcode::k##x:

◆ DECLARE_METHOD [1/8]

#define DECLARE_METHOD ( Name)
Value:
static Type Name(Type type, Typer* t) { \
return t->operation_typer_.Name(type); \
}

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_METHOD [2/8]

#define DECLARE_METHOD ( Name)
Value:
static Type Name(Type lhs, Type rhs, Typer* t) { \
return t->operation_typer_.Name(lhs, rhs); \
}

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_METHOD [3/8]

#define DECLARE_METHOD ( Name,
... )
Value:
inline Type Type##Name(Type left, Type right) { \
return TypeBinaryOp(left, right, Name##Typer); \
}

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_METHOD [4/8]

#define DECLARE_METHOD ( Name,
... )
Value:
inline Type Type##Name(Type left, Type right) { \
return TypeBinaryOp(left, right, Name); \
}

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_METHOD [5/8]

#define DECLARE_METHOD ( Name,
... )
Value:
inline Type Type##Name(Type input) { return TypeUnaryOp(input, Name); }

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_METHOD [6/8]

#define DECLARE_METHOD ( x,
... )
Value:
inline Type Type##x(Node* node);

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_METHOD [7/8]

#define DECLARE_METHOD ( x,
... )
Value:
inline Type Type##x(Type input);

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_METHOD [8/8]

#define DECLARE_METHOD ( x,
... )
Value:
static Type x##Typer(Type, Type, Typer*);

Definition at line 284 of file turbofan-typer.cc.

◆ DECLARE_OTHER_CASE

#define DECLARE_OTHER_CASE ( x,
... )
Value:
case IrOpcode::k##x: \
return Type##x(node);

◆ DECLARE_UNARY_CASE

#define DECLARE_UNARY_CASE ( x,
... )
Value:
case IrOpcode::k##x: \
return Type##x(Operand(node, 0));

◆ DEFINE_METHOD

#define DEFINE_METHOD ( Name)
Value:
Type Typer::Visitor::TypeJS##Name(Type input) { \
return TypeUnaryOp(input, Name); \
}

Definition at line 1450 of file turbofan-typer.cc.

◆ TYPED_ARRAY_CASE [1/2]

#define TYPED_ARRAY_CASE ( ElemType,
type,
TYPE,
ctype )
Value:
case kExternal##ElemType##Array: \
return typer_->cache_->k##ElemType;

◆ TYPED_ARRAY_CASE [2/2]

#define TYPED_ARRAY_CASE ( ElemType,
type,
TYPE,
ctype )
Value:
case kExternal##ElemType##Array: \
return typer_->cache_->k##ElemType;