| 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 3120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3131 Run<HRedundantPhiEliminationPhase>(); | 3131 Run<HRedundantPhiEliminationPhase>(); |
| 3132 if (!CheckArgumentsPhiUses()) { | 3132 if (!CheckArgumentsPhiUses()) { |
| 3133 *bailout_reason = kUnsupportedPhiUseOfArguments; | 3133 *bailout_reason = kUnsupportedPhiUseOfArguments; |
| 3134 return false; | 3134 return false; |
| 3135 } | 3135 } |
| 3136 | 3136 |
| 3137 // Find and mark unreachable code to simplify optimizations, especially gvn, | 3137 // Find and mark unreachable code to simplify optimizations, especially gvn, |
| 3138 // where unreachable code could unnecessarily defeat LICM. | 3138 // where unreachable code could unnecessarily defeat LICM. |
| 3139 Run<HMarkUnreachableBlocksPhase>(); | 3139 Run<HMarkUnreachableBlocksPhase>(); |
| 3140 | 3140 |
| 3141 if (FLAG_check_elimination) Run<HCheckEliminationPhase>(); | |
| 3142 if (FLAG_dead_code_elimination) Run<HDeadCodeEliminationPhase>(); | 3141 if (FLAG_dead_code_elimination) Run<HDeadCodeEliminationPhase>(); |
| 3143 if (FLAG_use_escape_analysis) Run<HEscapeAnalysisPhase>(); | 3142 if (FLAG_use_escape_analysis) Run<HEscapeAnalysisPhase>(); |
| 3144 | 3143 |
| 3145 if (FLAG_load_elimination) Run<HLoadEliminationPhase>(); | 3144 if (FLAG_load_elimination) Run<HLoadEliminationPhase>(); |
| 3146 | 3145 |
| 3147 CollectPhis(); | 3146 CollectPhis(); |
| 3148 | 3147 |
| 3149 if (has_osr()) osr()->FinishOsrValues(); | 3148 if (has_osr()) osr()->FinishOsrValues(); |
| 3150 | 3149 |
| 3151 Run<HInferRepresentationPhase>(); | 3150 Run<HInferRepresentationPhase>(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3162 | 3161 |
| 3163 // Must be performed before canonicalization to ensure that Canonicalize | 3162 // Must be performed before canonicalization to ensure that Canonicalize |
| 3164 // will not remove semantically meaningful ToInt32 operations e.g. BIT_OR with | 3163 // will not remove semantically meaningful ToInt32 operations e.g. BIT_OR with |
| 3165 // zero. | 3164 // zero. |
| 3166 if (FLAG_opt_safe_uint32_operations) Run<HUint32AnalysisPhase>(); | 3165 if (FLAG_opt_safe_uint32_operations) Run<HUint32AnalysisPhase>(); |
| 3167 | 3166 |
| 3168 if (FLAG_use_canonicalizing) Run<HCanonicalizePhase>(); | 3167 if (FLAG_use_canonicalizing) Run<HCanonicalizePhase>(); |
| 3169 | 3168 |
| 3170 if (FLAG_use_gvn) Run<HGlobalValueNumberingPhase>(); | 3169 if (FLAG_use_gvn) Run<HGlobalValueNumberingPhase>(); |
| 3171 | 3170 |
| 3171 if (FLAG_check_elimination) Run<HCheckEliminationPhase>(); |
| 3172 |
| 3172 if (FLAG_use_range) Run<HRangeAnalysisPhase>(); | 3173 if (FLAG_use_range) Run<HRangeAnalysisPhase>(); |
| 3173 | 3174 |
| 3174 Run<HComputeChangeUndefinedToNaN>(); | 3175 Run<HComputeChangeUndefinedToNaN>(); |
| 3175 Run<HComputeMinusZeroChecksPhase>(); | 3176 Run<HComputeMinusZeroChecksPhase>(); |
| 3176 | 3177 |
| 3177 // Eliminate redundant stack checks on backwards branches. | 3178 // Eliminate redundant stack checks on backwards branches. |
| 3178 Run<HStackCheckEliminationPhase>(); | 3179 Run<HStackCheckEliminationPhase>(); |
| 3179 | 3180 |
| 3180 if (FLAG_array_bounds_checks_elimination) Run<HBoundsCheckEliminationPhase>(); | 3181 if (FLAG_array_bounds_checks_elimination) Run<HBoundsCheckEliminationPhase>(); |
| 3181 if (FLAG_array_bounds_checks_hoisting) Run<HBoundsCheckHoistingPhase>(); | 3182 if (FLAG_array_bounds_checks_hoisting) Run<HBoundsCheckHoistingPhase>(); |
| (...skipping 6642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9824 if (ShouldProduceTraceOutput()) { | 9825 if (ShouldProduceTraceOutput()) { |
| 9825 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 9826 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 9826 } | 9827 } |
| 9827 | 9828 |
| 9828 #ifdef DEBUG | 9829 #ifdef DEBUG |
| 9829 graph_->Verify(false); // No full verify. | 9830 graph_->Verify(false); // No full verify. |
| 9830 #endif | 9831 #endif |
| 9831 } | 9832 } |
| 9832 | 9833 |
| 9833 } } // namespace v8::internal | 9834 } } // namespace v8::internal |
| OLD | NEW |