Page MenuHomePhabricator

paulkirth (Paul Kirth)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 11 2018, 11:58 AM (53 w, 5 d)

Recent Activity

Mon, Sep 16

paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Mon, Sep 16, 9:51 PM · Restricted Project, Restricted Project
paulkirth updated the summary of D67648: Move DK_Misexpect for compatability with getNextAvailablePluginDiagnosticKind.
Mon, Sep 16, 9:46 PM · Restricted Project
paulkirth created D67648: Move DK_Misexpect for compatability with getNextAvailablePluginDiagnosticKind.
Mon, Sep 16, 9:46 PM · Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Mon, Sep 16, 9:34 PM · Restricted Project, Restricted Project

Sun, Sep 15

paulkirth added a comment to D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data.

Re concurrency - you had standalone LLVMContext for each thread, right?

Sun, Sep 15, 3:15 PM · Restricted Project, Restricted Project
paulkirth added a comment to D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data.

Layering feels weird here.
Can this be implemented as/limited to just a
run-clang-misexpect.py wrapper over clang itself?
That would be best IMHO.

Sun, Sep 15, 1:20 PM · Restricted Project, Restricted Project

Sat, Sep 14

paulkirth updated the diff for D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data.

Addresses problems running the standalone tool w/ the libTooling executors.

Sat, Sep 14, 8:48 PM · Restricted Project, Restricted Project

Wed, Sep 11

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Revert mismerge when landing.

Wed, Sep 11, 9:06 AM · Restricted Project, Restricted Project
paulkirth reopened D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Wed, Sep 11, 9:05 AM · Restricted Project, Restricted Project
paulkirth added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Reverted in r371598.

Another concern that I have is cross-compilation. LLVM's ADT is not set up to be cross-compiled like the rest of compiler-rt is.

Uhm, i have a better question still - why xxhash is even there? it's not used in the diff, and was not reviewed, it just magically appeared in the last update of the patch:
https://reviews.llvm.org/D66324?vs=219617&id=219645

Wed, Sep 11, 9:04 AM · Restricted Project, Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Wed, Sep 11, 9:03 AM · Restricted Project, Restricted Project

Tue, Sep 10

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Add a new profdata file to use w/ misexpect-nonconst-switch.c

Tue, Sep 10, 3:33 PM · Restricted Project, Restricted Project
paulkirth reopened D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Tue, Sep 10, 3:24 PM · Restricted Project, Restricted Project

Mon, Sep 9

paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Mon, Sep 9, 12:16 PM · Restricted Project, Restricted Project

Sat, Sep 7

paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Sat, Sep 7, 11:39 AM · Restricted Project, Restricted Project
paulkirth updated the summary of D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Sat, Sep 7, 11:38 AM · Restricted Project, Restricted Project

Fri, Sep 6

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Improve diagnostic output with profile counts

Fri, Sep 6, 8:32 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data.

Remove commented out code

Fri, Sep 6, 2:03 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data.

Address code review

Fri, Sep 6, 2:02 PM · Restricted Project, Restricted Project

Thu, Sep 5

paulkirth added a child revision for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM: D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data.
Thu, Sep 5, 8:11 PM · Restricted Project, Restricted Project
paulkirth added a parent revision for D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data: D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Thu, Sep 5, 8:11 PM · Restricted Project, Restricted Project
paulkirth created D67253: clang-misexpect: a standalone tool for verifying the use of __builtin_expect with PGO data.
Thu, Sep 5, 8:11 PM · Restricted Project, Restricted Project

Fri, Aug 30

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Add clang and LLVM tests for __builtin_unpredictable

Fri, Aug 30, 7:38 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Add inline checks for misexpect tags to LowerExpectIntrinstic test

Fri, Aug 30, 7:10 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Update LowerExpectIntrinsic/basic.ll to generate misexpect metadata for a switch

Fri, Aug 30, 7:03 PM · Restricted Project, Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Fri, Aug 30, 6:57 PM · Restricted Project, Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Fri, Aug 30, 6:43 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Fix comment for misexpect option

Fri, Aug 30, 2:31 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Remove extra include from CodeGenFunction.cpp

Fri, Aug 30, 2:25 PM · Restricted Project, Restricted Project
paulkirth added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Trying to start reviewing this.
The llvm side of the patch is self contained; clang patch should be split into a dependent review.

Fri, Aug 30, 2:20 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Address Review items

Fri, Aug 30, 2:05 PM · Restricted Project, Restricted Project
paulkirth added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Thanks for the review.

Fri, Aug 30, 10:40 AM · Restricted Project, Restricted Project

Thu, Aug 29

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Actually address nits

Thu, Aug 29, 8:12 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Address nits

Thu, Aug 29, 8:10 PM · Restricted Project, Restricted Project
paulkirth added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

@leonardchan can you revise your review against the latest revision? It looks to me as though you might have reviewed one of the first diffs instead of what is the latest code. For example the files in clang-tools have not been part of this revision for some time. Also when I try to respond to the comment, it appears against the very first diff. I'm happy to address any of the nits that remain, but want to make sure that what you reviewed and given approval for is what will be submitted.

Thu, Aug 29, 7:55 PM · Restricted Project, Restricted Project

Wed, Aug 28

paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Wed, Aug 28, 6:10 PM · Restricted Project, Restricted Project

Tue, Aug 27

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Add comment to clarify choice of operands and reasoning about profiling metadata

Tue, Aug 27, 4:37 PM · Restricted Project, Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Tue, Aug 27, 3:34 PM · Restricted Project, Restricted Project
paulkirth abandoned D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

