profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/tmiasko/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

tmiasko/pyjags 9

PyJAGS: The Python Interface to JAGS

tmiasko/fsb-vorbis-extractor 6

FSB Vorbis Extractor

tmiasko/rust 0

Empowering everyone to build reliable and efficient software.

tmiasko/rustc-dev-guide 0

A guide to how rustc works and how to contribute to it.

tmiasko/rustc-perf 0

Website for graphing performance of rustc

Pull request review commentrust-lang/rustc-perf

Add command for profiling and comparing toolchains

 fn get_local_toolchain(     Ok((rustc, rustdoc, cargo)) } +fn generate_cachegrind_diffs(+    id1: &str,+    id2: &str,+    out_dir: &Path,+    benchmarks: &[Benchmark],+    build_kinds: &[BuildKind],+    scenario_kinds: &[ScenarioKind],+    errors: &mut BenchmarkErrors,+) {+    for benchmark in benchmarks {+        for &build_kind in build_kinds {+            for &scenario_kind in scenario_kinds {+                if let ScenarioKind::IncrPatched = scenario_kind {+                    continue;+                }+                let filename = |prefix, id| {+                    format!(+                        "{}-{}-{}-{:?}-{:?}",+                        prefix, id, benchmark.name, build_kind, scenario_kind+                    )+                };+                let id_diff = format!("{}-{}", id1, id2);+                let cgout1 = out_dir.join(filename("cgout", id1));+                let cgout2 = out_dir.join(filename("cgout", id2));+                let cgdiff = out_dir.join(filename("cgdiff", &id_diff));+                let cgann = out_dir.join(filename("cgann", &id_diff));++                if let Err(e) = cg_diff(&cgout1, &cgout2, &cgdiff) {+                    errors.incr();+                    eprintln!("collector error: {:?}", e);+                    continue;+                }+                if let Err(e) = cg_annotate(&cgdiff, &cgann) {+                    errors.incr();+                    eprintln!("collector error: {:?}", e);+                    continue;+                }+            }+        }+    }+}++/// Compares two Cachegrind output files using cg_diff and writes result to path.+fn cg_diff(cgout1: &Path, cgout2: &Path, path: &Path) -> anyhow::Result<()> {+    let output = Command::new("cg_diff")+        .arg("--mod-filename=s#/rustc/[^/]*/##")+        .arg("--mod-funcname=s/[.]llvm[.].*//")+        .arg(cgout1)+        .arg(cgout2)+        .stderr(Stdio::inherit())+        .output()+        .context("failed to run `cg_diff`")?;++    if !output.status.success() {+        anyhow::bail!("failed to generate cachegrind diff");+    }++    fs::write(path, output.stdout).context("failed to write `cg_diff` output")?;++    Ok(())+}++/// Post process Cachegrind output file and writes resutl to path.+fn cg_annotate(cgout: &Path, path: &Path) -> anyhow::Result<()> {+    let output = Command::new("cg_annotate")+        .arg(cgout)+        .stderr(Stdio::inherit())+        .output()+        .context("failed to run `cg_annotate`")?;++    if !output.status.success() {+        anyhow::bail!("failed to annotate cachegrind output");+    }++    fs::write(path, output.stdout).context("failed to write `cg_annotate` output")?;

I have been using valgrind-3.17.0 which does have demangling support builtin based on libiberty (I think?). The only limitation is lack of support for symbols renamed during LTO, those with dot suffix, i.e., .llvm.*.

tmiasko

comment created time in 3 days

PullRequestReviewEvent

push eventtmiasko/rustc-perf

Tyson Nottingham

commit sha 5bc8a59a2b4f3a07cc1c6efc635ef7ec99c9c361

Show data for queries present only in one profile in comparison Add showing rows for self-profile queries present only in base profile, and add showing deltas for queries present only in main profile. Fixes #1022.

view details

Tyson Nottingham

commit sha a69edeaf1bf57ea1f8d1fba608869808873c4436

Show query executions delta as integer rather than float

view details

Tyson Nottingham

commit sha 61466f7be349d5ecb935261b1fc8cab1addf979c

Merge pull request #1027 from tgnottingham/show-uninvoked-self-profile-queries Show data for queries present only in one profile in comparison

view details

Tomasz Miąsko

commit sha 3c84c576a6e496e26047bd96c8e7ddd1cbf6eb49

Add command for profiling and comparing toolchains Current implementation allows using an arbitrary profiler, but the intended use case is profiling with cachegrind. When cachegrind is selected, the command will automatically compare results with `cg_diff` and post process output with `cg_annotate`.

view details

push time in 3 days

delete branch tmiasko/rustc-perf

delete branch : p

delete time in 3 days

PR closed rust-lang/rustc-perf

Add utility script for profiling CI artifacts

For example to compare two builds on ctfe-stress-4-doc benchmark using cachegrind:

$ ./p.py -p cachegrind -b ctfe-stress-4 --builds Doc \
  7611fe438dae91084d17022e705bf64374d5ba4b \
  bcfd3f7e88084850f87b8e34b4dcb9fceb872d00
+131 -0

