From 528aa6766a42e5c7337f76a5e67187328f79e858 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Fri, 16 Jun 2023 15:22:28 -0700 Subject: [PATCH] more debugging information when dumping script optimization data structures --- src/script_opt/Expr.cc | 7 +++++++ src/script_opt/ScriptOpt.cc | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/script_opt/Expr.cc b/src/script_opt/Expr.cc index d0663fae05..d6ef7aceeb 100644 --- a/src/script_opt/Expr.cc +++ b/src/script_opt/Expr.cc @@ -2709,6 +2709,13 @@ void InlineExpr::ExprDescribe(ODesc* d) const { d->Add("inline("); args->Describe(d); + d->Add(")("); + for ( auto& p : params ) + { + if ( &p != ¶ms[0] ) + d->AddSP(","); + d->Add(p->Name()); + } d->Add("){"); body->Describe(d); d->Add("}"); diff --git a/src/script_opt/ScriptOpt.cc b/src/script_opt/ScriptOpt.cc index 8a44ffcd84..9d14839c89 100644 --- a/src/script_opt/ScriptOpt.cc +++ b/src/script_opt/ScriptOpt.cc @@ -216,6 +216,9 @@ static void optimize_func(ScriptFunc* f, std::shared_ptr pf, ScopeP new_body = ud->RemoveUnused(); + if ( analysis_options.dump_xform ) + printf("Post removal of unused: %s\n", obj_desc(new_body.get()).c_str()); + if ( new_body != body ) { f->ReplaceBody(body, new_body); @@ -593,6 +596,9 @@ void analyze_scripts(bool no_unused_warnings) // At this point we're done with C++ considerations, so instead // are compiling to ZAM. analyze_scripts_for_ZAM(pfs); + + if ( reporter->Errors() > 0 ) + reporter->FatalError("Optimized script execution aborted due to errors"); } void profile_script_execution()