From 7c0f77a4a50696212b95951ef0e6705e347515d3 Mon Sep 17 00:00:00 2001 From: "svenpanne@chromium.org" Date: Fri, 24 May 2013 10:57:59 +0000 Subject: [PATCH] Make (most of) --trace-codegen available in release mode. Better output. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/15941004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/codegen-arm.h | 2 +- src/codegen.cc | 12 ++++++------ src/flag-definitions.h | 4 ++-- src/full-codegen.cc | 5 +---- src/ia32/codegen-ia32.h | 2 +- src/lithium.cc | 5 +---- src/mips/codegen-mips.h | 2 +- src/x64/codegen-x64.h | 2 +- 8 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/arm/codegen-arm.h b/src/arm/codegen-arm.h index 75899a948e..c020ab601c 100644 --- a/src/arm/codegen-arm.h +++ b/src/arm/codegen-arm.h @@ -51,7 +51,7 @@ class CodeGenerator: public AstVisitor { static bool MakeCode(CompilationInfo* info); // Printing of AST, etc. as requested by flags. - static void MakeCodePrologue(CompilationInfo* info); + static void MakeCodePrologue(CompilationInfo* info, const char* kind); // Allocate and install the code. static Handle MakeCodeEpilogue(MacroAssembler* masm, diff --git a/src/codegen.cc b/src/codegen.cc index ff4003c1ef..af2f1f667b 100644 --- a/src/codegen.cc +++ b/src/codegen.cc @@ -58,13 +58,12 @@ Comment::~Comment() { #undef __ -void CodeGenerator::MakeCodePrologue(CompilationInfo* info) { -#ifdef DEBUG +void CodeGenerator::MakeCodePrologue(CompilationInfo* info, const char* kind) { bool print_source = false; bool print_ast = false; const char* ftype; - if (Isolate::Current()->bootstrapper()->IsActive()) { + if (info->isolate()->bootstrapper()->IsActive()) { print_source = FLAG_print_builtin_source; print_ast = FLAG_print_builtin_ast; ftype = "builtin"; @@ -75,17 +74,18 @@ void CodeGenerator::MakeCodePrologue(CompilationInfo* info) { } if (FLAG_trace_codegen || print_source || print_ast) { - PrintF("*** Generate code for %s function: ", ftype); + PrintF("[generating %s code for %s function: ", kind, ftype); if (info->IsStub()) { const char* name = CodeStub::MajorName(info->code_stub()->MajorKey(), true); PrintF("%s", name == NULL ? "" : name); } else { - info->function()->name()->ShortPrint(); + PrintF("%s", *info->function()->debug_name()->ToCString()); } - PrintF(" ***\n"); + PrintF("]\n"); } +#ifdef DEBUG if (!info->IsStub() && print_source) { PrintF("--- Source from AST ---\n%s\n", PrettyPrinter().PrintProgram(info->function())); diff --git a/src/flag-definitions.h b/src/flag-definitions.h index 859487a6f8..8fe6778e67 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -377,6 +377,8 @@ DEFINE_bool(stack_trace_on_abort, true, "print a stack trace if an assertion failure occurs") // codegen-ia32.cc / codegen-arm.cc +DEFINE_bool(trace_codegen, false, + "print name of functions for which code is generated") DEFINE_bool(trace, false, "trace function calls") DEFINE_bool(mask_constants_with_cookie, true, @@ -636,8 +638,6 @@ DEFINE_bool(enable_slow_asserts, false, "enable asserts that are slow to execute") // codegen-ia32.cc / codegen-arm.cc -DEFINE_bool(trace_codegen, false, - "print name of functions for which code is generated") DEFINE_bool(print_source, false, "pretty print source code") DEFINE_bool(print_builtin_source, false, "pretty print source code for builtins") diff --git a/src/full-codegen.cc b/src/full-codegen.cc index dc646b1a98..ad2a9947f3 100644 --- a/src/full-codegen.cc +++ b/src/full-codegen.cc @@ -304,10 +304,7 @@ bool FullCodeGenerator::MakeCode(CompilationInfo* info) { int len = String::cast(script->source())->length(); isolate->counters()->total_full_codegen_source_size()->Increment(len); } - if (FLAG_trace_codegen) { - PrintF("Full Compiler - "); - } - CodeGenerator::MakeCodePrologue(info); + CodeGenerator::MakeCodePrologue(info, "full"); const int kInitialBufferSize = 4 * KB; MacroAssembler masm(info->isolate(), NULL, kInitialBufferSize); #ifdef ENABLE_GDB_JIT_INTERFACE diff --git a/src/ia32/codegen-ia32.h b/src/ia32/codegen-ia32.h index 5137274145..6db381e47e 100644 --- a/src/ia32/codegen-ia32.h +++ b/src/ia32/codegen-ia32.h @@ -43,7 +43,7 @@ class CompilationInfo; class CodeGenerator { public: // Printing of AST, etc. as requested by flags. - static void MakeCodePrologue(CompilationInfo* info); + static void MakeCodePrologue(CompilationInfo* info, const char* kind); // Allocate and install the code. static Handle MakeCodeEpilogue(MacroAssembler* masm, diff --git a/src/lithium.cc b/src/lithium.cc index 539f4eefba..9f44b7ef5a 100644 --- a/src/lithium.cc +++ b/src/lithium.cc @@ -455,10 +455,7 @@ Handle LChunk::Codegen() { MarkEmptyBlocks(); if (generator.GenerateCode()) { - if (FLAG_trace_codegen) { - PrintF("Crankshaft Compiler - "); - } - CodeGenerator::MakeCodePrologue(info()); + CodeGenerator::MakeCodePrologue(info(), "optimized"); Code::Flags flags = info()->flags(); Handle code = CodeGenerator::MakeCodeEpilogue(&assembler, flags, info()); diff --git a/src/mips/codegen-mips.h b/src/mips/codegen-mips.h index d429443a88..240b02ce44 100644 --- a/src/mips/codegen-mips.h +++ b/src/mips/codegen-mips.h @@ -53,7 +53,7 @@ class CodeGenerator: public AstVisitor { static bool MakeCode(CompilationInfo* info); // Printing of AST, etc. as requested by flags. - static void MakeCodePrologue(CompilationInfo* info); + static void MakeCodePrologue(CompilationInfo* info, const char* kind); // Allocate and install the code. static Handle MakeCodeEpilogue(MacroAssembler* masm, diff --git a/src/x64/codegen-x64.h b/src/x64/codegen-x64.h index 3a7646bd1b..5747e0bc6f 100644 --- a/src/x64/codegen-x64.h +++ b/src/x64/codegen-x64.h @@ -51,7 +51,7 @@ class CodeGenerator: public AstVisitor { static bool MakeCode(CompilationInfo* info); // Printing of AST, etc. as requested by flags. - static void MakeCodePrologue(CompilationInfo* info); + static void MakeCodePrologue(CompilationInfo* info, const char* kind); // Allocate and install the code. static Handle MakeCodeEpilogue(MacroAssembler* masm,