5 comments

1 changed file

tmiasko

pr closed time in 3 days

pull request commentrust-lang/rustc-perf

Add utility script for profiling CI artifacts

Closing in favour of #1028.

tmiasko

comment created time in 3 days

PR opened rust-lang/rustc-perf

Add command for profiling and comparing toolchains

Current implementation allows using an arbitrary profiler, but the intended use case is profiling with cachegrind. When cachegrind is selected, the command will automatically compare results with cg_diff and post process output with cg_annotate.

For example to compare two builds on ctfe-stress-4-doc benchmark:

$ cargo run --bin collector -- diff_local --builds Doc --runs Full --include helloworld cachegrind \
  +7611fe438dae91084d17022e705bf64374d5ba4b before \
  +bcfd3f7e88084850f87b8e34b4dcb9fceb872d00 after

$ cat results/cgann-before-after-helloworld-Doc-Full
...
+184 -1

0 comment

1 changed file

pr created time in 3 days

push eventtmiasko/rustc-perf

Tomasz Miąsko

commit sha 9e1ac7d7a093662b7e1a1495b55d65c9a55ee446

Add command for profiling and comparing toolchains Current implementation allows using an arbitrary profiler, but the intended use case is profiling with cachegrind. When cachegrind is selected, the command will automatically compare results with `cg_diff` and post process output with `cg_annotate`.

view details

push time in 3 days

push eventtmiasko/rustc-perf

Tomasz Miąsko

commit sha ccce66f16c15657f2e0335d8ca219139bde7bd34

Add command for profiling and comparing toolchains Current implementation allows using an arbitrary profiler, but the intended use case is profiling with cachegrind. When cachegrind is selected, the command will automatically compare results with `cg_diff` and post process output with `cg_annotate`.

view details

push time in 3 days

create barnchtmiasko/rustc-perf

branch : diff

created branch time in 3 days

pull request commentrust-lang/rustc-perf

Add utility script for profiling CI artifacts

I just pushed up #1025 which does the installation bits automatically (though shells out to rustup toolchain install master).

Nice!

I'd personally feel better about integrating this directly as a subcommand.

What about extending profile_local to allow multiple toolchains and detecting the special case of profiling with cachegrind and two toolchains for which we would automatically generate the comparison using cg_diff and cg_annotate?

tmiasko

comment created time in 3 days

PR opened rust-lang/rustc-perf

Add utility script for profiling CI artifacts

For example to compare two builds on ctfe-stress-4-doc benchmark using cachegrind:

$ ./p.py -p cachegrind -b ctfe-stress-4 --builds Doc \
  7611fe438dae91084d17022e705bf64374d5ba4b \
  bcfd3f7e88084850f87b8e34b4dcb9fceb872d00
+131 -0

0 comment

1 changed file

pr created time in 4 days

push eventtmiasko/rustc-perf

Tomasz Miąsko

commit sha 07448883e04720832c32d9950aedb8b5f81e4984

Add utility script for profiling CI artifacts

view details

push time in 4 days

create barnchtmiasko/rustc-perf

branch : p

created branch time in 4 days

fork tmiasko/rustc-perf

Website for graphing performance of rustc

https://perf.rust-lang.org

fork in 4 days

delete branch tmiasko/rustc-dev-guide

delete branch : coverage-bless

delete time in 6 days

delete branch tmiasko/rust

delete branch : block-label-shadowing

delete time in 6 days

PR opened rust-lang/rustc-dev-guide

s/--blessed/--bless/
+2 -2

0 comment

1 changed file

pr created time in 6 days

create barnchtmiasko/rustc-dev-guide

branch : coverage-bless

created branch time in 6 days

fork tmiasko/rustc-dev-guide

A guide to how rustc works and how to contribute to it.

https://rustc-dev-guide.rust-lang.org

fork in 7 days

delete branch tmiasko/rust

delete branch : start-block-no-predecessors

delete time in 7 days

delete branch tmiasko/rust

delete branch : instrument-debug

delete time in 8 days

pull request commentrust-lang/rust

Start block is not allowed to have basic block predecessors

Rebased and reblessed mir opt coverage tests.

tmiasko

comment created time in 8 days

push eventtmiasko/rust

Fabian Wolff

commit sha 4e76c3820fea97e06f08555d4eeee3de3be4eb5a

Fix ICE in `improper_ctypes_definitions` lint with all-ZST transparent types

view details

Joshua Nelson

commit sha 56511924606ab8791a50822952e3101e8030fe8e

Remove unnecessary copies when using parallel IO Previously, rustdoc was making lots of copies of temporary owned values. Now, it uses the owned value wherever possible.

view details

piegames

commit sha ced597edb7e154092efde9df975ee76f9642a200

Add TcpListener::into_incoming and IntoIncoming The `incoming` method is really useful, however for some use cases the borrow this introduces is needlessly restricting. Thus, an owned variant is added.

view details

Mara Bos

commit sha 3caf0bcdeb9546bd8a3ab58c0e33baabdcaac75a

Accept `m!{ .. }.method()` and `m!{ .. }?` statements.

