v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
graph-assembler.h File Reference
#include <optional>
#include <type_traits>
#include "src/base/small-vector.h"
#include "src/codegen/tnode.h"
#include "src/common/globals.h"
#include "src/compiler/feedback-source.h"
#include "src/compiler/js-graph.h"
#include "src/compiler/node.h"
#include "src/compiler/simplified-operator.h"
#include "src/objects/hole.h"
#include "src/objects/oddball.h"
Include dependency graph for graph-assembler.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::internal::compiler::detail::GraphAssemblerHelper< VarCount >
 
struct  v8::internal::compiler::detail::GraphAssemblerHelper< kGraphAssemblerLabelDynamicCount >
 
class  v8::internal::compiler::GraphAssemblerLabel< VarCount >
 
struct  v8::internal::compiler::detail::GraphAssemblerLabelForXHelper< T, std::enable_if_t< std::conjunction_v< std::is_assignable< T &, Us >... > >, Us... >
 
struct  v8::internal::compiler::detail::GraphAssemblerLabelForXHelper< T, std::enable_if_t< std::is_assignable_v< T &, U > >, base::SmallVector< U, 4 > >
 
class  v8::internal::compiler::GraphAssembler
 
class  v8::internal::compiler::GraphAssembler::LoopScope< Reps >
 
class  v8::internal::compiler::GraphAssembler::LoopScope< Reps >::LoopScopeInternal
 
class  v8::internal::compiler::GraphAssembler::RestoreEffectControlScope
 
class  v8::internal::compiler::JSGraphAssembler
 
class  v8::internal::compiler::JSGraphAssembler::CatchScope
 
class  v8::internal::compiler::JSGraphAssembler::IfBuilder0
 
class  v8::internal::compiler::JSGraphAssembler::IfBuilder1< T, Cond >
 

Namespaces

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

Macros

#define PURE_ASSEMBLER_MACH_UNOP_LIST(V)
 
#define PURE_ASSEMBLER_MACH_BINOP_LIST(V, T)
 
#define CHECKED_ASSEMBLER_MACH_BINOP_LIST(V)
 
#define JSGRAPH_SINGLETON_CONSTANT_LIST(V)
 
#define PURE_UNOP_DECL(Name)
 
#define BINOP_DECL(Name)
 
#define BINOP_DECL_TNODE(Name, Result, Left, Right)
 
#define SINGLETON_CONST_DECL(Name, Type)
 
#define SINGLETON_CONST_TEST_DECL(Name, ...)
 

Typedefs

using v8::internal::compiler::GraphAssemblerDynamicLabel
 
template<typename... Vars>
using v8::internal::compiler::detail::GraphAssemblerLabelForVars
 
template<typename... Reps>
using v8::internal::compiler::detail::GraphAssemblerLabelForReps
 
using v8::internal::compiler::NodeChangedCallback = std::function<void(Node*)>
 

Enumerations

enum class  v8::internal::compiler::GraphAssemblerLabelType { v8::internal::compiler::kDeferred , v8::internal::compiler::kNonDeferred , v8::internal::compiler::kLoop }
 

Variables

constexpr size_t v8::internal::compiler::detail::kGraphAssemblerLabelDynamicCount = ~0u
 

Macro Definition Documentation

◆ BINOP_DECL

#define BINOP_DECL ( Name)
Value:
Node* Name(Node* left, Node* right);

Definition at line 356 of file graph-assembler.h.

◆ BINOP_DECL_TNODE

#define BINOP_DECL_TNODE ( Name,
Result,
Left,
Right )
Value:
TNode<Result> Name(SloppyTNode<Left> left, SloppyTNode<Right> right);

Definition at line 357 of file graph-assembler.h.

◆ CHECKED_ASSEMBLER_MACH_BINOP_LIST

