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

Side by Side Diff: runtime/vm/intermediate_language.h

Issue 12310040: Fix broken use lists in branch instructions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove debugging code. Created 7 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/flow_graph_optimizer.h ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_
6 #define VM_INTERMEDIATE_LANGUAGE_H_ 6 #define VM_INTERMEDIATE_LANGUAGE_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/ast.h" 9 #include "vm/ast.h"
10 #include "vm/growable_array.h" 10 #include "vm/growable_array.h"
(...skipping 1658 matching lines...) Expand 10 before | Expand all | Expand 10 after
1669 1669
1670 virtual intptr_t ArgumentCount() const; 1670 virtual intptr_t ArgumentCount() const;
1671 intptr_t InputCount() const; 1671 intptr_t InputCount() const;
1672 Value* InputAt(intptr_t i) const; 1672 Value* InputAt(intptr_t i) const;
1673 void SetInputAt(intptr_t i, Value* value); 1673 void SetInputAt(intptr_t i, Value* value);
1674 virtual bool CanDeoptimize() const; 1674 virtual bool CanDeoptimize() const;
1675 1675
1676 virtual bool HasSideEffect() const; 1676 virtual bool HasSideEffect() const;
1677 1677
1678 ComparisonInstr* comparison() const { return comparison_; } 1678 ComparisonInstr* comparison() const { return comparison_; }
1679 void set_comparison(ComparisonInstr* value) { comparison_ = value; } 1679 void SetComparison(ComparisonInstr* comp);
1680 1680
1681 bool is_checked() const { return is_checked_; } 1681 bool is_checked() const { return is_checked_; }
1682 1682
1683 virtual LocationSummary* locs(); 1683 virtual LocationSummary* locs();
1684 virtual intptr_t DeoptimizationTarget() const; 1684 virtual intptr_t DeoptimizationTarget() const;
1685 virtual Representation RequiredInputRepresentation(intptr_t i) const; 1685 virtual Representation RequiredInputRepresentation(intptr_t i) const;
1686 1686
1687 // Replace the comparison with another, leaving the branch intact. 1687 // A misleadingly named function for use in template functions that also
1688 // replace definitions. In this case, leave the branch intact and replace
1689 // its comparison with another comparison that has been removed from the
1690 // graph but still has uses properly linked into their definition's use
1691 // list.
1688 void ReplaceWith(ComparisonInstr* other, 1692 void ReplaceWith(ComparisonInstr* other,
1689 ForwardInstructionIterator* ignored) { 1693 ForwardInstructionIterator* ignored);
1690 comparison_ = other;
1691 }
1692 1694
1693 virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer); 1695 virtual Instruction* Canonicalize(FlowGraphOptimizer* optimizer);
1694 1696
1695 virtual void PrintTo(BufferFormatter* f) const; 1697 virtual void PrintTo(BufferFormatter* f) const;
1696 1698
1697 private: 1699 private:
1698 ComparisonInstr* comparison_; 1700 ComparisonInstr* comparison_;
1699 const bool is_checked_; 1701 const bool is_checked_;
1700 1702
1701 DISALLOW_COPY_AND_ASSIGN(BranchInstr); 1703 DISALLOW_COPY_AND_ASSIGN(BranchInstr);
(...skipping 2784 matching lines...) Expand 10 before | Expand all | Expand 10 after
4486 ForwardInstructionIterator* current_iterator_; 4488 ForwardInstructionIterator* current_iterator_;
4487 4489
4488 private: 4490 private:
4489 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); 4491 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor);
4490 }; 4492 };
4491 4493
4492 4494
4493 } // namespace dart 4495 } // namespace dart
4494 4496
4495 #endif // VM_INTERMEDIATE_LANGUAGE_H_ 4497 #endif // VM_INTERMEDIATE_LANGUAGE_H_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_optimizer.h ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698