Page MenuHomePhabricator

void (Bill Wendling)
Mind Taker

Projects

User does not belong to any projects.

User Details

User Since
Dec 3 2012, 10:22 AM (547 w, 2 d)

Sent here from the planet Zvddw, Bill's mission is to conquer the world by staying at home and occasionally (read: always) playing poker.

In his spare time, he works on LLVM-related things.

Recent Activity

Mon, May 22

void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Add bounds checking for the "ArrayBounds" saniziter kind.

Mon, May 22, 5:31 PM · Restricted Project, Restricted Project

Thu, May 11

void updated the summary of D148381: [WIP][Clang] Add element_count attribute.
Thu, May 11, 12:27 PM · Restricted Project, Restricted Project
void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Use strings for the attribute argument.

Thu, May 11, 12:16 PM · Restricted Project, Restricted Project

Thu, May 4

void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Use "Expected" for the SourceRange imports.

Thu, May 4, 12:33 PM · Restricted Project, Restricted Project

May 1 2023

void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Improve error message to use the unknown field's name.

May 1 2023, 1:12 PM · Restricted Project, Restricted Project

Apr 28 2023

void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Change sanitizer scope because instructions may be created.

Apr 28 2023, 6:02 PM · Restricted Project, Restricted Project
void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Fix the way the source ranges are imported via the ASTImporter.
Do other minor fixes according to feedback.

Apr 28 2023, 12:14 PM · Restricted Project, Restricted Project
void added inline comments to D148381: [WIP][Clang] Add element_count attribute.
Apr 28 2023, 12:14 PM · Restricted Project, Restricted Project

Apr 27 2023

void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Use the new memory location.

Apr 27 2023, 3:34 PM · Restricted Project, Restricted Project
void added a comment to D148381: [WIP][Clang] Add element_count attribute.

This is a precursor to specifying the field with the designated initializer syntax. Therefore, it may be a bit cumbersome.

Apr 27 2023, 2:01 PM · Restricted Project, Restricted Project
void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Fix ICE when the FD isn't found.

Apr 27 2023, 1:50 PM · Restricted Project, Restricted Project
void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Add the ability to specify a "path" to the element count if it resides within a sub-structure.

Apr 27 2023, 1:45 PM · Restricted Project, Restricted Project

Apr 18 2023

void added a comment to D146169: Non-debuginfo JITLink perf jitdump support.

I think this change is causing build failures. Could you take a look?

Apr 18 2023, 2:34 PM · Restricted Project, Restricted Project
void committed rGb51a03e1bbe7: [Clang][NFC] Rename methods/vars to reflect their real usage (authored by void).
[Clang][NFC] Rename methods/vars to reflect their real usage
Apr 18 2023, 1:48 PM · Restricted Project, Restricted Project, Restricted Project
void closed D147743: [Clang][NFC] Rename methods/vars to reflect their real usage.
Apr 18 2023, 1:48 PM · Restricted Project, Restricted Project, Restricted Project
void updated the diff for D147743: [Clang][NFC] Rename methods/vars to reflect their real usage.

Add comment.

Apr 18 2023, 1:47 PM · Restricted Project, Restricted Project, Restricted Project

Apr 17 2023

void updated the diff for D148381: [WIP][Clang] Add element_count attribute.

Fix failing testcase.

Apr 17 2023, 4:31 PM · Restricted Project, Restricted Project
void added inline comments to D148381: [WIP][Clang] Add element_count attribute.
Apr 17 2023, 2:34 PM · Restricted Project, Restricted Project
void added a comment to D148381: [WIP][Clang] Add element_count attribute.

Cool!

How about some codegen tests?

I'll add those to the next iteration. :-)

Apr 17 2023, 2:14 PM · Restricted Project, Restricted Project
void updated the diff for D147743: [Clang][NFC] Rename methods/vars to reflect their real usage.

Reformat.

Apr 17 2023, 2:02 PM · Restricted Project, Restricted Project, Restricted Project
void added a comment to D147743: [Clang][NFC] Rename methods/vars to reflect their real usage.

Friendly ping.

Apr 17 2023, 2:01 PM · Restricted Project, Restricted Project, Restricted Project

Apr 14 2023

void added a comment to D148381: [WIP][Clang] Add element_count attribute.

Note: This is a work-in-progress, so there's no need for a formal review, though any suggestions will definitely be appreciated. :-)

