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

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

Issue 2002823002: Preserve LICM information for check instructions during assertion strengthening. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « runtime/vm/flow_graph_type_propagator.cc ('k') | no next file » | 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 7774 matching lines...) Expand 10 before | Expand all | Expand 10 after
7785 bool IsDenseSwitch() const; 7785 bool IsDenseSwitch() const;
7786 static bool IsDenseCidRange(const ICData& unary_checks); 7786 static bool IsDenseCidRange(const ICData& unary_checks);
7787 intptr_t ComputeCidMask() const; 7787 intptr_t ComputeCidMask() const;
7788 static bool IsDenseMask(intptr_t mask); 7788 static bool IsDenseMask(intptr_t mask);
7789 7789
7790 virtual bool AllowsCSE() const { return true; } 7790 virtual bool AllowsCSE() const { return true; }
7791 virtual EffectSet Dependencies() const; 7791 virtual EffectSet Dependencies() const;
7792 virtual EffectSet Effects() const { return EffectSet::None(); } 7792 virtual EffectSet Effects() const { return EffectSet::None(); }
7793 virtual bool AttributesEqual(Instruction* other) const; 7793 virtual bool AttributesEqual(Instruction* other) const;
7794 7794
7795 bool licm_hoisted() const { return licm_hoisted_; }
7795 void set_licm_hoisted(bool value) { licm_hoisted_ = value; } 7796 void set_licm_hoisted(bool value) { licm_hoisted_ = value; }
7796 7797
7797 PRINT_OPERANDS_TO_SUPPORT 7798 PRINT_OPERANDS_TO_SUPPORT
7798 7799
7799 private: 7800 private:
7800 const ICData& unary_checks_; 7801 const ICData& unary_checks_;
7801 GrowableArray<intptr_t> cids_; // Sorted, lowest first. 7802 GrowableArray<intptr_t> cids_; // Sorted, lowest first.
7802 bool licm_hoisted_; 7803 bool licm_hoisted_;
7803 bool is_dense_switch_; 7804 bool is_dense_switch_;
7804 const TokenPosition token_pos_; 7805 const TokenPosition token_pos_;
(...skipping 15 matching lines...) Expand all
7820 virtual TokenPosition token_pos() const { return token_pos_; } 7821 virtual TokenPosition token_pos() const { return token_pos_; }
7821 7822
7822 DECLARE_INSTRUCTION(CheckSmi) 7823 DECLARE_INSTRUCTION(CheckSmi)
7823 7824
7824 virtual bool CanDeoptimize() const { return true; } 7825 virtual bool CanDeoptimize() const { return true; }
7825 7826
7826 virtual Instruction* Canonicalize(FlowGraph* flow_graph); 7827 virtual Instruction* Canonicalize(FlowGraph* flow_graph);
7827 7828
7828 virtual bool AttributesEqual(Instruction* other) const { return true; } 7829 virtual bool AttributesEqual(Instruction* other) const { return true; }
7829 7830
7831 bool licm_hoisted() const { return licm_hoisted_; }
7830 void set_licm_hoisted(bool value) { licm_hoisted_ = value; } 7832 void set_licm_hoisted(bool value) { licm_hoisted_ = value; }
7831 7833
7832 private: 7834 private:
7833 const TokenPosition token_pos_; 7835 const TokenPosition token_pos_;
7834 bool licm_hoisted_; 7836 bool licm_hoisted_;
7835 7837
7836 DISALLOW_COPY_AND_ASSIGN(CheckSmiInstr); 7838 DISALLOW_COPY_AND_ASSIGN(CheckSmiInstr);
7837 }; 7839 };
7838 7840
7839 7841
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
8259 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ 8261 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \
8260 UNIMPLEMENTED(); \ 8262 UNIMPLEMENTED(); \
8261 return NULL; \ 8263 return NULL; \
8262 } \ 8264 } \
8263 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } 8265 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); }
8264 8266
8265 8267
8266 } // namespace dart 8268 } // namespace dart
8267 8269
8268 #endif // VM_INTERMEDIATE_LANGUAGE_H_ 8270 #endif // VM_INTERMEDIATE_LANGUAGE_H_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_type_propagator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698