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

Side by Side Diff: src/objects.cc

Issue 22926025: Add --trace-hydrogen-filter flag. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: refactored Created 7 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 | Annotate | Revision Log
OLDNEW
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 9602 matching lines...) Expand 10 before | Expand all | Expand 10 after
9613 SmartArrayPointer<char> name = shared()->DebugName()->ToCString(); 9613 SmartArrayPointer<char> name = shared()->DebugName()->ToCString();
9614 PrintF(out, "%s", *name); 9614 PrintF(out, "%s", *name);
9615 } 9615 }
9616 9616
9617 9617
9618 Context* JSFunction::NativeContextFromLiterals(FixedArray* literals) { 9618 Context* JSFunction::NativeContextFromLiterals(FixedArray* literals) {
9619 return Context::cast(literals->get(JSFunction::kLiteralNativeContextIndex)); 9619 return Context::cast(literals->get(JSFunction::kLiteralNativeContextIndex));
9620 } 9620 }
9621 9621
9622 9622
9623 bool JSFunction::PassesHydrogenFilter() { 9623 // The filter is a pattern that matches function names in this way:
9624 // "*" all; the default
9625 // "-" all but the top-level function
9626 // "-name" all but the function "name"
9627 // "" only the top-level function
9628 // "name" only the function "name"
9629 // "name*" only functions starting with "name"
9630 bool JSFunction::PassesFilter(const char* raw_filter) {
9631 if (*raw_filter == '*') return true;
9624 String* name = shared()->DebugName(); 9632 String* name = shared()->DebugName();
9625 // The filter string is a pattern that matches functions in this way: 9633 Vector<const char> filter = CStrVector(raw_filter);
9626 // "*" all; the default 9634 if (filter.length() == 0) return name->length() == 0;
9627 // "-" all but the top-level function 9635 if (filter[0] != '-' && name->IsUtf8EqualTo(filter)) return true;
9628 // "-name" all but the function "name" 9636 if (filter[0] == '-' &&
9629 // "" only the top-level function 9637 !name->IsUtf8EqualTo(filter.SubVector(1, filter.length()))) {
9630 // "name" only the function "name" 9638 return true;
9631 // "name*" only functions starting with "name"
9632 if (*FLAG_hydrogen_filter != '*') {
9633 Vector<const char> filter = CStrVector(FLAG_hydrogen_filter);
9634 if (filter.length() == 0) return name->length() == 0;
9635 if (filter[0] != '-' && name->IsUtf8EqualTo(filter)) return true;
9636 if (filter[0] == '-' &&
9637 !name->IsUtf8EqualTo(filter.SubVector(1, filter.length()))) {
9638 return true;
9639 }
9640 if (filter[filter.length() - 1] == '*' &&
9641 name->IsUtf8EqualTo(filter.SubVector(0, filter.length() - 1), true)) {
9642 return true;
9643 }
9644 return false;
9645 } 9639 }
9646 9640 if (filter[filter.length() - 1] == '*' &&
9647 return true; 9641 name->IsUtf8EqualTo(filter.SubVector(0, filter.length() - 1), true)) {
9642 return true;
9643 }
9644 return false;
9648 } 9645 }
9649 9646
9650 9647
9651 MaybeObject* Oddball::Initialize(const char* to_string, 9648 MaybeObject* Oddball::Initialize(const char* to_string,
9652 Object* to_number, 9649 Object* to_number,
9653 byte kind) { 9650 byte kind) {
9654 String* internalized_to_string; 9651 String* internalized_to_string;
9655 { MaybeObject* maybe_string = 9652 { MaybeObject* maybe_string =
9656 Isolate::Current()->heap()->InternalizeUtf8String( 9653 Isolate::Current()->heap()->InternalizeUtf8String(
9657 CStrVector(to_string)); 9654 CStrVector(to_string));
(...skipping 6294 matching lines...) Expand 10 before | Expand all | Expand 10 after
15952 #define ERROR_MESSAGES_TEXTS(C, T) T, 15949 #define ERROR_MESSAGES_TEXTS(C, T) T,
15953 static const char* error_messages_[] = { 15950 static const char* error_messages_[] = {
15954 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) 15951 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)
15955 }; 15952 };
15956 #undef ERROR_MESSAGES_TEXTS 15953 #undef ERROR_MESSAGES_TEXTS
15957 return error_messages_[reason]; 15954 return error_messages_[reason];
15958 } 15955 }
15959 15956
15960 15957
15961 } } // namespace v8::internal 15958 } } // namespace v8::internal
OLDNEW
« src/compiler.cc ('K') | « src/objects.h ('k') | src/runtime-profiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698