Apr 14 2023, 3:56 PM · Restricted Project, Restricted Project
void requested review of D148381: [WIP][Clang] Add element_count attribute.
Apr 14 2023, 2:27 PM · Restricted Project, Restricted Project

Apr 7 2023

void updated the diff for D147743: [Clang][NFC] Rename methods/vars to reflect their real usage.

Fix compilation issue.

Apr 7 2023, 12:33 PM · Restricted Project, Restricted Project, Restricted Project
void added a comment to D147580: [Clang][NFC] Refactor "Designators" to be more similar.

I guess I should have waited till I saw: https://reviews.llvm.org/D147673

Apr 7 2023, 11:43 AM · Restricted Project, Restricted Project
void committed rG2cbf5127d585: [Clang] Improve designated inits diagnostic location (authored by void).
[Clang] Improve designated inits diagnostic location
Apr 7 2023, 11:37 AM · Restricted Project, Restricted Project
void closed D147673: [Clang] Improve designated inits diagnostic location.
Apr 7 2023, 11:37 AM · Restricted Project, Restricted Project
void added inline comments to D147673: [Clang] Improve designated inits diagnostic location.
Apr 7 2023, 11:36 AM · Restricted Project, Restricted Project

Apr 6 2023

void requested review of D147743: [Clang][NFC] Rename methods/vars to reflect their real usage.
Apr 6 2023, 2:36 PM · Restricted Project, Restricted Project, Restricted Project
void added reviewers for D147673: [Clang] Improve designated inits diagnostic location: rjmccall, aaron.ballman, dblaikie, shafik.
Apr 6 2023, 2:33 PM · Restricted Project, Restricted Project
void abandoned D92156: [PowerPC] Add support for "tlbiel" with two arguments.
Apr 6 2023, 2:32 PM · Restricted Project, Restricted Project
void abandoned D70929: Don't extract code containing an indirect jump from a callbr.
Apr 6 2023, 2:31 PM · Restricted Project, Restricted Project
void abandoned D120094: [CallingConv] Generate isCCArgumentReg() predicate via tablegen.
Apr 6 2023, 2:31 PM · Restricted Project, Restricted Project
void abandoned D126083: [AArch64] Use proper instruction mnemonics for FPRs.
Apr 6 2023, 2:30 PM · Restricted Project, Restricted Project
void abandoned D120942: [PowerPC] Add support for the canonical version of tlbie.
Apr 6 2023, 2:30 PM · Restricted Project, Restricted Project
void abandoned D88813: [CodeGen] Postprocess PHI nodes for callbr.
Apr 6 2023, 2:29 PM · Restricted Project, Restricted Project
void updated the diff for D147673: [Clang] Improve designated inits diagnostic location.

Remove extraneous space.

Apr 6 2023, 2:27 PM · Restricted Project, Restricted Project

Apr 5 2023

void requested review of D147673: [Clang] Improve designated inits diagnostic location.
Apr 5 2023, 5:20 PM · Restricted Project, Restricted Project
void committed rGbfee6f114236: [Clang][NFC] Refactor "Designators" to be more similar (authored by void).
[Clang][NFC] Refactor "Designators" to be more similar
Apr 5 2023, 3:47 PM · Restricted Project, Restricted Project
void closed D147580: [Clang][NFC] Refactor "Designators" to be more similar.
Apr 5 2023, 3:46 PM · Restricted Project, Restricted Project
void retitled D147580: [Clang][NFC] Refactor "Designators" to be more similar from [Clang] Refactor "Designators" to be more similar [NFC] to [Clang][NFC] Refactor "Designators" to be more similar.
Apr 5 2023, 2:55 PM · Restricted Project, Restricted Project
void updated the diff for D147580: [Clang][NFC] Refactor "Designators" to be more similar.

Rebase.

Apr 5 2023, 2:42 PM · Restricted Project, Restricted Project

Apr 4 2023

void requested review of D147580: [Clang][NFC] Refactor "Designators" to be more similar.
Apr 4 2023, 4:21 PM · Restricted Project, Restricted Project

Mar 6 2023

void updated the diff for D144136: Add a "remark" to report on array accesses.

Slight typo

Mar 6 2023, 1:05 PM · Restricted Project, Restricted Project
void updated the diff for D144136: Add a "remark" to report on array accesses.

Revise with Kees's code.

