Page MenuHomePhabricator

MatzeB (Matthias Braun)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 13 2013, 3:10 PM (432 w, 4 d)

Not actively working on LLVM at the moment

Recent Activity

Tue, Nov 23

MatzeB updated the diff for D112754: X86: Fold masked merge pattern when and-not is not available.

Address review feedback

Tue, Nov 23, 11:29 AM · Restricted Project
MatzeB updated the diff for D113151: Tests for D112754.
Tue, Nov 23, 11:26 AM · Restricted Project
MatzeB accepted D114191: [NFC][llvm] Inclusive language: remove instance of master in LiveRangeUtils.h.

Sure

Tue, Nov 23, 10:21 AM · Restricted Project
MatzeB accepted D113960: PrologEpilogInserter: Use explicit control for scavenge slot placement.

LGTM

Tue, Nov 23, 10:19 AM · Restricted Project

Mon, Nov 22

MatzeB added inline comments to D80538: [MachineVerifier] Add a new TiedOpsRewritten flag to fix verify two-address constraint error.
Mon, Nov 22, 11:28 AM · Restricted Project
MatzeB added inline comments to D112852: [GlobalISel] Allow DBG_VALUE to use undefined vregs before LiveDebugValues.
Mon, Nov 22, 11:26 AM · Restricted Project
MatzeB added inline comments to D112852: [GlobalISel] Allow DBG_VALUE to use undefined vregs before LiveDebugValues.
Mon, Nov 22, 11:25 AM · Restricted Project
MatzeB requested changes to D112852: [GlobalISel] Allow DBG_VALUE to use undefined vregs before LiveDebugValues.

Requesting changes for the missing MIR serialization of the new property.

Mon, Nov 22, 11:23 AM · Restricted Project

Mon, Nov 15

MatzeB committed rT27f9d2a448bc: [test-suite] Fix signed integer overflow error for pc1cod.c (authored by MatzeB).
[test-suite] Fix signed integer overflow error for pc1cod.c
Mon, Nov 15, 11:54 AM
MatzeB closed D113639: [test-suite] Fix signed integer overflow error for pc1cod.c.
Mon, Nov 15, 11:54 AM
MatzeB added a comment to D113639: [test-suite] Fix signed integer overflow error for pc1cod.c.

Just double checked and it seems you got it "right" the first time. Turns out the source file for this benchmark has CR+LF line endings, so your patch having them was correct. (My git pager view or the git diff output somehow produce odd output marking the changed lines with different line endings, but this was on my end).

Mon, Nov 15, 11:26 AM

Thu, Nov 11

MatzeB added a comment to D113639: [test-suite] Fix signed integer overflow error for pc1cod.c.

It seems something is off with the line endings of the patch (or arc patch D113639 is failing on my end). The changed lines get a CR+LF instead of a unix LF line ending. How did you produce and upload the patch?

Thu, Nov 11, 1:05 PM
MatzeB accepted D113639: [test-suite] Fix signed integer overflow error for pc1cod.c.

LGTM! I'll land it.

Thu, Nov 11, 12:47 PM
MatzeB updated subscribers of D113639: [test-suite] Fix signed integer overflow error for pc1cod.c.
Thu, Nov 11, 8:49 AM
MatzeB added a comment to D113639: [test-suite] Fix signed integer overflow error for pc1cod.c.

Does the benchmark still produces the same values when going from int to unsigned? No change to *.reference_output necessary?

Thu, Nov 11, 8:49 AM

Mon, Nov 8

MatzeB accepted D113116: [CodeGen] Fix assertion failure in TwoAddressInstructionPass::rescheduleMIBelowKill.

LGTM

Mon, Nov 8, 11:26 AM · Restricted Project
MatzeB added inline comments to D77029: Fix out-of-bounds BitVector access in RegScavenger.
Mon, Nov 8, 11:22 AM · Restricted Project
MatzeB added a comment to D77029: Fix out-of-bounds BitVector access in RegScavenger.

Ugh... I suspect we're not seeing a problem in practice since missing "kills" just means missed opportunities but it's not a correctness problem.

Mon, Nov 8, 11:20 AM · Restricted Project
MatzeB added a comment to D81632: Fix undefined behavior in PeepholeOptimizer..

I think SubIdx is supposed to be set by TII->isCoalescableExtInstr(). If it's not doing that, then the error's probably in that call and not in this function.

