| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 7476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7487 } | 7487 } |
| 7488 Push(number_input); | 7488 Push(number_input); |
| 7489 } | 7489 } |
| 7490 | 7490 |
| 7491 // The addition has no side effects, so we do not need | 7491 // The addition has no side effects, so we do not need |
| 7492 // to simulate the expression stack after this instruction. | 7492 // to simulate the expression stack after this instruction. |
| 7493 // Any later failures deopt to the load of the input or earlier. | 7493 // Any later failures deopt to the load of the input or earlier. |
| 7494 HConstant* delta = (expr->op() == Token::INC) | 7494 HConstant* delta = (expr->op() == Token::INC) |
| 7495 ? graph()->GetConstant1() | 7495 ? graph()->GetConstant1() |
| 7496 : graph()->GetConstantMinus1(); | 7496 : graph()->GetConstantMinus1(); |
| 7497 HInstruction* instr = Add<HAdd>(Top(), delta); | 7497 HInstruction* instr = AddUncasted<HAdd>(Top(), delta); |
| 7498 if (instr->IsAdd()) { |
| 7499 HAdd* add = HAdd::cast(instr); |
| 7500 add->set_observed_input_representation(1, rep); |
| 7501 add->set_observed_input_representation(2, Representation::Smi()); |
| 7502 } |
| 7498 instr->SetFlag(HInstruction::kCannotBeTagged); | 7503 instr->SetFlag(HInstruction::kCannotBeTagged); |
| 7499 instr->ClearAllSideEffects(); | 7504 instr->ClearAllSideEffects(); |
| 7500 return instr; | 7505 return instr; |
| 7501 } | 7506 } |
| 7502 | 7507 |
| 7503 | 7508 |
| 7504 void HOptimizedGraphBuilder::VisitCountOperation(CountOperation* expr) { | 7509 void HOptimizedGraphBuilder::VisitCountOperation(CountOperation* expr) { |
| 7505 ASSERT(!HasStackOverflow()); | 7510 ASSERT(!HasStackOverflow()); |
| 7506 ASSERT(current_block() != NULL); | 7511 ASSERT(current_block() != NULL); |
| 7507 ASSERT(current_block()->HasPredecessor()); | 7512 ASSERT(current_block()->HasPredecessor()); |
| (...skipping 2341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9849 if (ShouldProduceTraceOutput()) { | 9854 if (ShouldProduceTraceOutput()) { |
| 9850 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 9855 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 9851 } | 9856 } |
| 9852 | 9857 |
| 9853 #ifdef DEBUG | 9858 #ifdef DEBUG |
| 9854 graph_->Verify(false); // No full verify. | 9859 graph_->Verify(false); // No full verify. |
| 9855 #endif | 9860 #endif |
| 9856 } | 9861 } |
| 9857 | 9862 |
| 9858 } } // namespace v8::internal | 9863 } } // namespace v8::internal |
| OLD | NEW |