#define CHECKED_ASSEMBLER_MACH_BINOP_LIST ( V)
Value:
V(Int32AddWithOverflow) \
V(Int64AddWithOverflow) \
V(Int32Div) \
V(Int32Mod) \
V(Int32MulWithOverflow) \
V(Int64MulWithOverflow) \
V(Int32SubWithOverflow) \
V(Int64SubWithOverflow) \
V(Int64Div) \
V(Int64Mod) \
V(Uint32Div) \
V(Uint32Mod) \
V(Uint64Div) \
V(Uint64Mod)
#define V(Name)

Definition at line 116 of file graph-assembler.h.

◆ JSGRAPH_SINGLETON_CONSTANT_LIST

#define JSGRAPH_SINGLETON_CONSTANT_LIST ( V)
Value:
V(AllocateInOldGenerationStub, InstructionStream) \
V(AllocateInYoungGenerationStub, InstructionStream) \
IF_WASM(V, WasmAllocateInYoungGenerationStub, InstructionStream) \
IF_WASM(V, WasmAllocateInOldGenerationStub, InstructionStream) \
V(BigIntMap, Map) \
V(BooleanMap, Map) \
V(EmptyString, String) \
V(ExternalObjectMap, Map) \
V(False, Boolean) \
V(FixedArrayMap, Map) \
V(FixedDoubleArrayMap, Map) \
V(WeakFixedArrayMap, Map) \
V(HeapNumberMap, Map) \
V(MinusOne, Number) \
V(NaN, Number) \
V(NoContext, Object) \
V(Null, Null) \
V(One, Number) \
V(TheHole, Hole) \
V(ToNumberBuiltin, InstructionStream) \
V(PlainPrimitiveToNumberBuiltin, InstructionStream) \
V(True, Boolean) \
V(Undefined, Undefined) \
V(Zero, Number)

Definition at line 132 of file graph-assembler.h.

◆ PURE_ASSEMBLER_MACH_BINOP_LIST

#define PURE_ASSEMBLER_MACH_BINOP_LIST ( V,
T )

Definition at line 63 of file graph-assembler.h.

◆ PURE_ASSEMBLER_MACH_UNOP_LIST

#define PURE_ASSEMBLER_MACH_UNOP_LIST ( V)
Value:
V(BitcastFloat32ToInt32) \
V(BitcastFloat64ToInt64) \
V(BitcastInt32ToFloat32) \
V(BitcastWord32ToWord64) \
V(BitcastInt64ToFloat64) \
V(ChangeFloat32ToFloat64) \
V(ChangeFloat64ToInt32) \
V(ChangeFloat64ToInt64) \
V(ChangeFloat64ToUint32) \
V(ChangeFloat64ToUint64) \
V(ChangeInt32ToFloat64) \
V(ChangeInt32ToInt64) \
V(ChangeInt64ToFloat64) \
V(ChangeUint32ToFloat64) \
V(ChangeUint32ToUint64) \
V(Float64Abs) \
V(Float64ExtractHighWord32) \
V(Float64ExtractLowWord32) \
V(Float64SilenceNaN) \
V(RoundFloat64ToInt32) \
V(RoundInt32ToFloat32) \
V(TruncateFloat64ToFloat32) \
V(TruncateFloat64ToWord32) \
V(TruncateInt64ToInt32) \
V(TryTruncateFloat64ToInt64) \
V(TryTruncateFloat64ToUint64) \
V(TryTruncateFloat64ToInt32) \
V(TryTruncateFloat64ToUint32) \
V(Word32ReverseBytes) \
V(Word64ReverseBytes)

Definition at line 31 of file graph-assembler.h.

◆ PURE_UNOP_DECL

#define PURE_UNOP_DECL ( Name)
Value:
Node* Name(Node* input);

Definition at line 352 of file graph-assembler.h.

◆ SINGLETON_CONST_DECL

#define SINGLETON_CONST_DECL ( Name,
Type )
Value:
TNode<Type> Name##Constant();

Definition at line 976 of file graph-assembler.h.

◆ SINGLETON_CONST_TEST_DECL

#define SINGLETON_CONST_TEST_DECL ( Name,
... )
Value:
TNode<Boolean> Is##Name(TNode<Object> value);

Definition at line 980 of file graph-assembler.h.