Mar 6 2023, 12:35 PM · Restricted Project, Restricted Project

Mar 2 2023

void added a reverting change for rG3c07db5f58e9: [Clang] Refactor "Designators" into a unified implementation [NFC]: rG554ba9969565: Revert "[Clang] Refactor "Designators" into a unified implementation [NFC]".
Mar 2 2023, 12:10 PM · Restricted Project, Restricted Project, Restricted Project
void committed rG554ba9969565: Revert "[Clang] Refactor "Designators" into a unified implementation [NFC]" (authored by void).
Revert "[Clang] Refactor "Designators" into a unified implementation [NFC]"
Mar 2 2023, 12:10 PM · Restricted Project, Restricted Project, Restricted Project
void added a reverting change for D140584: [Clang] Refactor "Designators" into a unified implementation [NFC]: rG554ba9969565: Revert "[Clang] Refactor "Designators" into a unified implementation [NFC]".
Mar 2 2023, 12:09 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Mar 1 2023

void added a comment to D143521: [llvm][LowerConstantIntrinsics] add debug statements.

These look fine, so accepted. One comment: Would it be good to somehow identify in the message the intrinsic each message is folding?

I think that's what II is in the message, right?

Mar 1 2023, 12:23 PM · Restricted Project, Restricted Project

Feb 27 2023

void added inline comments to D144927: [GVNHoist] don't hoist callbr users into the callbr's block.
Feb 27 2023, 5:23 PM · Restricted Project, Restricted Project

Feb 21 2023

void updated the diff for D144136: Add a "remark" to report on array accesses.

Report when there's a non-constant access:

Feb 21 2023, 4:14 PM · Restricted Project, Restricted Project
void added a comment to D144136: Add a "remark" to report on array accesses.

Here's a test-case. I'd expect 6 remarks from building this:

/* Build with -Wall -O2 -fstrict-flex-arrays=3 -fsanitize=bounds -Rarray-bounds */
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>