This is being abandoned in favor of D66324, which reimplements this logic completely in the LLVM backend.

Tue, Aug 27, 2:35 PM · Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Tue, Aug 27, 2:35 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Change check for minimum number of metadata operands.

Tue, Aug 27, 2:27 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Remove namespace qualifier & insert check for number of arguments

Tue, Aug 27, 2:21 PM · Restricted Project, Restricted Project
paulkirth added a comment to D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Please can you clarify hat's the current layout of these patches?
Is this patch required, or is it superseded by D66324 (and thus should be abandoned)?
I'd like to begin reviewing, but i don't understand where to start.

Tue, Aug 27, 1:58 PM · Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Tue, Aug 27, 1:07 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Removes unused constructor, reformat code, and remove braces

Tue, Aug 27, 1:05 PM · Restricted Project, Restricted Project

Mon, Aug 26

paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Mon, Aug 26, 5:49 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Revert to use of auto when extracting metadata

Mon, Aug 26, 5:47 PM · Restricted Project, Restricted Project
paulkirth added inline comments to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Mon, Aug 26, 5:32 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Address Code Review

Mon, Aug 26, 5:29 PM · Restricted Project, Restricted Project
paulkirth added a reviewer for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM: nickdesaulniers.

Add Nick Desaulniers as an additional reviewer

Mon, Aug 26, 2:52 PM · Restricted Project, Restricted Project

Aug 20 2019

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Update LLVM based implementation

Aug 20 2019, 3:53 PM · Restricted Project, Restricted Project

Aug 19 2019

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Fix missing context in prior diff

Aug 19 2019, 10:08 AM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
  • Update CodeGenOptions to remove -fmisexpect
  • Access the LLVMContext directly
  • Add -line-tables-only for more accurate diagnostics
Aug 19 2019, 10:08 AM · Restricted Project, Restricted Project

Aug 16 2019

paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Remove frontend components of clang-misexpect in favor of backend implementations

Aug 16 2019, 6:54 PM · Restricted Project, Restricted Project
paulkirth added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

So it is possible to handle this completely in the backed, but the diagnostic output is not fantastic when using clang based instrumentation. In particular, we would need to emit the diagnostic in LowerExpectIntrisic.cpp by checking if the branch weight metadata already exists, and processing it there before it is overwritten. For some reason emitting the diagnostic at that point will not also emit the helpful source listing if there is a macro, even though a FullSourceLoc is available. This isn't an issue for either the handling in SampleProfile.cpp or in PGOInstrumentation.cpp.

Aug 16 2019, 12:59 PM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Remove reference to clang-misexpect from CMakeLists.txt

Aug 16 2019, 11:35 AM · Restricted Project, Restricted Project
paulkirth updated the diff for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

Removes standalone clang-misexpect from revision

Aug 16 2019, 11:23 AM · Restricted Project, Restricted Project
paulkirth added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

This is marked as child revision of D65300 but it seems like they both add
the same logic, just into different components, D65300 to clang, this to llvm.
Is this duplication or are the diffs concurrent?

Aug 16 2019, 10:17 AM · Restricted Project, Restricted Project

Aug 15 2019

paulkirth added a child revision for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings: D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Aug 15 2019, 5:07 PM · Restricted Project
paulkirth added a parent revision for D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM: D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.
Aug 15 2019, 5:07 PM · Restricted Project, Restricted Project
paulkirth created D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.
Aug 15 2019, 5:07 PM · Restricted Project, Restricted Project

Aug 6 2019

paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Use existing LLVM code for mapping case literals to their case arms.

Aug 6 2019, 2:55 PM · Restricted Project

Aug 5 2019

paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Update threshold values to match those assigned when lowering __builtin_expect intrinsic.

Aug 5 2019, 9:30 AM · Restricted Project

Aug 2 2019

paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Update documentation and fix typos

Aug 2 2019, 7:42 PM · Restricted Project
paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Address feedback from review

Aug 2 2019, 7:19 PM · Restricted Project
paulkirth added inline comments to D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.
Aug 2 2019, 11:30 AM · Restricted Project
paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Fix typo in comments

Aug 2 2019, 9:18 AM · Restricted Project

Jul 30 2019

paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Update diff to have proper context on Phabricator

Jul 30 2019, 7:17 PM · Restricted Project

Jul 25 2019

paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Add missing test for switch statements when the expected value is not a compile time constant.

Jul 25 2019, 4:21 PM · Restricted Project
paulkirth added a comment to D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Nice work!

Jul 25 2019, 3:49 PM · Restricted Project
paulkirth updated the diff for D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.

Refactors some debug code to be more centralized and cleans up some comments.

Jul 25 2019, 3:00 PM · Restricted Project
paulkirth created D65300: [clang] [CodeGen] clang-misexpect prototype for compiler warnings.
Jul 25 2019, 2:38 PM · Restricted Project

Sep 13 2018

paulkirth created D52068: Syringe clang support.
Sep 13 2018, 7:57 PM
paulkirth updated the diff for D51962: Initial Syringe Prototype.

I've added support to Syringe for dispatching injected behaviors using direct calls, which follows the advice of Kostya Serebryany on CFE-dev http://lists.llvm.org/pipermail/cfe-dev/2018-September/059312.html

Sep 13 2018, 3:49 PM

Sep 11 2018

paulkirth created D51962: Initial Syringe Prototype.
Sep 11 2018, 5:14 PM