Home | History | Annotate | Download | only in src

Lines Matching refs:instr

72   HLoadEliminationTable* Process(HInstruction* instr, Zone* zone) {
73 switch (instr->opcode()) {
75 HLoadNamedField* l = HLoadNamedField::cast(instr);
77 instr->id(),
81 if (result != instr) {
83 TRACE((" replace L%d -> v%d\n", instr->id(), result->id()));
84 instr->DeleteAndReplaceWith(result);
89 HStoreNamedField* s = HStoreNamedField::cast(instr);
91 instr->id(),
98 TRACE((" remove S%d\n", instr->id()));
99 instr->DeleteAndReplaceWith(NULL);
104 if (instr->CheckGVNFlag(kChangesInobjectFields)) {
105 TRACE((" kill-all i%d\n", instr->id()));
109 if (instr->CheckGVNFlag(kChangesMaps)) {
110 TRACE((" kill-maps i%d\n", instr->id()));
113 if (instr->CheckGVNFlag(kChangesElementsKind)) {
114 TRACE((" kill-elements-kind i%d\n", instr->id()));
118 if (instr->CheckGVNFlag(kChangesElementsPointer)) {
119 TRACE((" kill-elements i%d\n", instr->id()));
122 if (instr->CheckGVNFlag(kChangesOsrEntries)) {
123 TRACE((" kill-osr i%d\n", instr->id()));
190 // which the load should be replaced. Otherwise, return {instr}.
191 HValue* load(HLoadNamedField* instr) {
192 int field = FieldOf(instr->access());
193 if (field < 0) return instr;
195 HValue* object = instr->object()->ActualValue();
200 approx->last_load_ = instr;
201 approx->last_value_ = instr;
202 return instr;
212 // instruction is redundant. Otherwise, return {instr}.
213 HValue* store(HStoreNamedField* instr) {
214 int field = FieldOf(instr->access());
215 if (field < 0) return KillIfMisaligned(instr);
217 HValue* object = instr->object()->ActualValue();
218 HValue* value = instr->value();
222 if (instr->has_transition()) {
236 return instr;
264 HValue* KillIfMisaligned(HStoreNamedField* instr) {
265 HObjectAccess access = instr->access();
270 HValue* object = instr->object()->ActualValue();
280 return instr;
429 void Process(HInstruction* instr, Zone* zone) {
430 switch (instr->opcode()) {
432 stores_.Add(HStoreNamedField::cast(instr), zone_);
442 fields_stored_ |= instr->CheckGVNFlag(kChangesInobjectFields);
443 maps_stored_ |= instr->CheckGVNFlag(kChangesMaps);
444 maps_stored_ |= instr->CheckGVNFlag(kChangesElementsKind);
445 elements_stored_ |= instr->CheckGVNFlag(kChangesElementsKind);
446 elements_stored_ |= instr->CheckGVNFlag(kChangesElementsPointer);