v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::RepresentationChanger Class Referencefinal

#include <representation-change.h>

Collaboration diagram for v8::internal::compiler::RepresentationChanger:

Public Member Functions

 RepresentationChanger (JSGraph *jsgraph, JSHeapBroker *broker, SimplifiedLoweringVerifier *verifier)
 
NodeGetRepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Node *use_node, UseInfo use_info)
 
const OperatorInt32OperatorFor (IrOpcode::Value opcode)
 
const OperatorInt32OverflowOperatorFor (IrOpcode::Value opcode)
 
const OperatorAdditiveSafeIntegerOverflowOperatorFor (IrOpcode::Value opcode)
 
const OperatorInt64OperatorFor (IrOpcode::Value opcode)
 
const OperatorInt64OverflowOperatorFor (IrOpcode::Value opcode)
 
const OperatorBigIntOperatorFor (IrOpcode::Value opcode)
 
const OperatorTaggedSignedOperatorFor (IrOpcode::Value opcode)
 
const OperatorUint32OperatorFor (IrOpcode::Value opcode)
 
const OperatorUint32OverflowOperatorFor (IrOpcode::Value opcode)
 
const OperatorFloat64OperatorFor (IrOpcode::Value opcode)
 
MachineType TypeForBasePointer (const FieldAccess &access)
 
MachineType TypeForBasePointer (const ElementAccess &access)
 
bool verification_enabled () const
 

Private Member Functions

NodeGetTaggedSignedRepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Node *use_node, UseInfo use_info)
 
NodeGetTaggedPointerRepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Node *use_node, UseInfo use_info)
 
NodeGetTaggedRepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Truncation truncation)
 
NodeGetFloat16RawBitsRepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Node *use_node, UseInfo use_info)
 
NodeGetFloat32RepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Truncation truncation)
 
NodeGetFloat64RepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Node *use_node, UseInfo use_info)
 
NodeGetWord32RepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Node *use_node, UseInfo use_info)
 
NodeGetBitRepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type)
 
NodeGetWord64RepresentationFor (Node *node, MachineRepresentation output_rep, Type output_type, Node *use_node, UseInfo use_info)
 
NodeTypeError (Node *node, MachineRepresentation output_rep, Type output_type, MachineRepresentation use)
 
NodeMakeTruncatedInt32Constant (double value)
 
NodeInsertChangeBitToTagged (Node *node)
 
NodeInsertChangeFloat32ToFloat64 (Node *node)
 
NodeInsertChangeFloat64ToInt32 (Node *node)
 
NodeInsertChangeFloat64ToUint32 (Node *node)
 
NodeInsertChangeInt32ToFloat64 (Node *node)
 
NodeInsertChangeTaggedSignedToInt32 (Node *node)
 
NodeInsertChangeTaggedToFloat64 (Node *node)
 
NodeInsertChangeUint32ToFloat64 (Node *node)
 
NodeInsertCheckedFloat64ToInt32 (Node *node, CheckForMinusZeroMode check, const FeedbackSource &feedback, Node *use_node)
 
NodeInsertChangeFloat16RawBitsToFloat64Fallback (Node *node)
 
NodeInsertTruncateFloat64ToFloat16RawBitsFallback (Node *node)
 
NodeInsertConversion (Node *node, const Operator *op, Node *use_node)
 
NodeInsertTruncateInt64ToInt32 (Node *node)
 
NodeInsertUnconditionalDeopt (Node *node, DeoptimizeReason reason, const FeedbackSource &feedback={})
 
NodeInsertTypeOverrideForVerifier (const Type &type, Node *node)
 
NodeIeee754Fp16RawBitsToFp32RawBitsCode ()
 
NodeIeee754Fp64ToFp16RawBitsCode ()
 
Operator const * Ieee754Fp16RawBitsToFp32RawBitsOperator ()
 
Operator const * Ieee754Fp64ToFp16RawBitsOperator ()
 
JSGraphjsgraph () const
 
Isolateisolate () const
 
Factoryfactory () const
 
SimplifiedOperatorBuildersimplified ()
 
MachineOperatorBuildermachine ()
 

Private Attributes

TypeCache const * cache_
 
JSGraphjsgraph_
 
JSHeapBrokerbroker_
 
SimplifiedLoweringVerifierverifier_
 
bool testing_type_errors_
 
bool type_error_
 
SetOncePointer< Nodeieee754_fp16_raw_bits_to_fp32_raw_bits_code_
 
SetOncePointer< Nodeieee754_fp64_to_fp16_raw_bits_code_
 
SetOncePointer< Operator const > ieee754_fp16_raw_bits_to_fp32_raw_bits_operator_
 
SetOncePointer< Operator const > ieee754_fp64_to_fp16_raw_bits_operator_
 

Friends

class RepresentationChangerTester
 

Detailed Description

Definition at line 24 of file representation-change.h.

Constructor & Destructor Documentation

◆ RepresentationChanger()

v8::internal::compiler::RepresentationChanger::RepresentationChanger ( JSGraph * jsgraph,
JSHeapBroker * broker,
SimplifiedLoweringVerifier * verifier )

