| 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 3753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3764 Run<HRedundantPhiEliminationPhase>(); | 3764 Run<HRedundantPhiEliminationPhase>(); |
| 3765 if (!CheckArgumentsPhiUses()) { | 3765 if (!CheckArgumentsPhiUses()) { |
| 3766 *bailout_reason = kUnsupportedPhiUseOfArguments; | 3766 *bailout_reason = kUnsupportedPhiUseOfArguments; |
| 3767 return false; | 3767 return false; |
| 3768 } | 3768 } |
| 3769 | 3769 |
| 3770 // Find and mark unreachable code to simplify optimizations, especially gvn, | 3770 // Find and mark unreachable code to simplify optimizations, especially gvn, |
| 3771 // where unreachable code could unnecessarily defeat LICM. | 3771 // where unreachable code could unnecessarily defeat LICM. |
| 3772 Run<HMarkUnreachableBlocksPhase>(); | 3772 Run<HMarkUnreachableBlocksPhase>(); |
| 3773 | 3773 |
| 3774 if (FLAG_check_elimination) Run<HCheckEliminationPhase>(); | |
| 3775 if (FLAG_dead_code_elimination) Run<HDeadCodeEliminationPhase>(); | 3774 if (FLAG_dead_code_elimination) Run<HDeadCodeEliminationPhase>(); |
| 3776 if (FLAG_use_escape_analysis) Run<HEscapeAnalysisPhase>(); | 3775 if (FLAG_use_escape_analysis) Run<HEscapeAnalysisPhase>(); |
| 3777 | 3776 |
| 3778 if (FLAG_load_elimination) Run<HLoadEliminationPhase>(); | 3777 if (FLAG_load_elimination) Run<HLoadEliminationPhase>(); |
| 3779 | 3778 |
| 3780 CollectPhis(); | 3779 CollectPhis(); |
| 3781 | 3780 |
| 3782 if (has_osr()) osr()->FinishOsrValues(); | 3781 if (has_osr()) osr()->FinishOsrValues(); |
| 3783 | 3782 |
| 3784 Run<HInferRepresentationPhase>(); | 3783 Run<HInferRepresentationPhase>(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3795 | 3794 |
| 3796 // Must be performed before canonicalization to ensure that Canonicalize | 3795 // Must be performed before canonicalization to ensure that Canonicalize |
| 3797 // will not remove semantically meaningful ToInt32 operations e.g. BIT_OR with | 3796 // will not remove semantically meaningful ToInt32 operations e.g. BIT_OR with |
| 3798 // zero. | 3797 // zero. |
| 3799 if (FLAG_opt_safe_uint32_operations) Run<HUint32AnalysisPhase>(); | 3798 if (FLAG_opt_safe_uint32_operations) Run<HUint32AnalysisPhase>(); |
| 3800 | 3799 |
| 3801 if (FLAG_use_canonicalizing) Run<HCanonicalizePhase>(); | 3800 if (FLAG_use_canonicalizing) Run<HCanonicalizePhase>(); |
| 3802 | 3801 |
| 3803 if (FLAG_use_gvn) Run<HGlobalValueNumberingPhase>(); | 3802 if (FLAG_use_gvn) Run<HGlobalValueNumberingPhase>(); |
| 3804 | 3803 |
| 3804 if (FLAG_check_elimination) Run<HCheckEliminationPhase>(); |
| 3805 |
| 3805 if (FLAG_use_range) Run<HRangeAnalysisPhase>(); | 3806 if (FLAG_use_range) Run<HRangeAnalysisPhase>(); |
| 3806 | 3807 |
| 3807 Run<HComputeChangeUndefinedToNaN>(); | 3808 Run<HComputeChangeUndefinedToNaN>(); |
| 3808 Run<HComputeMinusZeroChecksPhase>(); | 3809 Run<HComputeMinusZeroChecksPhase>(); |
| 3809 | 3810 |
| 3810 // Eliminate redundant stack checks on backwards branches. | 3811 // Eliminate redundant stack checks on backwards branches. |
| 3811 Run<HStackCheckEliminationPhase>(); | 3812 Run<HStackCheckEliminationPhase>(); |
| 3812 | 3813 |
| 3813 if (FLAG_array_bounds_checks_elimination) Run<HBoundsCheckEliminationPhase>(); | 3814 if (FLAG_array_bounds_checks_elimination) Run<HBoundsCheckEliminationPhase>(); |
| 3814 if (FLAG_array_bounds_checks_hoisting) Run<HBoundsCheckHoistingPhase>(); | 3815 if (FLAG_array_bounds_checks_hoisting) Run<HBoundsCheckHoistingPhase>(); |
| (...skipping 6999 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10814 if (ShouldProduceTraceOutput()) { | 10815 if (ShouldProduceTraceOutput()) { |
| 10815 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 10816 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 10816 } | 10817 } |
| 10817 | 10818 |
| 10818 #ifdef DEBUG | 10819 #ifdef DEBUG |
| 10819 graph_->Verify(false); // No full verify. | 10820 graph_->Verify(false); // No full verify. |
| 10820 #endif | 10821 #endif |
| 10821 } | 10822 } |
| 10822 | 10823 |
| 10823 } } // namespace v8::internal | 10824 } } // namespace v8::internal |
| OLD | NEW |