From 71893287d005648268054eb2eb546dff29505680 Mon Sep 17 00:00:00 2001 From: sirasistant Date: Mon, 15 Jul 2024 11:42:53 +0000 Subject: [PATCH 1/3] fix: Add trailing extra arguments for backend in gates_flamegraph --- .../tooling/profiler/src/cli/gates_flamegraph_cmd.rs | 9 ++++++++- .../noir-repo/tooling/profiler/src/gates_provider.rs | 12 ++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs b/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs index 154ac38f4bba..5451e7b87c1a 100644 --- a/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs +++ b/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs @@ -19,15 +19,22 @@ pub(crate) struct GatesFlamegraphCommand { #[clap(long, short)] backend_path: String, + #[arg(trailing_var_arg = true, allow_hyphen_values = true)] + backend_extra_args: Vec, + /// The output folder for the flamegraph svg files #[clap(long, short)] output: String, } pub(crate) fn run(args: GatesFlamegraphCommand) -> eyre::Result<()> { + dbg!(&args.backend_extra_args); run_with_provider( &PathBuf::from(args.artifact_path), - &BackendGatesProvider { backend_path: PathBuf::from(args.backend_path) }, + &BackendGatesProvider { + backend_path: PathBuf::from(args.backend_path), + extra_args: args.backend_extra_args, + }, &InfernoFlamegraphGenerator { count_name: "gates".to_string() }, &PathBuf::from(args.output), ) diff --git a/noir/noir-repo/tooling/profiler/src/gates_provider.rs b/noir/noir-repo/tooling/profiler/src/gates_provider.rs index caed26664261..f96b12929871 100644 --- a/noir/noir-repo/tooling/profiler/src/gates_provider.rs +++ b/noir/noir-repo/tooling/profiler/src/gates_provider.rs @@ -10,12 +10,20 @@ pub(crate) trait GatesProvider { pub(crate) struct BackendGatesProvider { pub(crate) backend_path: PathBuf, + pub(crate) extra_args: Vec, } impl GatesProvider for BackendGatesProvider { fn get_gates(&self, artifact_path: &Path) -> eyre::Result { - let backend_gates_response = - Command::new(&self.backend_path).arg("gates").arg("-b").arg(artifact_path).output()?; + let mut backend_gates_cmd = Command::new(&self.backend_path); + + backend_gates_cmd.arg("gates").arg("-b").arg(artifact_path); + + for arg in &self.extra_args { + backend_gates_cmd.arg(arg); + } + + let backend_gates_response = backend_gates_cmd.output()?; // Parse the backend gates command stdout as json let backend_gates_response: BackendGatesResponse = From 8c709a147877367cd297a6bb7ef0d4ef53026d3f Mon Sep 17 00:00:00 2001 From: sirasistant Date: Mon, 15 Jul 2024 11:45:03 +0000 Subject: [PATCH 2/3] remove dbg --- noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs b/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs index 5451e7b87c1a..98e89e420159 100644 --- a/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs +++ b/noir/noir-repo/tooling/profiler/src/cli/gates_flamegraph_cmd.rs @@ -28,7 +28,6 @@ pub(crate) struct GatesFlamegraphCommand { } pub(crate) fn run(args: GatesFlamegraphCommand) -> eyre::Result<()> { - dbg!(&args.backend_extra_args); run_with_provider( &PathBuf::from(args.artifact_path), &BackendGatesProvider { From d7130e94f15d18f3904b52ff1443913c0653269c Mon Sep 17 00:00:00 2001 From: sirasistant Date: Mon, 15 Jul 2024 11:46:22 +0000 Subject: [PATCH 3/3] chore: update flamegraph script with honk recursion flag --- noir-projects/noir-protocol-circuits/scripts/flamegraph.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noir-projects/noir-protocol-circuits/scripts/flamegraph.sh b/noir-projects/noir-protocol-circuits/scripts/flamegraph.sh index 31983a6dac03..55bbcd385042 100755 --- a/noir-projects/noir-protocol-circuits/scripts/flamegraph.sh +++ b/noir-projects/noir-protocol-circuits/scripts/flamegraph.sh @@ -72,7 +72,7 @@ DEST="$SCRIPT_DIR/../dest" mkdir -p $DEST # At last, generate the flamegraph. -$PROFILER gates-flamegraph --artifact-path "${ARTIFACT}" --backend-path "$SCRIPT_DIR/../../../barretenberg/cpp/build/bin/bb" --output "$DEST" +$PROFILER gates-flamegraph --artifact-path "${ARTIFACT}" --backend-path "$SCRIPT_DIR/../../../barretenberg/cpp/build/bin/bb" --output "$DEST" -- -h # Serve the file over http if -s is set. if $SERVE; then