V8 Project
|
Public Member Functions | |
HLoadEliminationTable (Zone *zone, HAliasAnalyzer *aliasing) | |
HLoadEliminationTable * | Process (HInstruction *instr, Zone *zone) |
![]() | |
INLINE (void *operator new(size_t size, Zone *zone)) | |
void | operator delete (void *, size_t) |
void | operator delete (void *pointer, Zone *zone) |
Static Public Member Functions | |
static HLoadEliminationTable * | Merge (HLoadEliminationTable *succ_state, HBasicBlock *succ_block, HLoadEliminationTable *pred_state, HBasicBlock *pred_block, Zone *zone) |
static HLoadEliminationTable * | Finish (HLoadEliminationTable *state, HBasicBlock *block, Zone *zone) |
Private Member Functions | |
HLoadEliminationTable * | Copy (HBasicBlock *succ, HBasicBlock *from_block, Zone *zone) |
HLoadEliminationTable * | Merge (HBasicBlock *succ, HLoadEliminationTable *that, HBasicBlock *that_block, Zone *zone) |
HValue * | load (HLoadNamedField *instr) |
HValue * | store (HStoreNamedField *instr) |
void | Kill () |
void | KillOffset (int offset) |
void | KillStore (HStoreNamedField *s) |
HValue * | KillIfMisaligned (HStoreNamedField *instr) |
HFieldApproximation * | Find (HValue *object, int field) |
HFieldApproximation * | FindOrCreate (HValue *object, int field) |
void | KillFieldInternal (HValue *object, int field, HValue *value) |
bool | Equal (HValue *a, HValue *b) |
HFieldApproximation * | ReuseLastApproximation (int field) |
int | FieldOf (HObjectAccess access) |
int | FieldOf (int offset) |
void | EnsureFields (int num_fields) |
void | Print () |
Private Attributes | |
Zone * | zone_ |
ZoneList< HFieldApproximation * > | fields_ |
HAliasAnalyzer * | aliasing_ |
Friends | |
class | HLoadEliminationEffects |
class | HLoadEliminationPhase |
Definition at line 40 of file hydrogen-load-elimination.cc.
|
inline |
Definition at line 42 of file hydrogen-load-elimination.cc.
Referenced by Copy().
|
inlineprivate |
Definition at line 144 of file hydrogen-load-elimination.cc.
References aliasing_, EnsureFields(), fields_, HLoadEliminationTable(), NULL, Print(), and TRACE.
Referenced by Merge().
|
inlineprivate |
Definition at line 410 of file hydrogen-load-elimination.cc.
References fields_, NULL, and zone_.
Referenced by Copy(), and FindOrCreate().
Definition at line 372 of file hydrogen-load-elimination.cc.
References v8::internal::HValue::CheckFlag(), v8::internal::HValue::Equals(), v8::internal::HValue::kUseGVN, and NULL.
Referenced by KillFieldInternal(), Merge(), and store().
|
inlineprivate |
Definition at line 397 of file hydrogen-load-elimination.cc.
Referenced by KillOffset(), KillStore(), load(), Process(), and store().
Definition at line 402 of file hydrogen-load-elimination.cc.
References v8::internal::kMaxTrackedFields, and v8::internal::kPointerSize.
|
inlineprivate |
Definition at line 307 of file hydrogen-load-elimination.cc.
References aliasing_, fields_, v8::internal::HAliasAnalyzer::MustAlias(), v8::internal::HFieldApproximation::next_, NULL, and v8::internal::HFieldApproximation::object_.
Referenced by Merge().
|
inlineprivate |
Definition at line 318 of file hydrogen-load-elimination.cc.
References aliasing_, EnsureFields(), fields_, v8::internal::kMaxTrackedObjects, v8::internal::HFieldApproximation::last_value_, v8::internal::HAliasAnalyzer::MustAlias(), v8::internal::HFieldApproximation::next_, NULL, v8::internal::HFieldApproximation::object_, ReuseLastApproximation(), and zone_.
Referenced by load(), and store().
|
inlinestatic |
Definition at line 135 of file hydrogen-load-elimination.cc.
|
inlineprivate |
Definition at line 264 of file hydrogen-load-elimination.cc.
References fields_.
Referenced by v8::internal::HLoadEliminationEffects::Apply(), Process(), and v8::internal::HLoadEliminationPhase::Run().
|
inlineprivate |
Definition at line 349 of file hydrogen-load-elimination.cc.
References aliasing_, Equal(), fields_, v8::internal::HFieldApproximation::last_value_, v8::internal::HAliasAnalyzer::MayAlias(), v8::internal::HFieldApproximation::next_, NULL, and v8::internal::HFieldApproximation::object_.
Referenced by KillIfMisaligned(), KillStore(), Process(), and store().
|
inlineprivate |
Definition at line 287 of file hydrogen-load-elimination.cc.
References v8::internal::HValue::ActualValue(), KillFieldInternal(), v8::internal::kPointerSize, NULL, and size.
Referenced by KillStore(), and store().
|
inlineprivate |
Definition at line 269 of file hydrogen-load-elimination.cc.
References FieldOf(), fields_, and NULL.
Referenced by v8::internal::HLoadEliminationEffects::Apply(), and Process().
|
inlineprivate |
Definition at line 277 of file hydrogen-load-elimination.cc.
References FieldOf(), KillFieldInternal(), and KillIfMisaligned().
Referenced by v8::internal::HLoadEliminationEffects::Apply().
|
inlineprivate |
Definition at line 201 of file hydrogen-load-elimination.cc.
References v8::internal::HValue::ActualValue(), v8::internal::HValue::block(), DCHECK, FieldOf(), FindOrCreate(), v8::internal::HFieldApproximation::last_value_, and NULL.
Referenced by Process().
|
inlineprivate |
Definition at line 160 of file hydrogen-load-elimination.cc.
References Equal(), fields_, Find(), v8::internal::HFieldApproximation::last_value_, v8::internal::HFieldApproximation::next_, NULL, v8::internal::HFieldApproximation::object_, Print(), and TRACE.
|
inlinestatic |
|
inlineprivate |
Definition at line 417 of file hydrogen-load-elimination.cc.
References fields_, NULL, and v8::internal::PrintF().
Referenced by Copy(), and Merge().
|
inline |
Definition at line 46 of file hydrogen-load-elimination.cc.
References v8::internal::HValue::ActualValue(), v8::internal::HValue::CheckChangesFlag(), v8::internal::HValue::DeleteAndReplaceWith(), FieldOf(), v8::internal::HValue::id(), v8::internal::JSObject::kElementsOffset, Kill(), KillFieldInternal(), KillOffset(), v8::internal::HeapObject::kMapOffset, load(), NULL, v8::internal::HValue::opcode(), store(), and TRACE.
|
inlineprivate |
Definition at line 383 of file hydrogen-load-elimination.cc.
References DCHECK, fields_, v8::internal::HFieldApproximation::next_, and NULL.
Referenced by FindOrCreate().
|
inlineprivate |
Definition at line 229 of file hydrogen-load-elimination.cc.
References v8::internal::HValue::ActualValue(), Equal(), FieldOf(), FindOrCreate(), KillFieldInternal(), KillIfMisaligned(), v8::internal::HeapObject::kMapOffset, v8::internal::HFieldApproximation::last_value_, NULL, and TRACE.
Referenced by Process().
|
friend |
Definition at line 194 of file hydrogen-load-elimination.cc.
|
friend |
Definition at line 195 of file hydrogen-load-elimination.cc.
|
private |
Definition at line 431 of file hydrogen-load-elimination.cc.
Referenced by Copy(), Find(), FindOrCreate(), and KillFieldInternal().
|
private |
Definition at line 430 of file hydrogen-load-elimination.cc.
Referenced by Copy(), EnsureFields(), Find(), FindOrCreate(), Kill(), KillFieldInternal(), KillOffset(), Merge(), Print(), and ReuseLastApproximation().
|
private |
Definition at line 429 of file hydrogen-load-elimination.cc.
Referenced by EnsureFields(), and FindOrCreate().