Definition at line 155 of file representation-change.cc.

Member Function Documentation

◆ AdditiveSafeIntegerOverflowOperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::AdditiveSafeIntegerOverflowOperatorFor ( IrOpcode::Value opcode)

Definition at line 1477 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BigIntOperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::BigIntOperatorFor ( IrOpcode::Value opcode)

Definition at line 1539 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ factory()

Factory * v8::internal::compiler::RepresentationChanger::factory ( ) const
inlineprivate

Definition at line 135 of file representation-change.h.

Here is the caller graph for this function:

◆ Float64OperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::Float64OperatorFor ( IrOpcode::Value opcode)

Definition at line 1639 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBitRepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetBitRepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type )
private

Definition at line 1131 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetFloat16RawBitsRepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetFloat16RawBitsRepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Node * use_node,
UseInfo use_info )
private

Definition at line 670 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetFloat32RepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetFloat32RepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Truncation truncation )
private

Definition at line 707 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetFloat64RepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetFloat64RepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Node * use_node,
UseInfo use_info )
private

Definition at line 772 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetRepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetRepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Node * use_node,
UseInfo use_info )

Definition at line 169 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTaggedPointerRepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetTaggedPointerRepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Node * use_node,
UseInfo use_info )
private

Definition at line 432 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTaggedRepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetTaggedRepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Truncation truncation )
private

Definition at line 552 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTaggedSignedRepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetTaggedSignedRepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Node * use_node,
UseInfo use_info )
private

Definition at line 290 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetWord32RepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetWord32RepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Node * use_node,
UseInfo use_info )
private

Definition at line 910 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetWord64RepresentationFor()

Node * v8::internal::compiler::RepresentationChanger::GetWord64RepresentationFor ( Node * node,
MachineRepresentation output_rep,
Type output_type,
Node * use_node,
UseInfo use_info )
private

Definition at line 1207 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Ieee754Fp16RawBitsToFp32RawBitsCode()

Node * v8::internal::compiler::RepresentationChanger::Ieee754Fp16RawBitsToFp32RawBitsCode ( )
private

Definition at line 1804 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Ieee754Fp16RawBitsToFp32RawBitsOperator()

Operator const * v8::internal::compiler::RepresentationChanger::Ieee754Fp16RawBitsToFp32RawBitsOperator ( )
private

Definition at line 1828 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Ieee754Fp64ToFp16RawBitsCode()

Node * v8::internal::compiler::RepresentationChanger::Ieee754Fp64ToFp16RawBitsCode ( )
private

Definition at line 1813 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Ieee754Fp64ToFp16RawBitsOperator()

Operator const * v8::internal::compiler::RepresentationChanger::Ieee754Fp64ToFp16RawBitsOperator ( )
private

Definition at line 1842 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeBitToTagged()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeBitToTagged ( Node * node)
private

Definition at line 1759 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeFloat16RawBitsToFloat64Fallback()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeFloat16RawBitsToFloat64Fallback ( Node * node)
private

Definition at line 1866 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeFloat32ToFloat64()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeFloat32ToFloat64 ( Node * node)
private

Definition at line 1763 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeFloat64ToInt32()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeFloat64ToInt32 ( Node * node)
private

Definition at line 1771 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeFloat64ToUint32()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeFloat64ToUint32 ( Node * node)
private

Definition at line 1767 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeInt32ToFloat64()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeInt32ToFloat64 ( Node * node)
private

Definition at line 1775 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeTaggedSignedToInt32()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeTaggedSignedToInt32 ( Node * node)
private

Definition at line 1779 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertChangeTaggedToFloat64()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeTaggedToFloat64 ( Node * node)
private

Definition at line 1784 of file representation-change.cc.

Here is the call graph for this function:

◆ InsertChangeUint32ToFloat64()

Node * v8::internal::compiler::RepresentationChanger::InsertChangeUint32ToFloat64 ( Node * node)
private

Definition at line 1789 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertCheckedFloat64ToInt32()

Node * v8::internal::compiler::RepresentationChanger::InsertCheckedFloat64ToInt32 ( Node * node,
CheckForMinusZeroMode check,
const FeedbackSource & feedback,
Node * use_node )
private

Definition at line 1797 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertConversion()

Node * v8::internal::compiler::RepresentationChanger::InsertConversion ( Node * node,
const Operator * op,
Node * use_node )
private

Definition at line 1117 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertTruncateFloat64ToFloat16RawBitsFallback()

Node * v8::internal::compiler::RepresentationChanger::InsertTruncateFloat64ToFloat16RawBitsFallback ( Node * node)
private

Definition at line 1881 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertTruncateInt64ToInt32()

Node * v8::internal::compiler::RepresentationChanger::InsertTruncateInt64ToInt32 ( Node * node)
private

Definition at line 1793 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertTypeOverrideForVerifier()

Node * v8::internal::compiler::RepresentationChanger::InsertTypeOverrideForVerifier ( const Type & type,
Node * node )
private

Definition at line 1901 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InsertUnconditionalDeopt()

