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

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

Issue 2273943002: VM: More refactoring of recognized methods inlining. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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/intermediate_language.h ('k') | runtime/vm/intermediate_language_arm.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 #include "vm/intermediate_language.h" 5 #include "vm/intermediate_language.h"
6 6
7 #include "vm/bit_vector.h" 7 #include "vm/bit_vector.h"
8 #include "vm/bootstrap.h" 8 #include "vm/bootstrap.h"
9 #include "vm/compiler.h" 9 #include "vm/compiler.h"
10 #include "vm/constant_propagator.h" 10 #include "vm/constant_propagator.h"
(...skipping 3789 matching lines...) Expand 10 before | Expand all | Expand 10 after
3800 return kLibcAtanRuntimeEntry; 3800 return kLibcAtanRuntimeEntry;
3801 case MethodRecognizer::kMathAtan2: 3801 case MethodRecognizer::kMathAtan2:
3802 return kLibcAtan2RuntimeEntry; 3802 return kLibcAtan2RuntimeEntry;
3803 default: 3803 default:
3804 UNREACHABLE(); 3804 UNREACHABLE();
3805 } 3805 }
3806 return kLibcPowRuntimeEntry; 3806 return kLibcPowRuntimeEntry;
3807 } 3807 }
3808 3808
3809 3809
3810 const RuntimeEntry& MathUnaryInstr::TargetFunction() const {
3811 switch (kind()) {
3812 case MathUnaryInstr::kSin:
3813 return kLibcSinRuntimeEntry;
3814 case MathUnaryInstr::kCos:
3815 return kLibcCosRuntimeEntry;
3816 default:
3817 UNREACHABLE();
3818 }
3819 return kLibcSinRuntimeEntry;
3820 }
3821
3822
3823 const char* MathUnaryInstr::KindToCString(MathUnaryKind kind) { 3810 const char* MathUnaryInstr::KindToCString(MathUnaryKind kind) {
3824 switch (kind) { 3811 switch (kind) {
3825 case kIllegal: return "illegal"; 3812 case kIllegal: return "illegal";
3826 case kSin: return "sin";
3827 case kCos: return "cos";
3828 case kSqrt: return "sqrt"; 3813 case kSqrt: return "sqrt";
3829 case kDoubleSquare: return "double-square"; 3814 case kDoubleSquare: return "double-square";
3830 } 3815 }
3831 UNREACHABLE(); 3816 UNREACHABLE();
3832 return ""; 3817 return "";
3833 } 3818 }
3834 3819
3835 3820
3836 const RuntimeEntry& CaseInsensitiveCompareUC16Instr::TargetFunction() const { 3821 const RuntimeEntry& CaseInsensitiveCompareUC16Instr::TargetFunction() const {
3837 return kCaseInsensitiveCompareUC16RuntimeEntry; 3822 return kCaseInsensitiveCompareUC16RuntimeEntry;
3838 } 3823 }
3839 3824
3840 3825
3841 MergedMathInstr::MergedMathInstr(ZoneGrowableArray<Value*>* inputs, 3826 MergedMathInstr::MergedMathInstr(ZoneGrowableArray<Value*>* inputs,
3842 intptr_t deopt_id, 3827 intptr_t deopt_id,
3843 MergedMathInstr::Kind kind) 3828 MergedMathInstr::Kind kind)
3844 : PureDefinition(deopt_id), 3829 : PureDefinition(deopt_id),
3845 inputs_(inputs), 3830 inputs_(inputs),
3846 kind_(kind) { 3831 kind_(kind) {
3847 ASSERT(inputs_->length() == InputCountFor(kind_)); 3832 ASSERT(inputs_->length() == InputCountFor(kind_));
3848 for (intptr_t i = 0; i < inputs_->length(); ++i) { 3833 for (intptr_t i = 0; i < inputs_->length(); ++i) {
3849 ASSERT((*inputs)[i] != NULL); 3834 ASSERT((*inputs)[i] != NULL);
3850 (*inputs)[i]->set_instruction(this); 3835 (*inputs)[i]->set_instruction(this);
3851 (*inputs)[i]->set_use_index(i); 3836 (*inputs)[i]->set_use_index(i);
3852 } 3837 }
3853 } 3838 }
3854 3839
3855 3840
3856 intptr_t MergedMathInstr::OutputIndexOf(intptr_t kind) { 3841 intptr_t MergedMathInstr::OutputIndexOf(MethodRecognizer::Kind kind) {
3857 switch (kind) { 3842 switch (kind) {
3858 case MathUnaryInstr::kSin: return 1; 3843 case MethodRecognizer::kMathSin: return 1;
3859 case MathUnaryInstr::kCos: return 0; 3844 case MethodRecognizer::kMathCos: return 0;
3860 default: UNIMPLEMENTED(); return -1; 3845 default: UNIMPLEMENTED(); return -1;
3861 } 3846 }
3862 } 3847 }
3863 3848
3864 3849
3865 intptr_t MergedMathInstr::OutputIndexOf(Token::Kind token) { 3850 intptr_t MergedMathInstr::OutputIndexOf(Token::Kind token) {
3866 switch (token) { 3851 switch (token) {
3867 case Token::kTRUNCDIV: return 0; 3852 case Token::kTRUNCDIV: return 0;
3868 case Token::kMOD: return 1; 3853 case Token::kMOD: return 1;
3869 default: UNIMPLEMENTED(); return -1; 3854 default: UNIMPLEMENTED(); return -1;
(...skipping 22 matching lines...) Expand all
3892 set_native_c_function(native_function); 3877 set_native_c_function(native_function);
3893 function().SetIsNativeAutoSetupScope(auto_setup_scope); 3878 function().SetIsNativeAutoSetupScope(auto_setup_scope);
3894 Dart_NativeEntryResolver resolver = library.native_entry_resolver(); 3879 Dart_NativeEntryResolver resolver = library.native_entry_resolver();
3895 bool is_bootstrap_native = Bootstrap::IsBootstapResolver(resolver); 3880 bool is_bootstrap_native = Bootstrap::IsBootstapResolver(resolver);
3896 set_is_bootstrap_native(is_bootstrap_native); 3881 set_is_bootstrap_native(is_bootstrap_native);
3897 } 3882 }
3898 3883
3899 #undef __ 3884 #undef __
3900 3885
3901 } // namespace dart 3886 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | runtime/vm/intermediate_language_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698