OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 uint32_instructions_->Add(instr, zone()); | 370 uint32_instructions_->Add(instr, zone()); |
371 } | 371 } |
372 | 372 |
373 private: | 373 private: |
374 HConstant* GetConstant(SetOncePointer<HConstant>* pointer, | 374 HConstant* GetConstant(SetOncePointer<HConstant>* pointer, |
375 Handle<Object> value); | 375 Handle<Object> value); |
376 HConstant* GetConstantInt32(SetOncePointer<HConstant>* pointer, | 376 HConstant* GetConstantInt32(SetOncePointer<HConstant>* pointer, |
377 int32_t integer_value); | 377 int32_t integer_value); |
378 | 378 |
379 void MarkAsDeoptimizingRecursively(HBasicBlock* block); | 379 void MarkAsDeoptimizingRecursively(HBasicBlock* block); |
| 380 void NullifyUnreachableInstructions(); |
380 void InsertTypeConversions(HInstruction* instr); | 381 void InsertTypeConversions(HInstruction* instr); |
381 void PropagateMinusZeroChecks(HValue* value, BitVector* visited); | 382 void PropagateMinusZeroChecks(HValue* value, BitVector* visited); |
382 void RecursivelyMarkPhiDeoptimizeOnUndefined(HPhi* phi); | 383 void RecursivelyMarkPhiDeoptimizeOnUndefined(HPhi* phi); |
383 void InsertRepresentationChangeForUse(HValue* value, | 384 void InsertRepresentationChangeForUse(HValue* value, |
384 HValue* use_value, | 385 HValue* use_value, |
385 int use_index, | 386 int use_index, |
386 Representation to); | 387 Representation to); |
387 void InsertRepresentationChangesForValue(HValue* value); | 388 void InsertRepresentationChangesForValue(HValue* value); |
388 void InferTypes(ZoneList<HValue*>* worklist); | 389 void InferTypes(ZoneList<HValue*>* worklist); |
389 void InitializeInferredTypes(int from_inclusive, int to_inclusive); | 390 void InitializeInferredTypes(int from_inclusive, int to_inclusive); |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
949 HOptimizedGraphBuilder(CompilationInfo* info, TypeFeedbackOracle* oracle); | 950 HOptimizedGraphBuilder(CompilationInfo* info, TypeFeedbackOracle* oracle); |
950 | 951 |
951 virtual bool BuildGraph(); | 952 virtual bool BuildGraph(); |
952 | 953 |
953 // Simple accessors. | 954 // Simple accessors. |
954 BreakAndContinueScope* break_scope() const { return break_scope_; } | 955 BreakAndContinueScope* break_scope() const { return break_scope_; } |
955 void set_break_scope(BreakAndContinueScope* head) { break_scope_ = head; } | 956 void set_break_scope(BreakAndContinueScope* head) { break_scope_ = head; } |
956 | 957 |
957 bool inline_bailout() { return inline_bailout_; } | 958 bool inline_bailout() { return inline_bailout_; } |
958 | 959 |
| 960 void AddSoftDeoptimize(); |
| 961 |
959 // Bailout environment manipulation. | 962 // Bailout environment manipulation. |
960 void Push(HValue* value) { environment()->Push(value); } | 963 void Push(HValue* value) { environment()->Push(value); } |
961 HValue* Pop() { return environment()->Pop(); } | 964 HValue* Pop() { return environment()->Pop(); } |
962 | 965 |
963 void Bailout(const char* reason); | 966 void Bailout(const char* reason); |
964 | 967 |
965 HBasicBlock* CreateJoin(HBasicBlock* first, | 968 HBasicBlock* CreateJoin(HBasicBlock* first, |
966 HBasicBlock* second, | 969 HBasicBlock* second, |
967 BailoutId join_id); | 970 BailoutId join_id); |
968 | 971 |
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1555 const char* filename_; | 1558 const char* filename_; |
1556 HeapStringAllocator string_allocator_; | 1559 HeapStringAllocator string_allocator_; |
1557 StringStream trace_; | 1560 StringStream trace_; |
1558 int indent_; | 1561 int indent_; |
1559 }; | 1562 }; |
1560 | 1563 |
1561 | 1564 |
1562 } } // namespace v8::internal | 1565 } } // namespace v8::internal |
1563 | 1566 |
1564 #endif // V8_HYDROGEN_H_ | 1567 #endif // V8_HYDROGEN_H_ |
OLD | NEW |