Page MenuHomePhabricator

ellis (Ellis Hoag)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 14 2018, 5:51 PM (250 w, 3 h)

Recent Activity

Yesterday

ellis committed rG167e8f8b6b11: [InstrProf] Minimal Block Coverage (authored by ellis).
[InstrProf] Minimal Block Coverage
Wed, Mar 29, 4:24 PM · Restricted Project, Restricted Project, Restricted Project
ellis closed D124490: [InstrProf] Minimal Block Coverage.
Wed, Mar 29, 4:24 PM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Rebase

Wed, Mar 29, 4:22 PM · Restricted Project, Restricted Project, Restricted Project

Wed, Mar 22

ellis added a comment to D124490: [InstrProf] Minimal Block Coverage.

Hi @MaskRay do you have any more concerns?

Wed, Mar 22, 5:13 PM · Restricted Project, Restricted Project, Restricted Project

Tue, Mar 14

ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Bail if the function has >1.5K blocks.

Tue, Mar 14, 5:54 PM · Restricted Project, Restricted Project, Restricted Project
ellis added a comment to D124490: [InstrProf] Minimal Block Coverage.

In BlockCoverageInference.cpp , for (auto &BB : F) { ... getReachableAvoiding is strictly quadratic and I think that may be problematic.
There are quite a few programs (e.g. Chisel genrerated C++) which contain functions with many basic blocks (say, >1000).
Also see D137184: a workaround for some programs with too many critical edges.

Applying a strict quadratic algorithm is a compile time pitfall. I understand that it may be fine for some mobile applications.
There are certainly other quadratic algorithms such as an O((V+E)*c) algorithm in GCC gcov (V: number of vertices; E: number of edges; c: number of elementary circuits),
an O(V^2) implementation of Semi-NCA algorithm.
For them, the quadratic time complexity is a theoretic upper bound which is really really difficult to achieve in practice (if ever achievable considering that in practice most CFGs are reducible).

Note that the optimality in the number of instrumented basic blocks is not required.
It does not necessarily lead to optimal performance since we have discarded execution count information.
Is it possible to use a faster algorithm which may instrument a few more basic blocks (let's arbitrarily say 1.2-approximation is good enough in practice)?

Tue, Mar 14, 5:53 PM · Restricted Project, Restricted Project, Restricted Project

Wed, Mar 1

ellis added inline comments to D124490: [InstrProf] Minimal Block Coverage.
Wed, Mar 1, 12:43 PM · Restricted Project, Restricted Project, Restricted Project
ellis added inline comments to D124490: [InstrProf] Minimal Block Coverage.
Wed, Mar 1, 12:37 PM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Use flood-fill algorithm to infer block coverage and rename some compiler-rt tests.

Wed, Mar 1, 12:37 PM · Restricted Project, Restricted Project, Restricted Project

Jan 30 2023

ellis added a comment to D138846: MC/DC in LLVM Source-Based Code Coverage: LLVM back-end and compiler-rt.

Just did another quick pass of this diff and I'll take a look at the other diffs soon.

Jan 30 2023, 2:16 PM · Restricted Project, Restricted Project

Jan 20 2023

ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Rebase, use the std::optional() API, and initialize region counters for cover instructions as well as increment instructions.

Jan 20 2023, 11:11 AM · Restricted Project, Restricted Project, Restricted Project
ellis committed rG259fa70885e9: [PGO] incorrect classof in InstrProfIncrementInst (authored by ellis).
[PGO] incorrect classof in InstrProfIncrementInst
Jan 20 2023, 10:22 AM · Restricted Project, Restricted Project
ellis closed D141579: [PGO] incorrect classof in InstrProfIncrementInst.
Jan 20 2023, 10:22 AM · Restricted Project, Restricted Project
ellis added a comment to D141579: [PGO] incorrect classof in InstrProfIncrementInst.

Thank you for the reviews! Could one of you commit this revision for me as I do not have commit access?

Jan 20 2023, 9:56 AM · Restricted Project, Restricted Project

Jan 18 2023

ellis added a comment to D141579: [PGO] incorrect classof in InstrProfIncrementInst.

Thanks for adding a test, couple questions below, but generally lgtm.

Ah, I see the dyn_cast you are talking about is here. I think this is only a problem if InstrProfIncrementInstStep is the only InstrProf instruction in a function and it has an llvm.instrprof.value.profile instruction, which explains why we didn't catch this bug for so long. In that case, the later call to getOrCreateRegionCounters() will be skipped and, according to the comment, this is required for value profiling. Is that what you observed? If so it should be easy to add a small test case, probably similar to llvm/test/Instrumentation/InstrProfiling/early-exit.ll, but this could be followed up in another patch. Thanks for fixing!

Yes. But even if InstrProfIncrementInstStep is the only InstrProf instruction in a function, getOrCreateRegionCounters will still be called through InstrProfiling::run -> lowerIntrinsics -> lowerIncrement -> getCounterAddress -> getOrCreateRegionCounters. So, to reproduce this problem, we should satisfy two conditions:

  1. InstrProfIncrementInstStep is the only InstrProf instruction in a function and it has InstrProfValueProfileInst instruction

I assume this should be "is the only InstrProfIncrement instruction" (since there is another InstrProf instruction in the function (InstrProfValueProfileInst)?

  1. InstrProfValueProfileInst must be in front of InstrProfIncrementInstStep instruction

PGO will always generate an InstrProfIncrementInst instruction in the front of a function so normally, this bug cannot happen

Out of curiosity, how was this encountered?

  1. Yes, you are right. It should be "InstrProfIncrementInstStep is the only InstrProfIncrement instruction in a function and it has InstrProfValueProfileInst instruction"
  2. I have been trying to implement function reordering in LLVM PGO which will modify current PGO code, this cause a bug in my code.
Jan 18 2023, 4:29 PM · Restricted Project, Restricted Project

Jan 12 2023

ellis added a comment to D141579: [PGO] incorrect classof in InstrProfIncrementInst.

Ah, I see the dyn_cast you are talking about is here. I think this is only a problem if InstrProfIncrementInstStep is the only InstrProf instruction in a function and it has an llvm.instrprof.value.profile instruction, which explains why we didn't catch this bug for so long. In that case, the later call to getOrCreateRegionCounters() will be skipped and, according to the comment, this is required for value profiling. Is that what you observed? If so it should be easy to add a small test case, probably similar to llvm/test/Instrumentation/InstrProfiling/early-exit.ll, but this could be followed up in another patch. Thanks for fixing!

Why not include the suggested test in this patch?

Jan 12 2023, 9:56 AM · Restricted Project, Restricted Project
ellis accepted D141579: [PGO] incorrect classof in InstrProfIncrementInst.

Ah, I see the dyn_cast you are talking about is here. I think this is only a problem if InstrProfIncrementInstStep is the only InstrProf instruction in a function and it has an llvm.instrprof.value.profile instruction, which explains why we didn't catch this bug for so long. In that case, the later call to getOrCreateRegionCounters() will be skipped and, according to the comment, this is required for value profiling. Is that what you observed? If so it should be easy to add a small test case, probably similar to llvm/test/Instrumentation/InstrProfiling/early-exit.ll, but this could be followed up in another patch. Thanks for fixing!

Jan 12 2023, 9:41 AM · Restricted Project, Restricted Project

Dec 12 2022

ellis added inline comments to D135929: [profile] Add binary ids into indexed profiles.
Dec 12 2022, 10:11 AM · Restricted Project, Restricted Project, Restricted Project
ellis committed rG769c7ad2b1b9: [InstrProf] Fix bug when merging empty profile with multiple threads (authored by ellis).
[InstrProf] Fix bug when merging empty profile with multiple threads
Dec 12 2022, 9:23 AM · Restricted Project, Restricted Project
ellis closed D139755: [InstrProf] Fix bug when merging empty profile with multiple threads.
Dec 12 2022, 9:23 AM · Restricted Project, Restricted Project
ellis updated the diff for D139755: [InstrProf] Fix bug when merging empty profile with multiple threads.

Rebase.

Dec 12 2022, 9:23 AM · Restricted Project, Restricted Project

Dec 9 2022

ellis published D139755: [InstrProf] Fix bug when merging empty profile with multiple threads for review.
Dec 9 2022, 5:20 PM · Restricted Project, Restricted Project

Nov 30 2022

ellis accepted D138969: [compiler-rt] Fix check-profile dependencies.
Nov 30 2022, 9:09 AM · Restricted Project, Restricted Project

Nov 29 2022

ellis added a comment to D138846: MC/DC in LLVM Source-Based Code Coverage: LLVM back-end and compiler-rt.

Hi @ellis, thank you for looking at this deeper! I'll update based on your comments below, but I want to respond to your primary question first:

Please correct me if I'm wrong, but my understanding is that we have a single bitvector per expression (or function?) to track coverage. And that these bitvectors are at most 64 bits long. Is the number of these bitvectors per function known at compile time? I think yes because you are allocating the IPSK_bitmap section at compile time.

Yes, a bitvector (or bitmap) is allocated per expression for each function, and this is known at compile time. Each one can be at minimum 8 bits and 64bits max, although the max value could be extended in the future.

If this is the case then I would suggest extending the IPSK_cnts rather than creating a new IPSK_bitmap section. There is lots of logic to track the location of the IPSK_cnts and correlate its values to the correct functions (this is the main feature of Debug Info Correlation). Instead, we could allocate more data for function counters and say the last N bytes are for the MC/DC bitvectors. The lowered code would know where to write the data because they are given the address and the raw profile readers would know when to expect this data at the end of the counters because they know N.

I totally understand the desire to avoid modifying the raw header and the additional complexity, and so I'm glad you honed in on it so we could explore how best to simplify this.

I did consider extending IPSK_cnts, and what you describe ought to work functionally just fine, but the reason I opted not to do that was because of considerations for efficient memory utilization at link time (I expect MC/DC will be getting the most utilization for embedded, where this is most important). With the alignment of IPSK_cnts being driven by the size of the counters (up to 64bits, as you know, and for good reason), even 1 byte of additional MC/DC data at the end of a function's IPSK_cnts would yield large gaps during linker aggregation of these sections across functions due to alignment constraints. With one of the goals behind MC/DC being to avoid unnecessary memory consumption, it didn't make sense philosophically to have anything related to memory efficient bitmap bits be impacted by the alignment and size of the counters, which, at least conceptually, is an altogether different thing. Keeping the bitmaps in a separate, 1-byte aligned section IPSK_bits yields the most granularity and flexibility. I tried to abstract a lot of the overlap for how the sections are created as much as possible.

With respect to modifying the raw header, I agree there is reluctance to changing this, and if there is a way to derive the needed information without having to do this, I would definitely consider it.

Nov 29 2022, 3:13 PM · Restricted Project, Restricted Project
ellis added a comment to D138846: MC/DC in LLVM Source-Based Code Coverage: LLVM back-end and compiler-rt.

Please correct me if I'm wrong, but my understanding is that we have a single bitvector per expression (or function?) to track coverage. And that these bitvectors are at most 64 bits long. Is the number of these bitvectors per function known at compile time? I think yes because you are allocating the IPSK_bitmap section at compile time.

Nov 29 2022, 12:49 PM · Restricted Project, Restricted Project

Nov 14 2022

ellis accepted D135929: [profile] Add binary ids into indexed profiles.

Seems good to me! I just have some minor nits.

Nov 14 2022, 2:24 PM · Restricted Project, Restricted Project, Restricted Project
ellis added inline comments to D124490: [InstrProf] Minimal Block Coverage.
Nov 14 2022, 12:00 PM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Rebase.

Nov 14 2022, 11:59 AM · Restricted Project, Restricted Project, Restricted Project

Nov 11 2022

ellis added inline comments to D136702: [llvm-cov] Look up object files using debuginfod.
Nov 11 2022, 11:13 AM · Restricted Project, Restricted Project, Restricted Project

Nov 4 2022

ellis accepted D136211: [llvm-profdata] Check for all duplicate entries in MemOpSize table.

Seems fine to me!

Nov 4 2022, 4:33 PM · Restricted Project, Restricted Project

Oct 26 2022

ellis added inline comments to D135929: [profile] Add binary ids into indexed profiles.
Oct 26 2022, 11:50 AM · Restricted Project, Restricted Project, Restricted Project

Oct 25 2022

ellis added inline comments to D136211: [llvm-profdata] Check for all duplicate entries in MemOpSize table.
Oct 25 2022, 3:52 PM · Restricted Project, Restricted Project
ellis added inline comments to D136211: [llvm-profdata] Check for all duplicate entries in MemOpSize table.
Oct 25 2022, 1:50 PM · Restricted Project, Restricted Project

Oct 24 2022

ellis added inline comments to D136385: Add support for MC/DC in LLVM Source-Based Code Coverage.
Oct 24 2022, 4:48 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Oct 17 2022

ellis added a comment to D124490: [InstrProf] Minimal Block Coverage.

Friendly ping :)

Oct 17 2022, 9:54 AM · Restricted Project, Restricted Project, Restricted Project
ellis committed rG970e1ea01aa0: [clang] Fix crash with -funique-internal-linkage-names (authored by ellis).
[clang] Fix crash with -funique-internal-linkage-names
Oct 17 2022, 8:57 AM · Restricted Project, Restricted Project
ellis closed D135926: [clang] Fix crash with -funique-internal-linkage-names.
Oct 17 2022, 8:57 AM · Restricted Project, Restricted Project

Oct 13 2022

ellis published D135926: [clang] Fix crash with -funique-internal-linkage-names for review.
Oct 13 2022, 4:48 PM · Restricted Project, Restricted Project

Oct 10 2022

ellis added a comment to D124490: [InstrProf] Minimal Block Coverage.

Can we get another review of this? CC @MaskRay

Oct 10 2022, 5:59 PM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Rebase and add comment discussing the runtime.

Oct 10 2022, 5:56 PM · Restricted Project, Restricted Project, Restricted Project

Oct 7 2022

ellis committed rGea607d033aff: [llvm-profdata] Rename show flag to --show-format (authored by ellis).
[llvm-profdata] Rename show flag to --show-format
Oct 7 2022, 11:35 AM · Restricted Project, Restricted Project, Restricted Project
ellis closed D135467: [llvm-profdata] Rename show flag to --show-format.
Oct 7 2022, 11:35 AM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D135467: [llvm-profdata] Rename show flag to --show-format.

Rename OFormat to SFormat.

Oct 7 2022, 11:34 AM · Restricted Project, Restricted Project, Restricted Project
ellis added reviewers for D135467: [llvm-profdata] Rename show flag to --show-format: MaskRay, phosek, wenlei.
Oct 7 2022, 10:35 AM · Restricted Project, Restricted Project, Restricted Project
ellis added inline comments to D135127: [llvm-profdata] Add --output-format option.
Oct 7 2022, 10:34 AM · Restricted Project, Restricted Project
ellis requested review of D135467: [llvm-profdata] Rename show flag to --show-format.
Oct 7 2022, 10:33 AM · Restricted Project, Restricted Project, Restricted Project
ellis committed rG70fb7bb561db: [InstrProf][llvm-profdata] Dump profile correlation data as YAML (authored by ellis).
[InstrProf][llvm-profdata] Dump profile correlation data as YAML
Oct 7 2022, 9:47 AM · Restricted Project, Restricted Project, Restricted Project
ellis committed rG901f555ecade: [llvm-profdata] Add --output-format option (authored by ellis).
[llvm-profdata] Add --output-format option
Oct 7 2022, 9:47 AM · Restricted Project, Restricted Project
ellis closed D134770: [InstrProf][llvm-profdata] Dump profile correlation data as YAML.
Oct 7 2022, 9:47 AM · Restricted Project, Restricted Project, Restricted Project
ellis closed D135127: [llvm-profdata] Add --output-format option.
Oct 7 2022, 9:47 AM · Restricted Project, Restricted Project
ellis updated the diff for D135127: [llvm-profdata] Add --output-format option.

Sorry, forgot to run clang-format

Oct 7 2022, 9:46 AM · Restricted Project, Restricted Project
ellis updated the diff for D134770: [InstrProf][llvm-profdata] Dump profile correlation data as YAML.

Rebase

Oct 7 2022, 9:45 AM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D135127: [llvm-profdata] Add --output-format option.

Rebase

Oct 7 2022, 9:45 AM · Restricted Project, Restricted Project

Oct 6 2022

ellis committed rGe09c958dcccf: [llvm-profdata] Add some missing options to docs (authored by ellis).
[llvm-profdata] Add some missing options to docs
Oct 6 2022, 3:20 PM · Restricted Project, Restricted Project
ellis closed D135383: [llvm-profdata] Add some missing options to docs.
Oct 6 2022, 3:20 PM · Restricted Project, Restricted Project
ellis added inline comments to D132077: [llvm-reduce] Add pass that reduces DebugInfo metadata.
Oct 6 2022, 2:18 PM · Restricted Project, Restricted Project
ellis added a reverting change for rG69549de86555: [llvm-reduce] Remove debug metadata elements: rGaa065c016bd9: Revert "[llvm-reduce] Remove debug metadata elements".
Oct 6 2022, 1:40 PM · Restricted Project, Restricted Project
ellis committed rGaa065c016bd9: Revert "[llvm-reduce] Remove debug metadata elements" (authored by ellis).
Revert "[llvm-reduce] Remove debug metadata elements"
Oct 6 2022, 1:40 PM · Restricted Project, Restricted Project
ellis added a reverting change for D135237: [llvm-reduce] Remove debug metadata elements: rGaa065c016bd9: Revert "[llvm-reduce] Remove debug metadata elements".
Oct 6 2022, 1:40 PM · Restricted Project, Restricted Project
ellis closed D135395: Revert "[llvm-reduce] Remove debug metadata elements".
Oct 6 2022, 1:40 PM · Restricted Project, Restricted Project
ellis added a reviewer for D135395: Revert "[llvm-reduce] Remove debug metadata elements": aeubanks.
Oct 6 2022, 1:28 PM · Restricted Project, Restricted Project
ellis requested review of D135395: Revert "[llvm-reduce] Remove debug metadata elements".
Oct 6 2022, 1:27 PM · Restricted Project, Restricted Project
ellis added a reverting change for rG69549de86555: [llvm-reduce] Remove debug metadata elements: D135395: Revert "[llvm-reduce] Remove debug metadata elements".
Oct 6 2022, 1:27 PM · Restricted Project, Restricted Project
ellis added a reverting change for D135237: [llvm-reduce] Remove debug metadata elements: D135395: Revert "[llvm-reduce] Remove debug metadata elements".
Oct 6 2022, 1:27 PM · Restricted Project, Restricted Project
ellis added a comment to D135237: [llvm-reduce] Remove debug metadata elements.

sorry to be late to reviewing this, but I think this is overly aggressive. I see verifier failures like scope must have two or three operands after this patch.

https://reviews.llvm.org/D132077 was in the process of being reviewed and basically does this but more targeted with a specific focus on not creating verifier failures (since that's the direction we'd like to take llvm-reduce, not producing verifier failures since that slows down reduction a lot and dumps a lot of output). could we revert this and use the other patch?

Oct 6 2022, 1:06 PM · Restricted Project, Restricted Project
ellis added reviewers for D135383: [llvm-profdata] Add some missing options to docs: phosek, MaskRay, davidxl.
Oct 6 2022, 11:25 AM · Restricted Project, Restricted Project
ellis requested review of D135383: [llvm-profdata] Add some missing options to docs.
Oct 6 2022, 11:25 AM · Restricted Project, Restricted Project
ellis added a comment to D135127: [llvm-profdata] Add --output-format option.

I decided to just stick with --output-format=<json|yaml> and removed changes to the --text option to make things cleaner.

Oct 6 2022, 11:18 AM · Restricted Project, Restricted Project
ellis updated the diff for D134770: [InstrProf][llvm-profdata] Dump profile correlation data as YAML.

Rebase.

Oct 6 2022, 11:16 AM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D135127: [llvm-profdata] Add --output-format option.

Don't add text and text-encoding to output-format type.

Oct 6 2022, 11:15 AM · Restricted Project, Restricted Project
ellis committed rG69549de86555: [llvm-reduce] Remove debug metadata elements (authored by ellis).
[llvm-reduce] Remove debug metadata elements
Oct 6 2022, 9:29 AM · Restricted Project, Restricted Project
ellis closed D135237: [llvm-reduce] Remove debug metadata elements.
Oct 6 2022, 9:29 AM · Restricted Project, Restricted Project

Oct 5 2022

ellis updated the summary of D135237: [llvm-reduce] Remove debug metadata elements.
Oct 5 2022, 1:11 PM · Restricted Project, Restricted Project
ellis updated the diff for D135237: [llvm-reduce] Remove debug metadata elements.

Remove extra {{ }} in tests

Oct 5 2022, 12:56 PM · Restricted Project, Restricted Project
ellis added inline comments to D135237: [llvm-reduce] Remove debug metadata elements.
Oct 5 2022, 12:56 PM · Restricted Project, Restricted Project
ellis committed rG7ca3fd72c724: [Dwarf] Remove unnecessary module flags from test (authored by ellis).
[Dwarf] Remove unnecessary module flags from test
Oct 5 2022, 11:19 AM · Restricted Project, Restricted Project
ellis closed D135294: [Dwarf] Remove unnecessary module flags from test.
Oct 5 2022, 11:18 AM · Restricted Project, Restricted Project
ellis committed rG549773f9e98f: [Dwarf] Reference the correct CU when inlining (authored by ellis).
[Dwarf] Reference the correct CU when inlining
Oct 5 2022, 9:19 AM · Restricted Project, Restricted Project
ellis closed D135114: [Dwarf] Reference the correct CU when inlining.
Oct 5 2022, 9:19 AM · Restricted Project, Restricted Project
ellis updated the diff for D135114: [Dwarf] Reference the correct CU when inlining.

fix whitespace

Oct 5 2022, 9:18 AM · Restricted Project, Restricted Project
ellis added a comment to D135127: [llvm-profdata] Add --output-format option.
  1. what is the use case of splitting text and text-encoding?
Oct 5 2022, 9:14 AM · Restricted Project, Restricted Project

Oct 4 2022

ellis published D135237: [llvm-reduce] Remove debug metadata elements for review.
Oct 4 2022, 9:40 PM · Restricted Project, Restricted Project
ellis added inline comments to D135114: [Dwarf] Reference the correct CU when inlining.
Oct 4 2022, 6:58 PM · Restricted Project, Restricted Project
ellis updated the diff for D135114: [Dwarf] Reference the correct CU when inlining.

Move test to DebugInfo/Generic and add checks to verify dwarfdump output.

Oct 4 2022, 1:51 PM · Restricted Project, Restricted Project

Oct 3 2022

ellis published D135127: [llvm-profdata] Add --output-format option for review.
Oct 3 2022, 9:58 PM · Restricted Project, Restricted Project
ellis updated the diff for D134770: [InstrProf][llvm-profdata] Dump profile correlation data as YAML.

Add the "Probes" key to Yaml output so that we can add more keys in the future. Also add D135127 as a parent diff to use the --output-format=yaml option.

Oct 3 2022, 9:58 PM · Restricted Project, Restricted Project, Restricted Project
ellis added a comment to D134770: [InstrProf][llvm-profdata] Dump profile correlation data as YAML.

I like the idea of --output-format=yaml since it easily allows us to preserve the original behavior. I'll add this in another diff and update this.

Oct 3 2022, 5:59 PM · Restricted Project, Restricted Project, Restricted Project
ellis published D135114: [Dwarf] Reference the correct CU when inlining for review.
Oct 3 2022, 3:51 PM · Restricted Project, Restricted Project

Sep 29 2022

ellis added a reviewer for D134770: [InstrProf][llvm-profdata] Dump profile correlation data as YAML: wenlei.
Sep 29 2022, 1:26 PM · Restricted Project, Restricted Project, Restricted Project

Sep 27 2022

ellis published D134770: [InstrProf][llvm-profdata] Dump profile correlation data as YAML for review.
Sep 27 2022, 3:47 PM · Restricted Project, Restricted Project, Restricted Project

Sep 13 2022

ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Add link to paper

Sep 13 2022, 4:13 PM · Restricted Project, Restricted Project, Restricted Project
ellis updated the summary of D124490: [InstrProf] Minimal Block Coverage.
Sep 13 2022, 4:10 PM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Fix warning with Optional<BlockCoverageInference>

Sep 13 2022, 3:58 PM · Restricted Project, Restricted Project, Restricted Project
ellis updated the diff for D124490: [InstrProf] Minimal Block Coverage.

Rebase

Sep 13 2022, 3:22 PM · Restricted Project, Restricted Project, Restricted Project
ellis added inline comments to D133747: Address feedback in https://reviews.llvm.org/D133637.
Sep 13 2022, 12:09 PM · Restricted Project, Restricted Project

Aug 29 2022

ellis added inline comments to D132094: [profile] Create only prof header when no counters.
Aug 29 2022, 3:20 PM · Restricted Project, Restricted Project, Restricted Project

Aug 27 2022

ellis added inline comments to D132094: [profile] Create only prof header when no counters.
Aug 27 2022, 11:41 AM · Restricted Project, Restricted Project, Restricted Project
ellis accepted D132094: [profile] Create only prof header when no counters.

When using the -fprofile-function-groups option we could hit the case where one of the groups has no profiled functions. In that case it would be more surprising to not find a raw profile, rather than an empty raw profile. If we do go with option 1, maybe we could emit a warning explaining why no profile was emitted. Or if we go with option 2, maybe a warning would also be good to alert the user that it's an empty profile.

What kind of warning do you have in mind @ellis? Are you suggesting to put some text like Empty Profile when we read a profile via llvm-profdata show (which happens to contain only a header)?

Aug 27 2022, 11:39 AM · Restricted Project, Restricted Project, Restricted Project

Aug 24 2022

ellis abandoned D132570: [InstrProf][LWI] Allow entries with duplicate probe addresses.

Oops, this actually breaks a test and I need to think about this more. Closing.

Aug 24 2022, 11:13 AM · Restricted Project, Restricted Project
ellis published D132570: [InstrProf][LWI] Allow entries with duplicate probe addresses for review.
Aug 24 2022, 9:46 AM · Restricted Project, Restricted Project