Then most target instr infos need to patch.

SubIdx only needs to be set the function ends up doing return true;.

Mon, Nov 8, 9:35 AM · Restricted Project
MatzeB requested changes to D81632: Fix undefined behavior in PeepholeOptimizer..

Back to author. We should fix the relevant isCoalescableExtInstr in the targets instead of just default initializing the field. That said all implementations of that callback on open-source trunk look fine to me too.

Mon, Nov 8, 9:34 AM · Restricted Project
MatzeB added a comment to D110182: [LiveIntervals] Find better anchoring end points when repairing ranges.

Change looks good to me, but I would apreciate a better test.

Mon, Nov 8, 9:10 AM · Restricted Project
MatzeB added a comment to D111386: RFC: [Hexagon] Mark target as not "machine verifier clean".

I think we can abandon this with D111397 landed?

Mon, Nov 8, 9:00 AM · Restricted Project
MatzeB added inline comments to D113123: [TwoAddressInstruction] Fix handling of operands tied to early-clobbers.
Mon, Nov 8, 8:57 AM · Restricted Project
MatzeB added a comment to D113123: [TwoAddressInstruction] Fix handling of operands tied to early-clobbers.

I can't shake the feeling that we would be better of having the convertToThreeAddress callback fix the liveness information like it is doing with LV, rather than guessing around after the fact with repairIntervalsInRange... Not sure what the original intention here was and if its fair to ask for that big refactoring now...

Mon, Nov 8, 8:55 AM · Restricted Project
MatzeB added a comment to D113116: [CodeGen] Fix assertion failure in TwoAddressInstructionPass::rescheduleMIBelowKill.

Let's fix the condition then this is good to go.

Mon, Nov 8, 8:44 AM · Restricted Project

Wed, Nov 3

MatzeB added a comment to D107355: [ptr_provenance] Introduce llvm.experimental.ptr.provenance.

Please document in the LLVM language reference.

Wed, Nov 3, 5:13 PM · Restricted Project
MatzeB added a comment to D111160: [UnknownProvenance] Add LLVM-IR support for unknown_provenance.