#define report_size(p, index)      do {    \
    const size_t bdos = __builtin_dynamic_object_size(p, 1); \
    \
    if (__builtin_constant_p(bdos)) { \
        if (bdos == SIZE_MAX) { \
            printf(#p " has unknowable size\n"); \
        } else { \
            printf(#p " has a fixed size: %zu\n", bdos); \
        } \
    } else { \
        printf(#p " has a dynamic size: %zu\n", bdos); \
    } \
    printf(#p "[" #index "] assignment: %d\n", (p)[index] = 15); \
} while (0)

struct fixed {
    unsigned long flags;
    size_t foo;
    int array[16];
};

/* should emit "fixed" */
void do_fixed(struct fixed *p, int index)
{
    report_size(p->array, 0);
    report_size(p->array, index);
}

struct flex {
    unsigned long flags;
    size_t foo;
    int array[];
};

/* should emit "dynamic" */
void do_dynamic(unsigned char count, int index)
{
    /* malloc() is marked with __attribute__((alloc_size(1))) */
    struct flex *p = malloc(sizeof(*p) + count * sizeof(*p->array));
    report_size(p->array, 0);
    report_size(p->array, index);
    free(p);
}

/* should emit "unknowable" */
void do_unknown(struct flex *p, int index)
{
    report_size(p->array, 0);
    report_size(p->array, index);
}

Currently, it only emits once for the compile-time known index with a compile-time known array size:

array.c:31:17: remark: accessing fixed sized array 'int[16]' by 0 [-Rarray-bounds]                  
    report_size(p->array, 0);                                                                                       ^
Feb 21 2023, 1:18 PM · Restricted Project, Restricted Project

Feb 17 2023

void accepted D143521: [llvm][LowerConstantIntrinsics] add debug statements.

These look fine, so accepted. One comment: Would it be good to somehow identify in the message the intrinsic each message is folding?

Feb 17 2023, 11:05 AM · Restricted Project, Restricted Project

Feb 16 2023

void added a comment to D144136: Add a "remark" to report on array accesses.

I'd like to understand what the overhead is for this. How much overhead does this add when the remark is disabled? How much overhead does this add when the remark is enabled?

This will report a ton of information. It's basically only good for piping to a file and using Perl to gather any useful information.

This is why I'm worried about overhead -- there can be *a lot* of array accesses in a complex TU and spitting data out to (potentially) stdout/stderr is *slow*.

Feb 16 2023, 12:24 PM · Restricted Project, Restricted Project

Feb 15 2023

void added a reviewer for D144136: Add a "remark" to report on array accesses: kees.
Feb 15 2023, 2:01 PM · Restricted Project, Restricted Project
void requested review of D144136: Add a "remark" to report on array accesses.
Feb 15 2023, 2:01 PM · Restricted Project, Restricted Project

Feb 7 2023

void committed rG3c07db5f58e9: [Clang] Refactor "Designators" into a unified implementation [NFC] (authored by void).
[Clang] Refactor "Designators" into a unified implementation [NFC]
Feb 7 2023, 1:00 PM · Restricted Project, Restricted Project, Restricted Project
void closed D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].
Feb 7 2023, 12:59 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Feb 6 2023

void added a comment to D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.

FYI, this patch looks like was pushed into a new "Main" branch instead of the actual "main" branch.:

commit f85a9a6452e8f49f9768d66a86434a88a5891614 (origin/Main)
Author: Bill Wendling <morbo@google.com>
Date:   Mon Feb 6 14:26:16 2023 -0800

    [randstruct] Don't allow implicit forward decl to stop struct randomization

It causes git checkout failures on Windows, see error message:

warning: encountered old-style '/ssl/certs/ca-bundle.crt' that should be '%(prefix)//ssl/certs/ca-bundle.crt'
From https://llvm.googlesource.com/a/llvm-project
 * [new branch]                Main       -> Main
error: cannot lock ref 'refs/heads/main': is at f85a9a6452e8f49f9768d66a86434a88a5891614 but expected abbd256a810a0b0c92dda88a3050fc85cb604a9c
 ! abbd256a810a..14ca2e68ff4c  main       -> main  (unable to update local ref)

Windows use case aware but insensitive filesystem and 2 "main" branches will not work out.
See explanation at https://stackoverflow.com/questions/10068640/git-error-on-git-pull-unable-to-update-local-ref/66832220#66832220
I will attempt deleting the "Main" branch to correct this error.

Feb 6 2023, 10:22 PM · Restricted Project, Restricted Project
void committed rGf85a9a6452e8: [randstruct] Don't allow implicit forward decl to stop struct randomization (authored by void).
[randstruct] Don't allow implicit forward decl to stop struct randomization
Feb 6 2023, 2:27 PM · Restricted Project, Restricted Project
void closed D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.
Feb 6 2023, 2:26 PM · Restricted Project, Restricted Project
void updated the diff for D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.

Remove extra line.

Feb 6 2023, 12:06 PM · Restricted Project, Restricted Project
void added inline comments to D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.
Feb 6 2023, 11:35 AM · Restricted Project, Restricted Project
void accepted D143205: [clang] add __has_extension(gnu_asm_goto_with_outputs_full).

LGTM

Feb 6 2023, 10:22 AM · Restricted Project, Restricted Project
void accepted D142940: [llvm][SelectionDAGBuilder] change callbr.landingpad intrinsic to accept explicit param.

LGTM

Feb 6 2023, 10:21 AM · Restricted Project, Restricted Project
void updated the diff for D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.

Use TagDecl.

Feb 6 2023, 10:17 AM · Restricted Project, Restricted Project
void added inline comments to D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.
Feb 6 2023, 10:00 AM · Restricted Project, Restricted Project
void updated the diff for D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.

Fix test and add check for EnumDecl.

Feb 6 2023, 9:58 AM · Restricted Project, Restricted Project
void added a comment to D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.

clang/test/CodeGen/init-randomized-struct-fwd-decl.c passes without this patch. Is it correct?

Perhaps related to my comment about RecordDecl vs EnumDecl...

or the tests might require a specific randomization seed?

Feb 6 2023, 9:53 AM · Restricted Project, Restricted Project

Feb 3 2023

void updated the diff for D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.

Move test and improve checks.

Feb 3 2023, 4:29 PM · Restricted Project, Restricted Project
void requested review of D143300: [randstruct] Don't allow implicit forward decl to stop struct randomization.
Feb 3 2023, 3:22 PM · Restricted Project, Restricted Project
void added inline comments to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].
Feb 3 2023, 1:21 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Feb 2 2023

void added inline comments to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].
Feb 2 2023, 12:06 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
void accepted D142924: [llvm][IfConversion] update successor list when merging INLINEASM_BR.
Feb 2 2023, 11:47 AM · Restricted Project, Restricted Project
void added inline comments to D142924: [llvm][IfConversion] update successor list when merging INLINEASM_BR.
Feb 2 2023, 11:40 AM · Restricted Project, Restricted Project
void accepted D142923: precommit test for pr60346.

