Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(627)

Side by Side Diff: src/hydrogen.cc

Issue 17587008: Refactor Hydrogen environment liveness analysis into an HPhase. (Closed) Base URL: git@github.com:v8/v8.git@master
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 3960 matching lines...) Expand 10 before | Expand all | Expand 10 after
3971 // The constant is needed to make idef-based bounds check work: the pass 3971 // The constant is needed to make idef-based bounds check work: the pass
3972 // evaluates relations with "zero" and that zero cannot be created after GVN. 3972 // evaluates relations with "zero" and that zero cannot be created after GVN.
3973 GetConstant0(); 3973 GetConstant0();
3974 3974
3975 #ifdef DEBUG 3975 #ifdef DEBUG
3976 // Do a full verify after building the graph and computing dominators. 3976 // Do a full verify after building the graph and computing dominators.
3977 Verify(true); 3977 Verify(true);
3978 #endif 3978 #endif
3979 3979
3980 if (FLAG_analyze_environment_liveness) { 3980 if (FLAG_analyze_environment_liveness) {
3981 EnvironmentSlotLivenessAnalyzer esla(this); 3981 Run<EnvironmentSlotLivenessAnalyzer>();
3982 esla.AnalyzeAndTrim();
3983 } 3982 }
3984 3983
3985 PropagateDeoptimizingMark(); 3984 PropagateDeoptimizingMark();
3986 if (!CheckConstPhiUses()) { 3985 if (!CheckConstPhiUses()) {
3987 *bailout_reason = SmartArrayPointer<char>(StrDup( 3986 *bailout_reason = SmartArrayPointer<char>(StrDup(
3988 "Unsupported phi use of const variable")); 3987 "Unsupported phi use of const variable"));
3989 return false; 3988 return false;
3990 } 3989 }
3991 EliminateRedundantPhis(); 3990 EliminateRedundantPhis();
3992 if (!CheckArgumentsPhiUses()) { 3991 if (!CheckArgumentsPhiUses()) {
(...skipping 7591 matching lines...) Expand 10 before | Expand all | Expand 10 after
11584 } 11583 }
11585 } 11584 }
11586 11585
11587 #ifdef DEBUG 11586 #ifdef DEBUG
11588 if (graph_ != NULL) graph_->Verify(false); // No full verify. 11587 if (graph_ != NULL) graph_->Verify(false); // No full verify.
11589 if (allocator_ != NULL) allocator_->Verify(); 11588 if (allocator_ != NULL) allocator_->Verify();
11590 #endif 11589 #endif
11591 } 11590 }
11592 11591
11593 } } // namespace v8::internal 11592 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698