view details

Mara Bos

commit sha ebf12529dfa62cf463de4fd5e1355e8ea4fe0559

Add test for braced-macro followed by `.` or `?`.

view details

Esteban Kuber

commit sha b82ec362ca14a6c369b1999bdd40150b60567c96

Recover from `Foo(a: 1, b: 2)` Detect likely `struct` literal using parentheses as delimiters and emit targeted suggestion instead of type ascription parse error. Fix #61326.

view details

danakj

commit sha ce35f8ec56ec7e89d351cd95001f4d819c97e07d

remap-cwd-prefix

view details

danakj

commit sha 2a687deee872917b09519519290521fa8dd472b7

Move documentation to the unstable book

view details

bjorn3

commit sha a4a22f07d79b1a2adc6e59811ebfbcd8b2cf21a4

Doc comments

view details

bjorn3

commit sha 58000ed0e9152e331dc7c7319c7783cc7f028f84

Move get_tools_search_paths from FileSearch to Session It only uses fields of FileSearch that are stored in Session too

view details

bjorn3

commit sha d7ef0b30e89960aede88bf450e4a2172332432e0

Use Lrc instead of Option to avoid duplication of a SearchPath

view details

Felix S. Klock II

commit sha 2691a399762149f2c8dd5c3ffc44244b98c37099

Revert "Allow formatting `Anonymous{Struct, Union}` declarations" This reverts commit 64acb7d92135ae722dfce89f0ca9d7cf6576de66.

view details

Felix S. Klock II

commit sha 2041fb1a2dc06237ffb63eff8fcfaa93abf67952

Revert "Add test for pretty printing anonymous types" This reverts commit d59b1f1ef4be692b67c1ff1b49ec810fd59452cf.

view details

Felix S. Klock II

commit sha 5560f6d90a6a15fdb52a30f97d28b439b72f6cf3

Revert "Fix ast expanded printing for anonymous types" This reverts commit 5b4bc05fa57be19bb5962f4b7c0f165e194e3151.

view details

Felix S. Klock II

commit sha f38ec9ca34c501b2a618178a14fe2a3c9979ddc9

Revert "Add test for restriction of anonymous types on validation" This reverts commit 8a1dd6918bb686a960ad5ced46a16b5b59668464.

view details

Felix S. Klock II

commit sha b6aa7e3105a76d1dcb0c4d0e475657056a3885c5

Manually crafted revert of d4ad050ce5778a09566f6f9ec172565815d54604 .

view details

Felix S. Klock II

commit sha 91feb76d133952825e3eb32bed399ec6e4bd9219

Revert "Implement Anonymous{Struct, Union} in the AST" This reverts commit 059b68dd677808e14e560802d235ad40beeba71e. Note that this was manually adjusted to retain some of the refactoring introduced by commit 059b68dd677808e14e560802d235ad40beeba71e, so that it could likewise retain the correction introduced in commit 5b4bc05fa57be19bb5962f4b7c0f165e194e3151

view details

Felix S. Klock II

commit sha f26f1ed9a7208c0d928f0413cdd5f0966fa2c399

Re-add 71a7f8f1884b2c83eeb4a545eef16df1f2ea6476 post-revert.

view details

Felix S. Klock II

commit sha 35370a7ba3d52bfe2a6121a0eaccbc240ed9559d

regression test for issue #88583.

view details

Patrick Walton

commit sha 79bc53870f9fb2b25abffedaa3a4823b974fe69f

Introduce a fast path that avoids the `debug_tuple` abstraction when deriving Debug for unit-like enum variants. The intent here is to allow LLVM to remove the switch entirely in favor of an indexed load from a table of constant strings, which is likely what the programmer would write in C. Unfortunately, LLVM currently doesn't perform this optimization due to a bug, but there is [a patch](https://reviews.llvm.org/D109565) that fixes this issue. I've verified that, with that patch applied on top of this commit, Debug for unit-like tuple variants becomes a load, reducing the O(n) code bloat to O(1). Note that inlining `DebugTuple::finish()` wasn't enough to allow LLVM to optimize the code properly; I had to avoid the abstraction entirely. Not using the abstraction is likely better for compile time anyway. Part of #88793.

view details

push time in 8 days

delete branch tmiasko/rust

delete branch : trace-log

delete time in 9 days

delete branch tmiasko/rust

delete branch : no-remove-zsts-in-generators

delete time in 9 days

delete branch tmiasko/rust

delete branch : remove-min-align-of

delete time in 10 days

pull request commentrust-lang/rust

Use explicit log level in tracing instrument macro

@cjgillot, @oli-obk let me know if you would like to retain the existing info log level for some of those.

tmiasko

comment created time in 10 days

PR opened rust-lang/rust

Use explicit log level in tracing instrument macro

Specify a log level in tracing instrument macro explicitly.

Additionally reduce the used log level from a default info level to a debug level (all of those appear to be developer oriented logs, so there should be no need to include them in release builds).

+15 -15

0 comment

4 changed files

pr created time in 10 days

create barnchtmiasko/rust

branch : instrument-debug

created branch time in 10 days