V8 Project
|
Classes | |
struct | NodeInfo |
Public Member Functions | |
RepresentationSelector (JSGraph *jsgraph, Zone *zone, RepresentationChanger *changer) | |
void | Run (SimplifiedLowering *lowering) |
void | Enqueue (Node *node, MachineTypeUnion use=0) |
bool | lower () |
void | Enqueue (Node *node, MachineType use) |
void | SetOutput (Node *node, MachineTypeUnion output) |
bool | BothInputsAre (Node *node, Type *type) |
void | ProcessInput (Node *node, int index, MachineTypeUnion use) |
void | ProcessRemainingInputs (Node *node, int index) |
void | VisitInputs (Node *node) |
void | VisitBinop (Node *node, MachineTypeUnion input_use, MachineTypeUnion output) |
void | VisitUnop (Node *node, MachineTypeUnion input_use, MachineTypeUnion output) |
void | VisitLeaf (Node *node, MachineTypeUnion output) |
void | VisitFloat64Binop (Node *node) |
void | VisitInt32Binop (Node *node) |
void | VisitUint32Binop (Node *node) |
void | VisitInt64Binop (Node *node) |
void | VisitUint64Binop (Node *node) |
void | VisitFloat64Cmp (Node *node) |
void | VisitInt32Cmp (Node *node) |
void | VisitUint32Cmp (Node *node) |
void | VisitInt64Cmp (Node *node) |
void | VisitUint64Cmp (Node *node) |
void | VisitPhi (Node *node, MachineTypeUnion use, SimplifiedLowering *lowering) |
const Operator * | Int32Op (Node *node) |
const Operator * | Uint32Op (Node *node) |
const Operator * | Float64Op (Node *node) |
void | VisitNode (Node *node, MachineTypeUnion use, SimplifiedLowering *lowering) |
void | DeferReplacement (Node *node, Node *replacement) |
void | PrintUseInfo (Node *node) |
void | PrintInfo (MachineTypeUnion info) |
Private Member Functions | |
NodeInfo * | GetInfo (Node *node) |
MachineTypeUnion | GetUseInfo (Node *node) |
Private Attributes | |
JSGraph * | jsgraph_ |
int | count_ |
NodeInfo * | info_ |
NodeVector | nodes_ |
NodeVector | replacements_ |
bool | contains_js_nodes_ |
Phase | phase_ |
RepresentationChanger * | changer_ |
ZoneQueue< Node * > | queue_ |
Definition at line 52 of file simplified-lowering.cc.
|
inline |
Definition at line 62 of file simplified-lowering.cc.
|
inline |
Definition at line 161 of file simplified-lowering.cc.
References DCHECK_EQ, v8::internal::compiler::NodeProperties::GetBounds(), and v8::internal::BoundsImpl< Config >::upper.
Referenced by VisitNode().
|
inline |
Definition at line 738 of file simplified-lowering.cc.
References count_, and replacements_.
Referenced by VisitNode().
|
inline |
Definition at line 148 of file simplified-lowering.cc.
References Enqueue(), and use().
|
inline |
Definition at line 116 of file simplified-lowering.cc.
References GetInfo(), nodes_, phase_, PrintUseInfo(), v8::internal::compiler::PROPAGATE, queue_, v8::internal::compiler::RepresentationSelector::NodeInfo::queued, TRACE, v8::internal::compiler::RepresentationSelector::NodeInfo::use, use(), and v8::internal::compiler::RepresentationSelector::NodeInfo::visited.
Referenced by Enqueue(), ProcessInput(), ProcessRemainingInputs(), Run(), VisitInputs(), and VisitNode().
|
inline |
Definition at line 350 of file simplified-lowering.cc.
References changer_, and v8::internal::compiler::RepresentationChanger::Float64OperatorFor().
Referenced by VisitNode().
|
inlineprivate |
Definition at line 777 of file simplified-lowering.cc.
References count_, DCHECK, and info_.
Referenced by Enqueue(), GetUseInfo(), ProcessInput(), Run(), SetOutput(), and VisitNode().
|
inlineprivate |
Definition at line 783 of file simplified-lowering.cc.
References GetInfo(), and v8::internal::compiler::RepresentationSelector::NodeInfo::use.
Referenced by PrintUseInfo(), Run(), and VisitPhi().
|
inline |
Definition at line 342 of file simplified-lowering.cc.
References changer_, and v8::internal::compiler::RepresentationChanger::Int32OperatorFor().
Referenced by VisitNode().
|
inline |
Definition at line 146 of file simplified-lowering.cc.
References v8::internal::compiler::LOWER, and phase_.
Referenced by VisitNode(), and VisitPhi().
|
inline |
Definition at line 759 of file simplified-lowering.cc.
Referenced by PrintUseInfo(), ProcessInput(), and Run().
|
inline |
Definition at line 753 of file simplified-lowering.cc.
References GetUseInfo(), PrintInfo(), and TRACE.
Referenced by Enqueue().
|
inline |
Definition at line 167 of file simplified-lowering.cc.
References changer_, Enqueue(), GetInfo(), v8::internal::compiler::RepresentationChanger::GetRepresentationFor(), v8::internal::compiler::kRepMask, v8::internal::compiler::RepresentationSelector::NodeInfo::output, phase_, PrintInfo(), v8::internal::compiler::PROPAGATE, TRACE, and use().
Referenced by VisitBinop(), VisitInputs(), VisitNode(), VisitPhi(), and VisitUnop().
|
inline |
Definition at line 192 of file simplified-lowering.cc.
References DCHECK_GE, Enqueue(), v8::internal::compiler::NodeProperties::FirstControlIndex(), v8::internal::compiler::NodeProperties::FirstEffectIndex(), v8::internal::compiler::NodeProperties::PastContextIndex(), v8::internal::compiler::NodeProperties::PastControlIndex(), v8::internal::compiler::NodeProperties::PastEffectIndex(), and v8::internal::compiler::NodeProperties::PastValueIndex().
Referenced by VisitNode().
|
inline |
Definition at line 76 of file simplified-lowering.cc.
References v8::internal::compiler::GenericGraph< V >::end(), Enqueue(), GetInfo(), GetUseInfo(), v8::internal::compiler::JSGraph::graph(), jsgraph_, v8::internal::compiler::LOWER, nodes_, NULL, v8::internal::compiler::RepresentationSelector::NodeInfo::output, phase_, PrintInfo(), v8::internal::compiler::PROPAGATE, queue_, v8::internal::compiler::RepresentationSelector::NodeInfo::queued, replacements_, TRACE, v8::internal::compiler::RepresentationSelector::NodeInfo::use, and VisitNode().
Referenced by v8::internal::compiler::SimplifiedLowering::LowerAllNodes().
|
inline |
Definition at line 152 of file simplified-lowering.cc.
References DCHECK, GetInfo(), v8::base::bits::IsPowerOfTwo32(), v8::internal::compiler::kRepMask, and v8::internal::compiler::RepresentationSelector::NodeInfo::output.
Referenced by VisitBinop(), VisitInputs(), VisitLeaf(), VisitNode(), VisitPhi(), and VisitUnop().
|
inline |
Definition at line 346 of file simplified-lowering.cc.
References changer_, and v8::internal::compiler::RepresentationChanger::Uint32OperatorFor().
Referenced by VisitNode().
|
inline |
Definition at line 230 of file simplified-lowering.cc.
References DCHECK_EQ, ProcessInput(), and SetOutput().
Referenced by VisitFloat64Binop(), VisitFloat64Cmp(), VisitInt32Binop(), VisitInt32Cmp(), VisitInt64Binop(), VisitInt64Cmp(), VisitNode(), VisitUint32Binop(), VisitUint32Cmp(), VisitUint64Binop(), and VisitUint64Cmp().
|
inline |
Definition at line 253 of file simplified-lowering.cc.
References v8::internal::compiler::kMachFloat64, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 264 of file simplified-lowering.cc.
References v8::internal::compiler::kMachFloat64, v8::internal::compiler::kRepBit, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 208 of file simplified-lowering.cc.
References Enqueue(), v8::internal::compiler::OperatorProperties::GetContextInputCount(), v8::internal::compiler::OperatorProperties::GetControlInputCount(), v8::internal::compiler::OperatorProperties::GetEffectInputCount(), v8::internal::compiler::OperatorProperties::GetValueInputCount(), v8::internal::compiler::kMachAnyTagged, ProcessInput(), and SetOutput().
Referenced by VisitNode().
|
inline |
Definition at line 256 of file simplified-lowering.cc.
References v8::internal::compiler::kMachInt32, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 265 of file simplified-lowering.cc.
References v8::internal::compiler::kMachInt32, v8::internal::compiler::kRepBit, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 260 of file simplified-lowering.cc.
References v8::internal::compiler::kMachInt64, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 267 of file simplified-lowering.cc.
References v8::internal::compiler::kMachInt64, v8::internal::compiler::kRepBit, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 247 of file simplified-lowering.cc.
References DCHECK_EQ, and SetOutput().
Referenced by VisitNode().
|
inline |
Definition at line 356 of file simplified-lowering.cc.
References BothInputsAre(), changer_, contains_js_nodes_, DeferReplacement(), DEFINE_JS_CASE, v8::internal::compiler::SimplifiedLowering::DoLoadElement(), v8::internal::compiler::SimplifiedLowering::DoLoadField(), v8::internal::compiler::SimplifiedLowering::DoStoreElement(), v8::internal::compiler::SimplifiedLowering::DoStoreField(), v8::internal::compiler::SimplifiedLowering::DoStringAdd(), v8::internal::compiler::SimplifiedLowering::DoStringEqual(), v8::internal::compiler::SimplifiedLowering::DoStringLessThan(), v8::internal::compiler::SimplifiedLowering::DoStringLessThanOrEqual(), v8::internal::compiler::ElementAccessOf(), Enqueue(), v8::internal::compiler::JSGraph::FalseConstant(), v8::internal::compiler::FieldAccessOf(), Float64Op(), v8::internal::compiler::NodeProperties::GetBounds(), v8::internal::compiler::NodeProperties::GetControlInput(), GetInfo(), v8::internal::compiler::JSGraph::Int32Constant(), Int32Op(), JS_OP_LIST, jsgraph_, v8::internal::compiler::kMachAnyTagged, v8::internal::compiler::kMachFloat64, v8::internal::compiler::kMachInt32, v8::internal::compiler::kMachPtr, v8::internal::compiler::kRepBit, v8::internal::compiler::kRepFloat32, v8::internal::compiler::kRepFloat64, v8::internal::compiler::kRepMask, v8::internal::compiler::kRepTagged, v8::internal::compiler::kRepWord32, v8::internal::compiler::kRepWord64, v8::internal::compiler::kTypeAny, v8::internal::compiler::kTypeBool, v8::internal::compiler::kTypeInt32, v8::internal::compiler::kTypeMask, v8::internal::compiler::kTypeNumber, v8::internal::compiler::kTypeUint32, lower(), v8::internal::compiler::SimplifiedLowering::machine(), v8::internal::compiler::FieldAccess::machine_type, v8::internal::compiler::ElementAccess::machine_type, v8::internal::compiler::RepresentationSelector::NodeInfo::output, ProcessInput(), ProcessRemainingInputs(), SetOutput(), v8::internal::compiler::JSGraph::TrueConstant(), v8::internal::compiler::RepresentationChanger::TypeForBasePointer(), v8::internal::compiler::RepresentationChanger::TypeFromUpperBound(), Uint32Op(), v8::internal::BoundsImpl< Config >::upper, use(), VisitBinop(), VisitFloat64Binop(), VisitFloat64Cmp(), VisitInputs(), VisitInt32Binop(), VisitInt32Cmp(), VisitInt64Binop(), VisitInt64Cmp(), VisitLeaf(), VisitPhi(), VisitUint32Binop(), VisitUint32Cmp(), VisitUint64Binop(), VisitUnop(), and v8::internal::compiler::JSGraph::zone().
Referenced by Run().
|
inline |
Definition at line 271 of file simplified-lowering.cc.
References changer_, v8::internal::compiler::SimplifiedLowering::common(), v8::internal::compiler::NodeProperties::GetBounds(), GetUseInfo(), v8::internal::compiler::OperatorProperties::GetValueInputCount(), v8::internal::compiler::kRepBit, v8::internal::compiler::kRepFloat32, v8::internal::compiler::kRepFloat64, v8::internal::compiler::kRepMask, v8::internal::compiler::kRepTagged, v8::internal::compiler::kRepWord32, v8::internal::compiler::kRepWord64, v8::internal::compiler::kTypeAny, v8::internal::compiler::kTypeBool, v8::internal::compiler::kTypeInt32, v8::internal::compiler::kTypeInt64, v8::internal::compiler::kTypeMask, v8::internal::compiler::kTypeNumber, v8::internal::compiler::kTypeUint32, v8::internal::compiler::kTypeUint64, lower(), ProcessInput(), SetOutput(), v8::internal::compiler::RepresentationChanger::TypeFromUpperBound(), UNREACHABLE, v8::internal::BoundsImpl< Config >::upper, and use().
Referenced by VisitNode().
|
inline |
Definition at line 257 of file simplified-lowering.cc.
References v8::internal::compiler::kMachUint32, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 266 of file simplified-lowering.cc.
References v8::internal::compiler::kMachUint32, v8::internal::compiler::kRepBit, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 261 of file simplified-lowering.cc.
References v8::internal::compiler::kMachUint64, and VisitBinop().
Referenced by VisitNode().
|
inline |
Definition at line 268 of file simplified-lowering.cc.
References v8::internal::compiler::kMachUint64, v8::internal::compiler::kRepBit, and VisitBinop().
|
inline |
Definition at line 239 of file simplified-lowering.cc.
References DCHECK_EQ, ProcessInput(), and SetOutput().
Referenced by VisitNode().
|
private |
Definition at line 774 of file simplified-lowering.cc.
Referenced by Float64Op(), Int32Op(), ProcessInput(), Uint32Op(), VisitNode(), and VisitPhi().
|
private |
Definition at line 772 of file simplified-lowering.cc.
Referenced by VisitNode().
|
private |
Definition at line 768 of file simplified-lowering.cc.
Referenced by DeferReplacement(), GetInfo(), and RepresentationSelector().
|
private |
Definition at line 769 of file simplified-lowering.cc.
Referenced by GetInfo(), and RepresentationSelector().
|
private |
Definition at line 767 of file simplified-lowering.cc.
Referenced by Run(), and VisitNode().
|
private |
Definition at line 770 of file simplified-lowering.cc.
|
private |
Definition at line 773 of file simplified-lowering.cc.
Referenced by Enqueue(), lower(), ProcessInput(), and Run().
|
private |
Definition at line 775 of file simplified-lowering.cc.
|
private |
Definition at line 771 of file simplified-lowering.cc.
Referenced by DeferReplacement(), and Run().