Node * v8::internal::compiler::RepresentationChanger::InsertUnconditionalDeopt ( Node * node,
DeoptimizeReason reason,
const FeedbackSource & feedback = {} )
private

Definition at line 897 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Int32OperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::Int32OperatorFor ( IrOpcode::Value opcode)

Definition at line 1416 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Int32OverflowOperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::Int32OverflowOperatorFor ( IrOpcode::Value opcode)

Definition at line 1461 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Int64OperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::Int64OperatorFor ( IrOpcode::Value opcode)

Definition at line 1489 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Int64OverflowOperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::Int64OverflowOperatorFor ( IrOpcode::Value opcode)

Definition at line 1521 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isolate()

Isolate * v8::internal::compiler::RepresentationChanger::isolate ( ) const
private

Definition at line 1912 of file representation-change.cc.

Here is the call graph for this function:

◆ jsgraph()

JSGraph * v8::internal::compiler::RepresentationChanger::jsgraph ( ) const
inlineprivate

Definition at line 133 of file representation-change.h.

Here is the caller graph for this function:

◆ machine()

MachineOperatorBuilder * v8::internal::compiler::RepresentationChanger::machine ( )
inlineprivate

Definition at line 137 of file representation-change.h.

Here is the caller graph for this function:

◆ MakeTruncatedInt32Constant()

Node * v8::internal::compiler::RepresentationChanger::MakeTruncatedInt32Constant ( double value)
private

Definition at line 893 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ simplified()

SimplifiedOperatorBuilder * v8::internal::compiler::RepresentationChanger::simplified ( )
inlineprivate

Definition at line 136 of file representation-change.h.

Here is the caller graph for this function:

◆ TaggedSignedOperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::TaggedSignedOperatorFor ( IrOpcode::Value opcode)

Definition at line 1573 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeError()

Node * v8::internal::compiler::RepresentationChanger::TypeError ( Node * node,
MachineRepresentation output_rep,
Type output_type,
MachineRepresentation use )
private

Definition at line 1736 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeForBasePointer() [1/2]

MachineType v8::internal::compiler::RepresentationChanger::TypeForBasePointer ( const ElementAccess & access)
inline

Definition at line 53 of file representation-change.h.

◆ TypeForBasePointer() [2/2]

MachineType v8::internal::compiler::RepresentationChanger::TypeForBasePointer ( const FieldAccess & access)
inline

Definition at line 48 of file representation-change.h.

◆ Uint32OperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::Uint32OperatorFor ( IrOpcode::Value opcode)

Definition at line 1593 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Uint32OverflowOperatorFor()

const Operator * v8::internal::compiler::RepresentationChanger::Uint32OverflowOperatorFor ( IrOpcode::Value opcode)

Definition at line 1627 of file representation-change.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ verification_enabled()

bool v8::internal::compiler::RepresentationChanger::verification_enabled ( ) const
inline

Definition at line 58 of file representation-change.h.

Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ RepresentationChangerTester

friend class RepresentationChangerTester
friend

Definition at line 66 of file representation-change.h.

Member Data Documentation

◆ broker_

JSHeapBroker* v8::internal::compiler::RepresentationChanger::broker_
private

Definition at line 63 of file representation-change.h.

◆ cache_

TypeCache const* v8::internal::compiler::RepresentationChanger::cache_
private

Definition at line 61 of file representation-change.h.

◆ ieee754_fp16_raw_bits_to_fp32_raw_bits_code_

SetOncePointer<Node> v8::internal::compiler::RepresentationChanger::ieee754_fp16_raw_bits_to_fp32_raw_bits_code_
private

Definition at line 71 of file representation-change.h.

◆ ieee754_fp16_raw_bits_to_fp32_raw_bits_operator_

SetOncePointer<Operator const> v8::internal::compiler::RepresentationChanger::ieee754_fp16_raw_bits_to_fp32_raw_bits_operator_
private

Definition at line 74 of file representation-change.h.

◆ ieee754_fp64_to_fp16_raw_bits_code_

SetOncePointer<Node> v8::internal::compiler::RepresentationChanger::ieee754_fp64_to_fp16_raw_bits_code_
private

Definition at line 72 of file representation-change.h.

◆ ieee754_fp64_to_fp16_raw_bits_operator_

SetOncePointer<Operator const> v8::internal::compiler::RepresentationChanger::ieee754_fp64_to_fp16_raw_bits_operator_
private

Definition at line 75 of file representation-change.h.

◆ jsgraph_

JSGraph* v8::internal::compiler::RepresentationChanger::jsgraph_
private

Definition at line 62 of file representation-change.h.

◆ testing_type_errors_

bool v8::internal::compiler::RepresentationChanger::testing_type_errors_
private

Definition at line 68 of file representation-change.h.

◆ type_error_

bool v8::internal::compiler::RepresentationChanger::type_error_
private

Definition at line 69 of file representation-change.h.

◆ verifier_

SimplifiedLoweringVerifier* v8::internal::compiler::RepresentationChanger::verifier_
private

Definition at line 64 of file representation-change.h.


The documentation for this class was generated from the following files: