Page MenuHomePhabricator
Feed Advanced Search

Wed, Jul 21

void committed rG635288d215b1: [llvm-diff] Check for recursive initialiers (authored by void).
[llvm-diff] Check for recursive initialiers
Wed, Jul 21, 2:22 PM
void closed D105616: [llvm-diff] Check for recursive initializers.
Wed, Jul 21, 2:21 PM · Restricted Project
void added a comment to D105616: [llvm-diff] Check for recursive initializers.

Uh-oh, the pings are getting less friendly. :)

LGTM

Wed, Jul 21, 2:20 PM · Restricted Project
void added a comment to D105616: [llvm-diff] Check for recursive initializers.

Another ping. :-)

Wed, Jul 21, 1:45 PM · Restricted Project

Tue, Jul 13

void accepted D104996: [docs] Update CMake cross compiling guide link..

One small nit, otherwise good.

Tue, Jul 13, 12:09 PM · Restricted Project

Mon, Jul 12

void added a comment to D105616: [llvm-diff] Check for recursive initializers.

Friendly ping.

Mon, Jul 12, 6:32 PM · Restricted Project
void retitled D105616: [llvm-diff] Check for recursive initializers from [llvm-diff] Check for recursive initialiers to [llvm-diff] Check for recursive initializers.
Mon, Jul 12, 6:32 PM · Restricted Project
void closed D104733: [llvm-diff] Explicitly check ConstantArrays.
Mon, Jul 12, 6:31 PM · Restricted Project

Thu, Jul 8

void requested review of D105616: [llvm-diff] Check for recursive initializers.
Thu, Jul 8, 2:11 AM · Restricted Project

Jun 23 2021

void committed rG826947080b7e: [llvm-diff] Explicitly check ConstantStructs for differences (authored by void).
[llvm-diff] Explicitly check ConstantStructs for differences
Jun 23 2021, 4:27 PM
void closed D104734: [llvm-diff] Explicitly check ConstantStructs for differences.
Jun 23 2021, 4:27 PM · Restricted Project
void added a comment to D104734: [llvm-diff] Explicitly check ConstantStructs for differences.

Thanks for bearing with all the comments. :) LGTM.

Jun 23 2021, 4:26 PM · Restricted Project
void updated the diff for D104734: [llvm-diff] Explicitly check ConstantStructs for differences.

Initialize Saved[LR]HS to nullptr.

Jun 23 2021, 4:21 PM · Restricted Project
void updated the diff for D104734: [llvm-diff] Explicitly check ConstantStructs for differences.

Improve the check of the global variable initializers. Both LHS and RHS need to
match the global variable at the same time when recursing or they don't match.

Jun 23 2021, 4:14 PM · Restricted Project
void added a comment to D104734: [llvm-diff] Explicitly check ConstantStructs for differences.

That should work, thanks. What's going on with StructStack?

Structures are the only types which can reference themselves. If I don't stop processing already seen types then it's possible they could infinitely recurse. The stack / std::find code is very hackish. I'm open to suggestions on making it non-gross. :-)

Well, they can't reference themselves as sub-aggregates; you'll never see another field of this exact type.

Jun 23 2021, 3:27 PM · Restricted Project
void updated the diff for D104734: [llvm-diff] Explicitly check ConstantStructs for differences.

Check to ensure we don't analyze the global variable we're currently analyzing. This causes an infinite loop.

Jun 23 2021, 3:26 PM · Restricted Project

Jun 22 2021

void added a comment to D104734: [llvm-diff] Explicitly check ConstantStructs for differences.

That should work, thanks. What's going on with StructStack?

Jun 22 2021, 8:33 PM · Restricted Project
void added inline comments to D104734: [llvm-diff] Explicitly check ConstantStructs for differences.
Jun 22 2021, 2:02 PM · Restricted Project
void updated the diff for D104734: [llvm-diff] Explicitly check ConstantStructs for differences.

Check for packed structures to ensure they have the same data layout.

Jun 22 2021, 2:01 PM · Restricted Project
void added inline comments to D104734: [llvm-diff] Explicitly check ConstantStructs for differences.
Jun 22 2021, 12:26 PM · Restricted Project
void committed rGab6002871d83: [llvm-diff] Add support for diffing the callbr instruction (authored by void).
[llvm-diff] Add support for diffing the callbr instruction
Jun 22 2021, 12:24 PM
void committed rG46db43240f0f: [llvm-diff] Explicitly check ConstantArrays (authored by void).
[llvm-diff] Explicitly check ConstantArrays
Jun 22 2021, 12:24 PM
void closed D104606: llvm-diff: add support for diffing the callbr instruction.
Jun 22 2021, 12:24 PM · Restricted Project
void requested review of D104734: [llvm-diff] Explicitly check ConstantStructs for differences.
Jun 22 2021, 11:49 AM · Restricted Project
void requested review of D104733: [llvm-diff] Explicitly check ConstantArrays.
Jun 22 2021, 11:49 AM · Restricted Project
void updated the diff for D104606: llvm-diff: add support for diffing the callbr instruction.

Rebase with top-of-tree.

Jun 22 2021, 11:47 AM · Restricted Project
void committed rGdd1b121c99de: [llvm-diff] Constify APIs so that there aren't conflicts (authored by void).
[llvm-diff] Constify APIs so that there aren't conflicts
Jun 22 2021, 9:17 AM
void closed D104719: [llvm-diff] Constify APIs so that there aren't conflicts.
Jun 22 2021, 9:17 AM · Restricted Project
void accepted D104719: [llvm-diff] Constify APIs so that there aren't conflicts.
Jun 22 2021, 9:13 AM · Restricted Project
void requested review of D104719: [llvm-diff] Constify APIs so that there aren't conflicts.
Jun 22 2021, 9:08 AM · Restricted Project
void added reviewers for D104606: llvm-diff: add support for diffing the callbr instruction: arsenm, dexonsmith.
Jun 22 2021, 9:01 AM · Restricted Project

Jun 20 2021

void requested review of D104606: llvm-diff: add support for diffing the callbr instruction.
Jun 20 2021, 3:00 PM · Restricted Project

Jun 18 2021

void accepted D104475: [Clang][Codegen] Add GNU function attribute 'no_profile' and lower it to noprofile.
Jun 18 2021, 11:58 AM · Restricted Project

Jun 17 2021

void added inline comments to D104475: [Clang][Codegen] Add GNU function attribute 'no_profile' and lower it to noprofile.
Jun 17 2021, 11:45 AM · Restricted Project

Jun 14 2021

void added a comment to D104253: [Clang][Codegen] emit noprofile IR Fn Attr for no_instrument_function Fn Attr.

What are your thoughts on adding a noprofile function attribute in the FE? @MaskRay suggested filing a bug with gcov (below) to get their take on it.

Jun 14 2021, 12:05 PM · Restricted Project

Apr 23 2021

void added inline comments to D101129: [gcov] Set nounwind and respect module flags metadata "frame-pointer" & "uwtable" for synthesized functions.
Apr 23 2021, 2:14 PM · Restricted Project

Feb 25 2021

void committed rGa9f9ceb35f81: [X86] Use correct padding when in 16-bit mode (authored by void).
[X86] Use correct padding when in 16-bit mode
Feb 25 2021, 8:06 PM
void closed D97268: [X86] Use correct padding when in 16-bit mode.
Feb 25 2021, 8:06 PM · Restricted Project, Restricted Project
void updated the diff for D97268: [X86] Use correct padding when in 16-bit mode.

Use "hasFeature"

Feb 25 2021, 3:40 PM · Restricted Project, Restricted Project
void added inline comments to D97268: [X86] Use correct padding when in 16-bit mode.
Feb 25 2021, 3:37 PM · Restricted Project, Restricted Project

Feb 24 2021

void updated the diff for D97268: [X86] Use correct padding when in 16-bit mode.

Test all nop sizes.

Feb 24 2021, 8:38 PM · Restricted Project, Restricted Project
void updated the diff for D97268: [X86] Use correct padding when in 16-bit mode.

Reduce testcase.

Feb 24 2021, 3:22 PM · Restricted Project, Restricted Project
void updated the diff for D97268: [X86] Use correct padding when in 16-bit mode.

Rework 16-bit nops to use existing loop.

Feb 24 2021, 2:22 PM · Restricted Project, Restricted Project
void added a comment to D97268: [X86] Use correct padding when in 16-bit mode.

That...shouldn't matter since a NOP is a NOP. Regardless, I removed that modification to simplify the patch.

It _does_ matter. To start with it can affect performance (marginally).

But more importantly, if you're doing tricky things with runtime code modification, it's a correctness issue. A trap won't leave the instruction pointer in the middle of a long-nop instruction (which you may be about to replace with another instruction), but it can leave it between two distinct nops.

Feb 24 2021, 1:21 PM · Restricted Project, Restricted Project

Feb 23 2021

void added a comment to D97268: [X86] Use correct padding when in 16-bit mode.

This change also modifies (breaks!) the 32-bit NOP set, definitely shouldn't do that. (But I think all that can be reverted, in any case).

Which part did it break?

It replaced the single-instruction NOPs with new sequences consisting of multiple instructions.

Feb 23 2021, 3:45 PM · Restricted Project, Restricted Project
void added a comment to D97268: [X86] Use correct padding when in 16-bit mode.

This change also modifies (breaks!) the 32-bit NOP set, definitely shouldn't do that. (But I think all that can be reverted, in any case).

Which part did it break?

It replaced the single-instruction NOPs with new sequences consisting of multiple instructions.

Feb 23 2021, 3:38 PM · Restricted Project, Restricted Project
void updated the diff for D97268: [X86] Use correct padding when in 16-bit mode.

Correct comments with proper disassembly.

Feb 23 2021, 2:55 PM · Restricted Project, Restricted Project
void updated the diff for D97268: [X86] Use correct padding when in 16-bit mode.

Reduce size and effect of patch.

Feb 23 2021, 12:40 PM · Restricted Project, Restricted Project
void added a comment to D97268: [X86] Use correct padding when in 16-bit mode.

This change also modifies (breaks!) the 32-bit NOP set, definitely shouldn't do that. (But I think all that can be reverted, in any case).

Feb 23 2021, 12:11 PM · Restricted Project, Restricted Project
void requested review of D97268: [X86] Use correct padding when in 16-bit mode.
Feb 23 2021, 2:45 AM · Restricted Project, Restricted Project

Jan 21 2021

void accepted D94996: [GVN] do not repeat PRE on failure to split critical edge.
Jan 21 2021, 3:55 PM · Restricted Project

Jan 19 2021

void committed rGe22295385c7f: [X86] Add segment and address-size override prefixes (authored by void).
[X86] Add segment and address-size override prefixes
Jan 19 2021, 11:55 PM
void closed D94726: [X86] Add segment and address-size override prefixes.
Jan 19 2021, 11:55 PM · Restricted Project

Jan 17 2021

void added inline comments to D94726: [X86] Add segment and address-size override prefixes.
Jan 17 2021, 11:37 PM · Restricted Project
void updated the diff for D94726: [X86] Add segment and address-size override prefixes.

Fixed variable name and removed excess test lines.

Jan 17 2021, 11:37 PM · Restricted Project

Jan 15 2021

void abandoned D94470: [LSR] Don't break a critical edge if parent ends with "callbr".
Jan 15 2021, 2:06 PM · Restricted Project
void accepted D88438: BreakCriticalEdges: do not split the critical edge from a CallBr indirect successor.
Jan 15 2021, 11:38 AM · Restricted Project

Jan 14 2021

void requested review of D94726: [X86] Add segment and address-size override prefixes.
Jan 14 2021, 2:38 PM · Restricted Project
void updated the diff for D94470: [LSR] Don't break a critical edge if parent ends with "callbr".
  • Add FileCheck to testcase.
Jan 14 2021, 1:03 PM · Restricted Project

Jan 12 2021

void added inline comments to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".
Jan 12 2021, 3:57 PM · Restricted Project
void added inline comments to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".
Jan 12 2021, 3:14 PM · Restricted Project
void updated the diff for D94470: [LSR] Don't break a critical edge if parent ends with "callbr".

Move testcase.

Jan 12 2021, 2:52 PM · Restricted Project
void added inline comments to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".
Jan 12 2021, 2:18 PM · Restricted Project
void added inline comments to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".
Jan 12 2021, 2:03 PM · Restricted Project
void added a comment to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".

The test should be added in test/Transforms/PGOProfile/, see D87435

The error isn't in opt but in llc though. In fact, I don't think it's specific to PGO, but only triggered by it.

Then it should be in llvm/test/Transforms/LoopStrengthReduce/

Jan 12 2021, 2:00 PM · Restricted Project
void added a comment to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".

I guess the presence of the profile data makes it difficult to use bugpoint to reduce the test case more?

It looks like I was able to reduce it. PTAL.

The test case passes for me on ToT; was it over-reduced perhaps?

Jan 12 2021, 1:10 PM · Restricted Project
void added a comment to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".

I guess the presence of the profile data makes it difficult to use bugpoint to reduce the test case more?

Jan 12 2021, 12:11 PM · Restricted Project
void updated the diff for D94470: [LSR] Don't break a critical edge if parent ends with "callbr".

Reduce the testcase.

Jan 12 2021, 12:10 PM · Restricted Project
void added a comment to D94470: [LSR] Don't break a critical edge if parent ends with "callbr".

The test should be added in test/Transforms/PGOProfile/, see D87435

Jan 12 2021, 12:07 PM · Restricted Project

Jan 11 2021

void requested review of D94470: [LSR] Don't break a critical edge if parent ends with "callbr".
Jan 11 2021, 10:05 PM · Restricted Project

Dec 22 2020

void added a comment to D92156: [PowerPC] Add support for "tlbiel" with two arguments.

Also, looks like there is bug for tlbie as well, there is NO one operand mnemonic, only 5 or 2.

tlbie serves as both a basic and an extended mne-monic.  The Assembler will recognize a tlbie mne-monic with five operands as the basic form, and a tlbie mnemonic with two operands as the extended form.    In  the  extended  form  the  RIC,  PRS,  and  Roperands are omitted and assumed to be 0.
Dec 22 2020, 1:05 PM · Restricted Project

Dec 12 2020

void added a comment to D92156: [PowerPC] Add support for "tlbiel" with two arguments.

Ping #2.

Dec 12 2020, 7:18 PM · Restricted Project

Dec 2 2020

void added a comment to D92156: [PowerPC] Add support for "tlbiel" with two arguments.

Ping.

Dec 2 2020, 11:29 AM · Restricted Project

Nov 25 2020

void requested review of D92156: [PowerPC] Add support for "tlbiel" with two arguments.
Nov 25 2020, 11:08 PM · Restricted Project
void accepted D91836: [PowerPC] Delete remnant Darwin code in PPCAsmParser.
Nov 25 2020, 4:04 PM · Restricted Project

Nov 20 2020

void added a comment to D91816: [Inline] prevent inlining on stack protector mismatch.

Are there tests to ensure that the appropriate stack protector level is added to the function after inlining?

Nov 20 2020, 12:17 AM · Restricted Project

Nov 19 2020

void added inline comments to D91836: [PowerPC] Delete remnant Darwin code in PPCAsmParser.
Nov 19 2020, 6:21 PM · Restricted Project
void committed rGb2f663073917: [PowerPC] Allow a '%' prefix for registers in CFI directives (authored by void).
[PowerPC] Allow a '%' prefix for registers in CFI directives
Nov 19 2020, 6:20 PM
void closed D91735: [PowerPC] Allow a '%' prefix for registers in CFI directives.
Nov 19 2020, 6:20 PM · Restricted Project
void updated the diff for D91735: [PowerPC] Allow a '%' prefix for registers in CFI directives.

Move % eater to MatchRegisterName.

Nov 19 2020, 5:24 PM · Restricted Project

Nov 18 2020

void added a comment to D91735: [PowerPC] Allow a '%' prefix for registers in CFI directives.

I was thinking "would it be better to move this logic down into PPCAsmParser::MatchRegisterName? Well, I would suppose that would depend on if the % prefix on registers is valid in other contexts, for instance maybe other places that directly call PPCAsmParser::MatchRegisterName rather than `PPCAsmParser::tryParseRegister which you've modified here.

Nov 18 2020, 3:37 PM · Restricted Project
void requested review of D91735: [PowerPC] Allow a '%' prefix for registers in CFI directives.
Nov 18 2020, 12:41 PM · Restricted Project

Nov 12 2020

void added inline comments to D90194: [Driver] split LangOptions::SSPOff into SSPOFF and SSPUnspecified.
Nov 12 2020, 2:10 PM · Restricted Project

Nov 4 2020

void added inline comments to D90194: [Driver] split LangOptions::SSPOff into SSPOFF and SSPUnspecified.
Nov 4 2020, 5:43 PM · Restricted Project

Oct 26 2020

void accepted D90177: [BitCode] decode nossp fn attr.
Oct 26 2020, 12:48 PM · Restricted Project

Oct 22 2020

void added a comment to D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch.

In phab here, it looks like my newly added clang/test/Frontend/optimization-remark-missed-inline-stack-protectors.c fails on windows because I redirect stdout to /dev/null. How does that work for other tests? I see other tests in that dir write to /dev/null. Oh, I guess -o /dev/null will just create a file called "/dev/null" on Windows? So I should do that rather than 1> /dev/null?

Oct 22 2020, 2:06 PM · Restricted Project, Restricted Project

Oct 21 2020

void accepted D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch.

Only a couple of nits, but I think this looks good.

Oct 21 2020, 3:44 PM · Restricted Project, Restricted Project

Oct 20 2020

void added inline comments to D87956: [IR] add fn attr for no_stack_protector; prevent inlining on mismatch.
Oct 20 2020, 8:12 PM · Restricted Project, Restricted Project

Oct 6 2020

void committed rGd2c61d2bf9bd: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR (authored by void).
[CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR
Oct 6 2020, 6:45 PM
void closed D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.
Oct 6 2020, 6:45 PM · Restricted Project
void updated the diff for D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

Rerun with the correct llc.

Oct 6 2020, 6:08 PM · Restricted Project
void updated the diff for D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

Update comment and testcase.

Oct 6 2020, 5:59 PM · Restricted Project
void updated the summary of D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.
Oct 6 2020, 4:11 PM · Restricted Project
void reclaimed D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

Okay. Abandoning this change.

Sorry, maybe I buried the lede too far into the message? "I think the fix you have here is OK" was at the end. :)

One thing, I believe we're trying to turn "asm goto" into something it was never meant to be. If you look at gcc's output for this code.

Okay. I'll reclaim this revision.

Oct 6 2020, 4:05 PM · Restricted Project

Oct 5 2020

void added a comment to D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

One thing, I believe we're trying to turn "asm goto" into something it was never meant to be. If you look at gcc's output for this code:

Oct 5 2020, 11:50 PM · Restricted Project
void added a comment to D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

Okay. Abandoning this change.

Oct 5 2020, 11:29 PM · Restricted Project
void abandoned D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.
Oct 5 2020, 11:26 PM · Restricted Project
void added a comment to D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

Here are the relevant parts of the original issue in get_partial_node. Blocks bb.16.bb100 and bb.17.bb106 are the sources of the values in the PHI node in bb.18.bb110. The bb.19.bb17.i.i.i block is the indirect destination and bb.20.bb113 the default destination.

Oct 5 2020, 8:21 PM · Restricted Project
void added a comment to D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

When we go to resolve this PHI node, there's no place to put the put the values that works in all situations; we can't split the critical edges and it's not valid to place the resolved instructions at the ends of the predecessor blocks.

We can (at least: should be able to) handle a PHI node in the indirect targets of an INLINEASM_BR, for any value which is not the output of the INLINEASM_BR itself. We place the required register copies prior to the INLINEASM_BR, rather than after it. This is handled by findPHICopyInsertPoint -- where we did have a bug already, fixed in f7a53d82c0902147909f28a9295a9d00b4b27d38.

Oct 5 2020, 7:58 PM · Restricted Project
void added a comment to D88823: [CodeGen][TailDuplicator] Don't duplicate blocks with INLINEASM_BR.

%9:gr32 = PHI %0:gr32, %bb.1, %5:gr32, %bb.2

The problem is this PHI here. We don't have a way to resolve PHI nodes in the entry block to an indirect destination. (This is the reason we don't allow "asm goto" outputs on the indirect paths.) When we go to resolve this PHI node, there's no place to put the put the values that works in all situations; we can't split the critical edges and it's not valid to place the resolved instructions at the ends of the predecessor blocks.

We're also not using "asm goto" outputs in this test case, so I still don't understand why this PHI is problematic.

That doesn't matter. It's problematic because of the PHI in the block with the INLINEASM_BR. As I mentioned, the result of the tail duplication is that that PHI is more-or-less moved *down* into the indirect and default destinations. Look at those PHIs and you'll see that they have the same values coming into them.

Oct 5 2020, 7:52 PM · Restricted Project