Please document this in the LLVM language reference! I for one have trouble following the discussions (since I didn't have the time to read all the C/C++ reports yet)

Wed, Nov 3, 5:12 PM · Restricted Project
MatzeB added inline comments to D113150: Lift VLIWResourceModel, VLIWMachineScheduler, and ConvergingVLIWScheduler into CodeGen/VLIWMachineScheduler.
Wed, Nov 3, 4:56 PM · Restricted Project
MatzeB added inline comments to D113150: Lift VLIWResourceModel, VLIWMachineScheduler, and ConvergingVLIWScheduler into CodeGen/VLIWMachineScheduler.
Wed, Nov 3, 4:53 PM · Restricted Project
MatzeB added a comment to D113150: Lift VLIWResourceModel, VLIWMachineScheduler, and ConvergingVLIWScheduler into CodeGen/VLIWMachineScheduler.

FWIW: I like how this carefully extends the existing scheduler interfaces without affecting the non-VLIW cases!

Wed, Nov 3, 4:41 PM · Restricted Project
MatzeB updated the diff for D112754: X86: Fold masked merge pattern when and-not is not available.

clang-format

Wed, Nov 3, 4:35 PM · Restricted Project
MatzeB added inline comments to D112754: X86: Fold masked merge pattern when and-not is not available.
Wed, Nov 3, 4:28 PM · Restricted Project
MatzeB updated the diff for D112754: X86: Fold masked merge pattern when and-not is not available.
  • pre-commit tests in separate diff.
  • move code to X86ISelLowering.cpp
Wed, Nov 3, 4:25 PM · Restricted Project
MatzeB requested review of D113151: Tests for D112754.
Wed, Nov 3, 4:24 PM · Restricted Project
MatzeB committed rG847a6807332b: X86InstrInfo: Support immediates that are +1/-1 different in… (authored by MatzeB).
X86InstrInfo: Support immediates that are +1/-1 different in…
Wed, Nov 3, 2:14 PM
MatzeB closed D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Wed, Nov 3, 2:13 PM · Restricted Project
MatzeB added a comment to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.

Thanks for confirming! Will re-commit the new version then.

Wed, Nov 3, 2:07 PM · Restricted Project
MatzeB added a comment to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.

I've reverted back to green in https://github.com/llvm/llvm-project/commit/a2a58d91e82db38fbdf88cc317dcb3753d79d492 until this can be fixed.

Wed, Nov 3, 10:26 AM · Restricted Project
MatzeB updated the diff for D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
  • Fix EFLAGS live-out not triggering, even though we need to update CC flags for ImmDelta != 0.
  • While on it rename IsSafe to the more descriptive FlagsMayLiveOut.
  • Added new tests opt_adjusted_imm_multiple_blocks, opt_adjusted_imm_multiple_blocks_noopt.
Wed, Nov 3, 10:25 AM · Restricted Project
MatzeB reopened D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Wed, Nov 3, 10:22 AM · Restricted Project
MatzeB added a comment to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.

Actually I think I see what is going wrong, let me attempt a fix in the next hours.

Wed, Nov 3, 9:02 AM · Restricted Project
MatzeB added a comment to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.

Thanks for reporting!

Wed, Nov 3, 9:01 AM · Restricted Project

Fri, Oct 29

MatzeB added a comment to D112852: [GlobalISel] Allow DBG_VALUE to use undefined vregs before LiveDebugValues.

Before we weaken the verifier, do we have an idea how much benefit we get from allowing these half-initialize vregs? Is searching for these DBG_VALUE at the end of GlobalISel and remove them there an option?

Fri, Oct 29, 5:14 PM · Restricted Project
MatzeB added a comment to D112852: [GlobalISel] Allow DBG_VALUE to use undefined vregs before LiveDebugValues.

No final verdict for this change yet. But you should try to use a more specific wording than "invalid vreg"; is it a vreg without definition?

Fri, Oct 29, 4:52 PM · Restricted Project
MatzeB added a reviewer for D112852: [GlobalISel] Allow DBG_VALUE to use undefined vregs before LiveDebugValues: qcolombet.
Fri, Oct 29, 4:51 PM · Restricted Project
MatzeB updated the diff for D112754: X86: Fold masked merge pattern when and-not is not available.

Address review feedback.

Fri, Oct 29, 2:03 PM · Restricted Project
MatzeB added a comment to D112754: X86: Fold masked merge pattern when and-not is not available.

Also, we have TargetLowering::hasAndNot - could we not use that and work to make this a generic combine?

Fri, Oct 29, 1:40 PM · Restricted Project

Oct 28 2021

MatzeB abandoned D109850: Implement SystemZIselLowering::hasAndNot.

I abandoned D109194 in favor of a SelectionDAG/X86 solution in D112754 so this is not necessary anymore to avoid regressions. Abandoning.

Oct 28 2021, 1:52 PM · Restricted Project
MatzeB abandoned D109194: [InstCombine] Canonicalize masked merge; optimize (a & b) | (~a & c).
Oct 28 2021, 1:50 PM · Restricted Project
MatzeB added a comment to D109194: [InstCombine] Canonicalize masked merge; optimize (a & b) | (~a & c).

Abandoning in favor of a SelectionDAG solution in D112754

Oct 28 2021, 1:50 PM · Restricted Project
MatzeB requested review of D112754: X86: Fold masked merge pattern when and-not is not available.
Oct 28 2021, 1:48 PM · Restricted Project
MatzeB committed rGe2c7ee074359: X86InstrInfo: Support immediates that are +1/-1 different in… (authored by MatzeB).
X86InstrInfo: Support immediates that are +1/-1 different in…
Oct 28 2021, 10:35 AM
MatzeB closed D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Oct 28 2021, 10:34 AM · Restricted Project
MatzeB committed rG97a1570d8c31: X86InstrInfo: Optimize more combinations of SUB+CMP (authored by MatzeB).
X86InstrInfo: Optimize more combinations of SUB+CMP
Oct 28 2021, 10:34 AM
MatzeB closed D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.
Oct 28 2021, 10:34 AM · Restricted Project

Oct 26 2021

MatzeB added inline comments to D92270: [ConstantFold] Fold more operations to poison.
Oct 26 2021, 2:01 PM · Restricted Project, Restricted Project

Oct 25 2021

MatzeB accepted D107582: [CodeGen] Fix dependence breaking for tied operands.

Thanks, LGTM

Oct 25 2021, 8:36 AM · Restricted Project
MatzeB updated the diff for D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.
Oct 25 2021, 8:28 AM · Restricted Project

Oct 24 2021

MatzeB updated the diff for D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.

Document new SrcReg2.isPhysical() test. (The test fixes a pre-existing bug though likely benign since nothing should actually use physical registers on CMP/SUB/TEST instructions that early in the codegen pipeline)

Oct 24 2021, 5:09 PM · Restricted Project
MatzeB added inline comments to D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.
Oct 24 2021, 5:03 PM · Restricted Project
MatzeB updated the diff for D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.
  • Rebased on precommitted tests.
  • Rewrite docu comment for isRedundantCompareInstr.
Oct 24 2021, 5:02 PM · Restricted Project
MatzeB committed rG19d3bc1e67b0: pre-comitting tests for D110865 (authored by MatzeB).
pre-comitting tests for D110865
Oct 24 2021, 4:44 PM
MatzeB committed rG4b75d674f899: X86InstrInfo: Look across basic blocks in optimizeCompareInstr (authored by MatzeB).
X86InstrInfo: Look across basic blocks in optimizeCompareInstr
Oct 24 2021, 4:44 PM
MatzeB committed rG683994c863b8: X86InstrInfo: Refactor and cleanup optimizeCompareInstr (authored by MatzeB).
X86InstrInfo: Refactor and cleanup optimizeCompareInstr
Oct 24 2021, 4:44 PM
MatzeB closed D110862: X86InstrInfo: Look across basic blocks in optimizeCompareInstr.
Oct 24 2021, 4:44 PM · Restricted Project
MatzeB closed D110857: X86InstrInfo: Refactor and cleanup optimizeCompareInstr.
Oct 24 2021, 4:44 PM · Restricted Project

Oct 22 2021

MatzeB added a comment to D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.

ping

Oct 22 2021, 10:18 AM · Restricted Project

Oct 18 2021

MatzeB added inline comments to D111397: Add new MachineFunction property FailsVerification.
Oct 18 2021, 2:03 PM · Restricted Project
MatzeB added a comment to D107582: [CodeGen] Fix dependence breaking for tied operands.

In order to move forward here, I am fine with the fix as-is in the meantime. I'll accept this after the nitpicks are addressed.

Oct 18 2021, 11:50 AM · Restricted Project
MatzeB added a comment to D107582: [CodeGen] Fix dependence breaking for tied operands.

The overall issue here is that this pass doesn't seem to correctly handle instructions with implicit defs and tied reg operands. One case of it was fixed in https://reviews.llvm.org/D4351 , and this tries to fix similar issue (see the end of the summary and the test case)

Oct 18 2021, 11:48 AM · Restricted Project
MatzeB added inline comments to rGa129932b0d45: [AMDGPU] Add link to bug.
Oct 18 2021, 9:25 AM
MatzeB added a comment to D107582: [CodeGen] Fix dependence breaking for tied operands.

@MatzeB Do you have any thoughts on this?

Oct 18 2021, 9:21 AM · Restricted Project

Oct 15 2021

MatzeB updated the diff for D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Oct 15 2021, 11:04 AM · Restricted Project
MatzeB updated the diff for D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Oct 15 2021, 11:03 AM · Restricted Project
MatzeB added inline comments to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Oct 15 2021, 11:02 AM · Restricted Project
MatzeB accepted D111872: Remove the verifyAfter mechanism that was replaced by D111397.

Very nice. LGTM!

Oct 15 2021, 10:35 AM · Restricted Project
MatzeB accepted D111397: Add new MachineFunction property FailsVerification.

LGTM

Oct 15 2021, 10:33 AM · Restricted Project

Oct 14 2021

MatzeB accepted D111688: [MachineSink] Compile time improvement for large testcases which has many kill flags.

Please shorten the title of this change!

Oct 14 2021, 2:45 PM · Restricted Project
MatzeB updated the diff for D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.

rebase; use APInt to compute maximum/minimum constants.

Oct 14 2021, 1:35 PM · Restricted Project
MatzeB added a comment to D111821: Generate a test shell script useful for remote execution.

Sure, I can do that if this is considered too invasive. However, I must admit also found it quite useful on my native host since it allowed my to easily run some basic profiling which is a bit harder with the lit script (perf record sh 445.gobmk.test.sh + perf report).

Oct 14 2021, 11:54 AM
MatzeB abandoned D110863: X86InstrInfo: Do not stop on flag users between flag producers.

Merged into D110857

Oct 14 2021, 11:04 AM · Restricted Project
MatzeB updated the diff for D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.

rebase

Oct 14 2021, 11:03 AM · Restricted Project
MatzeB added inline comments to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Oct 14 2021, 11:02 AM · Restricted Project
MatzeB added inline comments to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Oct 14 2021, 11:01 AM · Restricted Project
MatzeB updated the diff for D110862: X86InstrInfo: Look across basic blocks in optimizeCompareInstr.

rebase; update jump_sign.ll test

Oct 14 2021, 10:58 AM · Restricted Project
MatzeB added inline comments to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.
Oct 14 2021, 10:42 AM · Restricted Project
MatzeB added a comment to D111386: RFC: [Hexagon] Mark target as not "machine verifier clean".

One problem that came up is that the "BB Sections" pass runs before pre-emit2. This imposes restrictions on what kinds of optimizations we can run in pre-emit2. If we could move BB Sections until after pre-emit2, it would be a lot better for us.

Oct 14 2021, 10:19 AM · Restricted Project
MatzeB updated the diff for D110857: X86InstrInfo: Refactor and cleanup optimizeCompareInstr.

Merged with D110863 as suggested.

Oct 14 2021, 10:16 AM · Restricted Project
MatzeB added a comment to D111821: Generate a test shell script useful for remote execution.

Would it be possible to achieve something like this without making the cmake files more complicated. As is this adds complexity to TestFile.cmake for a use-case that others don't necessarily understand and know how to test.

Oct 14 2021, 10:11 AM
MatzeB added a comment to D110863: X86InstrInfo: Do not stop on flag users between flag producers.

LGTM - if you can it might be better to merge this into D110857?

Oct 14 2021, 9:26 AM · Restricted Project

Oct 13 2021

MatzeB added a comment to D110867: X86InstrInfo: Support immediates that are +1/-1 different in optimizeCompareInstr.

ping

Oct 13 2021, 5:16 PM · Restricted Project
MatzeB added a comment to D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.

Do we have such CMP + CMP cases in reality? I think optimization should merged them already. The only case I can think is eflags are clobbered, so that we have to def them again which can't be optimizated here either.

Oct 13 2021, 5:12 PM · Restricted Project
MatzeB added a comment to D110865: X86InstrInfo: Optimize more combinations of SUB+CMP.

ping

Oct 13 2021, 5:07 PM · Restricted Project
MatzeB added a comment to D110863: X86InstrInfo: Do not stop on flag users between flag producers.

ping

Oct 13 2021, 5:07 PM · Restricted Project
MatzeB added a comment to D110862: X86InstrInfo: Look across basic blocks in optimizeCompareInstr.

ping

Oct 13 2021, 5:07 PM · Restricted Project
MatzeB added a comment to D111688: [MachineSink] Compile time improvement for large testcases which has many kill flags.

huh... I guess the problem here was that we interpreted the register numbers as plain unsigned... And virtual registers always have bit 31 set, so I guess the bitset could indeed grow to unreasonable sizes.

Oct 13 2021, 10:55 AM · Restricted Project

Oct 12 2021

MatzeB added a comment to D61243: Check build-type dependent variables for -flto as well..

I wonder, why it's {C,CXX,LD}FLAGS, and not CMAKE_*_FLAGS directly.

Not sure, TBH.

Oct 12 2021, 2:57 PM · Restricted Project
MatzeB added a comment to D111397: Add new MachineFunction property FailsVerification.

This is an RFC to see if people like the idea.

Known issues:

  1. I'm not sure if the new "Verifies" property needs to be serialised in .mir files.

Yes I think so.

Oct 12 2021, 9:40 AM · Restricted Project
MatzeB added a comment to D111397: Add new MachineFunction property FailsVerification.

As discussed in https://reviews.llvm.org/D111386 I have a feeling that some targets can likely be improved by moving code from addPreEmitPass to addPreEmitPass2. But we should probably discuss this independently of this patch, since I have a feeling that one way or another we won't end up with 100% of things fixed.

Oct 12 2021, 9:35 AM · Restricted Project
MatzeB accepted D111618: [TwoAddressInstruction] Remove ad hoc machine verification.

LGTM

Oct 12 2021, 8:07 AM · Restricted Project