diff --git a/toolchain/driver/BUILD b/toolchain/driver/BUILD index 41c40d14f239..b63cfe16cf9b 100644 --- a/toolchain/driver/BUILD +++ b/toolchain/driver/BUILD @@ -15,6 +15,7 @@ cc_library( hdrs = ["driver.h"], textual_hdrs = ["flags.def"], deps = [ + "//common:vlog", "//toolchain/diagnostics:diagnostic_emitter", "//toolchain/diagnostics:sorting_diagnostic_consumer", "//toolchain/lexer:tokenized_buffer", diff --git a/toolchain/driver/driver.cpp b/toolchain/driver/driver.cpp index f151ee79f03b..0db8a8090381 100644 --- a/toolchain/driver/driver.cpp +++ b/toolchain/driver/driver.cpp @@ -4,6 +4,7 @@ #include "toolchain/driver/driver.h" +#include "common/vlog.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/StringRef.h" @@ -148,7 +149,9 @@ auto Driver::RunDumpSubcommand(DiagnosticConsumer& consumer, return false; } + CARBON_VLOG() << "*** SourceBuffer::CreateFromFile ***\n"; auto source = SourceBuffer::CreateFromFile(input_file_name); + CARBON_VLOG() << "*** SourceBuffer::CreateFromFile done ***\n"; if (!source) { error_stream_ << "ERROR: Unable to open input source file: "; llvm::handleAllErrors(source.takeError(), @@ -159,29 +162,39 @@ auto Driver::RunDumpSubcommand(DiagnosticConsumer& consumer, return false; } + CARBON_VLOG() << "*** TokenizedBuffer::Lex ***\n"; auto tokenized_source = TokenizedBuffer::Lex(*source, consumer); + CARBON_VLOG() << "*** TokenizedBuffer::Lex done ***\n"; if (dump_mode == DumpMode::TokenizedBuffer) { + CARBON_VLOG() << "Finishing output."; consumer.Flush(); tokenized_source.Print(output_stream_); return !tokenized_source.has_errors(); } + CARBON_VLOG() << tokenized_source; + CARBON_VLOG() << "*** ParseTree::Parse ***\n"; auto parse_tree = ParseTree::Parse(tokenized_source, consumer, vlog_stream_); + CARBON_VLOG() << "*** ParseTree::Parse done ***\n"; if (dump_mode == DumpMode::ParseTree) { consumer.Flush(); parse_tree.Print(output_stream_, parse_tree_preorder); return !tokenized_source.has_errors() && !parse_tree.has_errors(); } + CARBON_VLOG() << parse_tree; const SemanticsIR builtin_ir = SemanticsIR::MakeBuiltinIR(); + CARBON_VLOG() << "*** SemanticsIR::MakeFromParseTree ***\n"; const SemanticsIR semantics_ir = SemanticsIR::MakeFromParseTree( builtin_ir, tokenized_source, parse_tree, consumer, vlog_stream_); + CARBON_VLOG() << "*** SemanticsIR::MakeFromParseTree done ***\n"; if (dump_mode == DumpMode::SemanticsIR) { consumer.Flush(); semantics_ir.Print(output_stream_); // TODO: Return false when SemanticsIR has errors (not supported right now). return !tokenized_source.has_errors() && !parse_tree.has_errors(); } + CARBON_VLOG() << semantics_ir; llvm_unreachable("should handle all dump modes"); } diff --git a/toolchain/parser/parser.cpp b/toolchain/parser/parser.cpp index 67236a8ff67c..2f6849b0ff76 100644 --- a/toolchain/parser/parser.cpp +++ b/toolchain/parser/parser.cpp @@ -433,8 +433,6 @@ auto Parser::Parse() -> void { // Traces state_stack_. This runs even in opt because it's low overhead. PrettyStackTraceParseState pretty_stack(this); - CARBON_VLOG() << "*** Parser::Parse Begin ***\n"; - PushState(ParserState::DeclarationLoop()); while (!state_stack_.empty()) { switch (state_stack_.back().state) { @@ -447,8 +445,6 @@ auto Parser::Parse() -> void { } AddLeafNode(ParseNodeKind::FileEnd(), *position_); - - CARBON_VLOG() << "*** Parser::Parse End ***\n"; } auto Parser::HandleBraceExpressionState() -> void { diff --git a/toolchain/semantics/semantics_parse_tree_handler.cpp b/toolchain/semantics/semantics_parse_tree_handler.cpp index d5f750f3bd53..e3b10ac1627c 100644 --- a/toolchain/semantics/semantics_parse_tree_handler.cpp +++ b/toolchain/semantics/semantics_parse_tree_handler.cpp @@ -63,7 +63,6 @@ auto SemanticsParseTreeHandler::Build() -> void { PrettyStackTraceNodeStack pretty_node_stack(this); PrettyStackTraceNodeBlockStack pretty_node_block_stack(this); - CARBON_VLOG() << "*** SemanticsParseTreeHandler::Build Begin ***\n"; // Add a block for the ParseTree. node_block_stack_.push_back(semantics_->AddNodeBlock()); @@ -85,7 +84,6 @@ auto SemanticsParseTreeHandler::Build() -> void { CARBON_CHECK(it == range.end()) << "FileEnd should always be last, found " << parse_tree_->node_kind(*it); - CARBON_VLOG() << "*** SemanticsParseTreeHandler::Build End ***\n"; return; } case ParseNodeKind::InfixOperator(): {