More tests are always good. :-)

Feb 2 2023, 11:35 AM · Restricted Project, Restricted Project

Feb 1 2023

void added inline comments to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].
Feb 1 2023, 2:37 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
void added a comment to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].

@rsmith Ping. This is blocking some patches I'd like to submit afterwards. :-)

Feb 1 2023, 1:52 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jan 31 2023

void accepted D136497: [Clang] support for outputs along indirect edges of asm goto.

One small comment about the documentation but L:GTM.

Jan 31 2023, 5:02 PM · Restricted Project, Restricted Project
void accepted D140180: [llvm] add CallBrPrepare pass to pipelines.
Jan 31 2023, 4:51 PM · Restricted Project, Restricted Project
void accepted D140160: [llvm][SelectionDAGBuilder] codegen callbr.landingpad intrinsic.
Jan 31 2023, 4:47 PM · Restricted Project, Restricted Project
void accepted D139970: [llvm][CallBrPrepare] use SSAUpdater to use intrinsic value.
Jan 31 2023, 4:16 PM · Restricted Project, Restricted Project

Jan 30 2023

void committed rG7d626e7cbb3a: [X86] Move RDFLAGS/WRFLAGS expansion until after RA (authored by void).
[X86] Move RDFLAGS/WRFLAGS expansion until after RA
Jan 30 2023, 3:32 PM · Restricted Project, Restricted Project
void closed D140045: [X86] Move RDFLAGS/WRFLAGS expansion until after RA.
Jan 30 2023, 3:32 PM · Restricted Project, Restricted Project
void updated the diff for D140045: [X86] Move RDFLAGS/WRFLAGS expansion until after RA.

Rebase.

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

Jan 20 2023

void added a comment to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].

Friendly ping!

Jan 20 2023, 2:04 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jan 18 2023

void added inline comments to D139872: [llvm][CallBrPrepare] split critical edges.
Jan 18 2023, 4:08 PM · Restricted Project, Restricted Project
void added inline comments to D136497: [Clang] support for outputs along indirect edges of asm goto.
Jan 18 2023, 4:04 PM · Restricted Project, Restricted Project
void accepted D137113: [Clang] refactor CodeGenFunction::EmitAsmStmt NFC.

Still LGTM :-)

Jan 18 2023, 3:51 PM · Restricted Project, Restricted Project
void added inline comments to D139970: [llvm][CallBrPrepare] use SSAUpdater to use intrinsic value.
Jan 18 2023, 3:47 PM · Restricted Project, Restricted Project
void added inline comments to D139883: [llvm][CallBrPrepare] add llvm.callbr.landingpad intrinsic.
Jan 18 2023, 3:44 PM · Restricted Project, Restricted Project
void accepted D139872: [llvm][CallBrPrepare] split critical edges.

LGTM. One suggestion that you can ignore if you wish.

Jan 18 2023, 3:39 PM · Restricted Project, Restricted Project
void accepted D139861: [llvm] boilerplate for new callbrprepare codegen IR pass.

A couple nits, but overall okay.

Jan 18 2023, 3:29 PM · Restricted Project, Restricted Project
void accepted D140166: [IR] return nullptr in Instruction::getInsertionPointAfterDef for CallBrInst.
Jan 18 2023, 3:25 PM · Restricted Project, Restricted Project
void accepted D135997: [Dominators] check indirect branches of callbr.
Jan 18 2023, 2:56 PM · Restricted Project, Restricted Project

Jan 17 2023

void accepted D135997: [Dominators] check indirect branches of callbr.

Could you investigate the build failures?

Jan 17 2023, 2:56 PM · Restricted Project, Restricted Project

Jan 11 2023

void added a comment to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].

Sonar ping. :-)

Jan 11 2023, 1:36 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jan 10 2023

void updated the diff for D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].

Use EllipsisLoc instead of one of the Brackets.

Jan 10 2023, 3:03 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jan 9 2023

void added inline comments to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].
Jan 9 2023, 1:01 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
void added inline comments to D140584: [Clang] Refactor "Designators" into a unified implementation [NFC].
Jan 9 2023, 11:55 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project