v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
wasm-compiler.cc File Reference
#include "src/compiler/wasm-compiler.h"
#include <memory>
#include <optional>
#include "src/base/small-vector.h"
#include "src/base/vector.h"
#include "src/codegen/assembler.h"
#include "src/codegen/compiler.h"
#include "src/codegen/interface-descriptors-inl.h"
#include "src/codegen/machine-type.h"
#include "src/codegen/optimized-compilation-info.h"
#include "src/compiler/access-builder.h"
#include "src/compiler/backend/code-generator.h"
#include "src/compiler/backend/instruction-selector.h"
#include "src/compiler/common-operator.h"
#include "src/compiler/compiler-source-position-table.h"
#include "src/compiler/diamond.h"
#include "src/compiler/fast-api-calls.h"
#include "src/compiler/graph-assembler.h"
#include "src/compiler/int64-lowering.h"
#include "src/compiler/linkage.h"
#include "src/compiler/machine-operator.h"
#include "src/compiler/node-matchers.h"
#include "src/compiler/node-origin-table.h"
#include "src/compiler/node-properties.h"
#include "src/compiler/pipeline.h"
#include "src/compiler/turbofan-graph-visualizer.h"
#include "src/compiler/turbofan-graph.h"
#include "src/compiler/turboshaft/wasm-turboshaft-compiler.h"
#include "src/compiler/wasm-call-descriptors.h"
#include "src/compiler/wasm-compiler-definitions.h"
#include "src/compiler/wasm-graph-assembler.h"
#include "src/compiler/wasm-inlining-into-js.h"
#include "src/compiler/write-barrier-kind.h"
#include "src/execution/simulator-base.h"
#include "src/heap/factory.h"
#include "src/logging/counters.h"
#include "src/objects/code-kind.h"
#include "src/objects/heap-number.h"
#include "src/objects/instance-type.h"
#include "src/objects/name.h"
#include "src/objects/string.h"
#include "src/roots/roots.h"
#include "src/tracing/trace-event.h"
#include "src/trap-handler/trap-handler.h"
#include "src/wasm/code-space-access.h"
#include "src/wasm/compilation-environment-inl.h"
#include "src/wasm/function-compiler.h"
#include "src/wasm/jump-table-assembler.h"
#include "src/wasm/memory-tracing.h"
#include "src/wasm/object-access.h"
#include "src/wasm/wasm-code-manager.h"
#include "src/wasm/wasm-constants.h"
#include "src/wasm/wasm-engine.h"
#include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-linkage.h"
#include "src/wasm/wasm-module.h"
#include "src/wasm/wasm-objects-inl.h"
#include "src/wasm/wasm-opcodes-inl.h"
#include "src/wasm/wasm-subtyping.h"

Go to the source code of this file.

Classes

class  v8::internal::compiler::WasmDecorator
 

Namespaces

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

Macros

#define LOAD_ROOT(RootName, factory_name)
 
#define TRACE(x)
 
#define TRAPREASON_TO_TRAPID(name)
 

Functions

template<typename T >
Signature< MachineRepresentation > * v8::internal::compiler::CreateMachineSignature (Zone *zone, const Signature< T > *sig, wasm::CallOrigin origin)
 
template Signature< MachineRepresentation > * v8::internal::compiler::CreateMachineSignature (Zone *, const Signature< wasm::ValueType > *, wasm::CallOrigin)
 
template Signature< MachineRepresentation > * v8::internal::compiler::CreateMachineSignature (Zone *, const Signature< wasm::CanonicalValueType > *, wasm::CallOrigin)
 
void v8::internal::compiler::BuildInlinedJSToWasmWrapper (Zone *zone, MachineGraph *mcgraph, const wasm::CanonicalSig *signature, Isolate *isolate, compiler::SourcePositionTable *spt, Node *frame_state, bool set_in_wasm_flag)
 
std::unique_ptr< OptimizedCompilationJobv8::internal::compiler::NewJSToWasmCompilationJob (Isolate *isolate, const wasm::CanonicalSig *sig)
 
wasm::WasmCompilationResult v8::internal::compiler::CompileWasmImportCallWrapper (wasm::ImportCallKind kind, const wasm::CanonicalSig *sig, bool source_positions, int expected_arity, wasm::Suspend suspend)
 
wasm::WasmCompilationResult v8::internal::compiler::CompileWasmCapiCallWrapper (const wasm::CanonicalSig *sig)
 
bool v8::internal::compiler::IsFastCallSupportedSignature (const v8::CFunctionInfo *sig)
 
wasm::WasmCompilationResult v8::internal::compiler::CompileWasmJSFastCallWrapper (const wasm::CanonicalSig *sig, DirectHandle< JSReceiver > callable)
 
Handle< Codev8::internal::compiler::CompileCWasmEntry (Isolate *isolate, const wasm::CanonicalSig *sig)
 
AssemblerOptions v8::internal::compiler::WasmAssemblerOptions ()
 
AssemblerOptions v8::internal::compiler::WasmStubAssemblerOptions ()
 

Macro Definition Documentation

◆ LOAD_ROOT

#define LOAD_ROOT ( RootName,
factory_name )
Value:
(isolate_ ? graph()->NewNode(mcgraph()->common()->HeapConstant( \
isolate_->factory()->factory_name())) \
: gasm_->LoadImmutable( \
MachineType::Pointer(), BuildLoadIsolateRoot(), \
IsolateData::root_slot_offset(RootIndex::k##RootName)))
TFGraph * graph
Isolate * isolate_
WasmGraphAssembler gasm_

Definition at line 73 of file wasm-compiler.cc.

◆ TRACE

#define TRACE ( x)
Value:
do { \
if (v8_flags.trace_turbo_inlining) { \
StdoutStream() << x << "\n"; \
} \
} while (false)
int x

◆ TRAPREASON_TO_TRAPID

#define TRAPREASON_TO_TRAPID ( name)
Value:
case wasm::k##name: \
static_assert(static_cast<int>(TrapId::k##name) == \
static_cast<int>(Builtin::kThrowWasm##name), \
"trap id mismatch"); \
return TrapId::k##name;
const char * name
Definition builtins.cc:39

Variable Documentation

◆ float32_to_number_operator_

SetOncePointer<const Operator> float32_to_number_operator_
private

Definition at line 1102 of file wasm-compiler.cc.

◆ float64_to_number_operator_

SetOncePointer<const Operator> float64_to_number_operator_
private

Definition at line 1103 of file wasm-compiler.cc.

◆ int32_to_heapnumber_operator_

SetOncePointer<const Operator> int32_to_heapnumber_operator_
private

Definition at line 1100 of file wasm-compiler.cc.

◆ tagged_non_smi_to_int32_operator_

SetOncePointer<const Operator> tagged_non_smi_to_int32_operator_
private

Definition at line 1101 of file wasm-compiler.cc.

◆ tagged_to_float64_operator_

SetOncePointer<const Operator> tagged_to_float64_operator_
private

Definition at line 1104 of file wasm-compiler.cc.

◆ thread_in_wasm_flag_address_

Node* thread_in_wasm_flag_address_
private

Definition at line 701 of file wasm-compiler.cc.

◆ wasm_wrapper_graph_builder_

WasmWrapperGraphBuilder* wasm_wrapper_graph_builder_
private

Definition at line 700 of file wasm-compiler.cc.