Page MenuHomePhabricator

xbolva00 (Dávid Bolvanský)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 5 2018, 5:18 PM (145 w, 4 d)

Recent Activity

Today

xbolva00 added inline comments to D94934: [llvm] Prevent infinite loop in InstCombine of select statements.
Mon, Jan 18, 2:53 PM · Restricted Project
xbolva00 added a comment to D94827: [SimplifyCFG] Require and preserve dominator tree.

Code complexity

Mon, Jan 18, 12:13 PM · Restricted Project, Restricted Project, Restricted Project
xbolva00 accepted D94904: [PostRASched] Regenerate Whole Test with update_llc_test_checks.py.
Mon, Jan 18, 3:50 AM · Restricted Project
xbolva00 added inline comments to D94904: [PostRASched] Regenerate Whole Test with update_llc_test_checks.py.
Mon, Jan 18, 3:45 AM · Restricted Project

Yesterday

xbolva00 added a comment to D94232: [LoopRotate] Add PrepareForLTO stage, avoid rotating with inline cands (WIP)..

Turns out the failing benchmarks are due to a miscompilation with -g3 (which we add to profiled runs). The patch does seem to make that miscompilation more likely. I'll try to reduce that separately, but at least I'll have some performance numbers shortly.

Sun, Jan 17, 2:26 PM · Restricted Project
xbolva00 committed rGed396212da41: [InstCombine] Transform abs pattern using multiplication to abs intrinsic… (authored by xbolva00).
[InstCombine] Transform abs pattern using multiplication to abs intrinsic…
Sun, Jan 17, 8:06 AM
xbolva00 closed D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691).
Sun, Jan 17, 8:06 AM · Restricted Project
xbolva00 committed rG469ceaf53892: [Tests] Add test for PR45691 (authored by xbolva00).
[Tests] Add test for PR45691
Sun, Jan 17, 8:05 AM
xbolva00 updated the diff for D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691).
Sun, Jan 17, 7:55 AM · Restricted Project
xbolva00 added inline comments to D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691).
Sun, Jan 17, 7:52 AM · Restricted Project
xbolva00 updated the diff for D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691).

Addressed review comments

Sun, Jan 17, 7:52 AM · Restricted Project
xbolva00 added a reviewer for D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691): nikic.
Sun, Jan 17, 6:49 AM · Restricted Project
xbolva00 updated the summary of D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691).
Sun, Jan 17, 6:49 AM · Restricted Project
xbolva00 updated the summary of D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691).
Sun, Jan 17, 6:48 AM · Restricted Project
xbolva00 requested review of D94874: [InstCombine] Transform abs pattern using multiplication to abs intrinsic (PR45691).
Sun, Jan 17, 6:48 AM · Restricted Project

Sat, Jan 16

xbolva00 committed rGbfd75bdf3fd6: [NFC] Removed extra text in comments (authored by xbolva00).
[NFC] Removed extra text in comments
Sat, Jan 16, 1:49 PM
xbolva00 committed rG63bedc80da36: [InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A… (authored by xbolva00).
[InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A…
Sat, Jan 16, 10:43 AM
xbolva00 closed D94870: [InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A | B) --> ~A.
Sat, Jan 16, 10:43 AM · Restricted Project
xbolva00 added inline comments to D94870: [InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A | B) --> ~A.
Sat, Jan 16, 10:13 AM · Restricted Project
xbolva00 committed rG416854d0f7cd: [InstSimplify] Precommit new testcases; NFC (authored by xbolva00).
[InstSimplify] Precommit new testcases; NFC
Sat, Jan 16, 10:12 AM
xbolva00 updated the diff for D94870: [InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A | B) --> ~A.

Simplify code.

Sat, Jan 16, 10:12 AM · Restricted Project
xbolva00 requested review of D94870: [InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A | B) --> ~A.
Sat, Jan 16, 9:32 AM · Restricted Project
xbolva00 committed rGbdd4dda58b0d: [InstSimplify] Update comments, remove redundant tests (authored by xbolva00).
[InstSimplify] Update comments, remove redundant tests
Sat, Jan 16, 7:32 AM
xbolva00 updated subscribers of rGa4e2a5145a29: [InstSimplify] Add (~A & B) | ~(A | B) --> ~A.

define i32 @src(i32 %A, i32 %B) {
%0:

%i = xor i32 %A, 4294967295
%i2 = and i32 %i, %B
%i3 = or i32 %B, %A
%i4 = xor i32 %i3, 4294967295
%i5 = or i32 %i2, %i4
ret i32 %i5

}

>

define i32 @tgt(i32 %A, i32 %B) {
%0:

%i = xor i32 %A, 4294967295
ret i32 %i

}
Transformation seems to be correct!

Sat, Jan 16, 6:55 AM
xbolva00 committed rGa4e2a5145a29: [InstSimplify] Add (~A & B) | ~(A | B) --> ~A (authored by xbolva00).
[InstSimplify] Add (~A & B) | ~(A | B) --> ~A
Sat, Jan 16, 6:54 AM
xbolva00 committed rG9fc814ed5966: [Tests] Added tests for new instcombine or simplification; NFC (authored by xbolva00).
[Tests] Added tests for new instcombine or simplification; NFC
Sat, Jan 16, 6:54 AM
xbolva00 added inline comments to D94366: [Clang] Emit mustprogress for infinite C++ loops.
Sat, Jan 16, 3:18 AM · Restricted Project
xbolva00 added inline comments to D94366: [Clang] Emit mustprogress for infinite C++ loops.
Sat, Jan 16, 3:14 AM · Restricted Project
xbolva00 added a reviewer for D90338: [SCEV] Infer addrec nowrap flags while calculating ranges (WIP): mkazantsev.
Sat, Jan 16, 1:41 AM · Restricted Project
xbolva00 added a reviewer for D90338: [SCEV] Infer addrec nowrap flags while calculating ranges (WIP): fhahn.
Sat, Jan 16, 1:36 AM · Restricted Project
xbolva00 added a comment to D90338: [SCEV] Infer addrec nowrap flags while calculating ranges (WIP).

Rebase?

Sat, Jan 16, 1:36 AM · Restricted Project

Fri, Jan 15

xbolva00 updated the diff for D94850: [BuildLibcalls] Mark some libcalls with inaccessiblememonly and inaccessiblemem_or_argmemonly.
Fri, Jan 15, 5:38 PM · Restricted Project
xbolva00 requested review of D94850: [BuildLibcalls] Mark some libcalls with inaccessiblememonly and inaccessiblemem_or_argmemonly.
Fri, Jan 15, 5:35 PM · Restricted Project
xbolva00 committed rGa1500105ee60: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull… (authored by xbolva00).
[SimplifyCFG] Optimize CFG when null is passed to a function with nonnull…
Fri, Jan 15, 2:54 PM
xbolva00 closed D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Fri, Jan 15, 2:54 PM · Restricted Project
xbolva00 added inline comments to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Fri, Jan 15, 12:41 PM · Restricted Project
xbolva00 updated the diff for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Addressed review comments

Fri, Jan 15, 12:40 PM · Restricted Project
xbolva00 updated the diff for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Addressed review comments.

Fri, Jan 15, 11:08 AM · Restricted Project
xbolva00 added a comment to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Any comments from @jdoerfert / @nikic ?

Fri, Jan 15, 9:55 AM · Restricted Project
xbolva00 retitled D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument from [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument. to [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Fri, Jan 15, 9:55 AM · Restricted Project

Thu, Jan 14

xbolva00 added a comment to D93779: ADT: Fix reference invalidation in SmallVector::push_back and single-element insert.

Why do we even want to bend over backwards and try to handle broken code correctly,
at the cost of regressed performance for everything,
instead of just adding defensive asserts against such problems,
and letting/telling the user fix the code?

I believe the standard library supports this, so I think it's a somewhat awkward limitation to have a standard-library-like container that misses that. (of course the small-mode isn't entirely compatible with std::vector, etc anyway - so some divergence is possible)

Thu, Jan 14, 9:32 AM · Restricted Project
xbolva00 updated subscribers of D93779: ADT: Fix reference invalidation in SmallVector::push_back and single-element insert.

Compile time regression is too big..

Thu, Jan 14, 7:55 AM · Restricted Project
xbolva00 added a comment to D94684: [InferAttrs] Mark some library functions as willreturn..

Looks ok.

Thu, Jan 14, 6:07 AM · Restricted Project

Wed, Jan 13

xbolva00 committed rGd307d892ade9: [Tests] Added test for memcpy loop idiom recognization (authored by xbolva00).
[Tests] Added test for memcpy loop idiom recognization
Wed, Jan 13, 5:56 AM

Tue, Jan 12

xbolva00 added a comment to D25987: [X86] New pattern to generate PSUBUS from SELECT.

Re-ping

Tue, Jan 12, 1:36 PM
xbolva00 added inline comments to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Tue, Jan 12, 12:17 PM · Restricted Project
xbolva00 updated the diff for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Simplified implementation.

Tue, Jan 12, 12:17 PM · Restricted Project
xbolva00 committed rG0529946b5baf: [instCombine] Add (A ^ B) | ~(A | B) -> ~(A & B) (authored by xbolva00).
[instCombine] Add (A ^ B) | ~(A | B) -> ~(A & B)
Tue, Jan 12, 10:29 AM
xbolva00 committed rGbb9ebf6baf70: [Tests] Add tests for new InstCombine OR transformation, NFC (authored by xbolva00).
[Tests] Add tests for new InstCombine OR transformation, NFC
Tue, Jan 12, 10:29 AM
xbolva00 added a comment to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Is this something what you propose, @nikic ?

Tue, Jan 12, 9:15 AM · Restricted Project
xbolva00 added a comment to D92015: [DAGCombiner] Fold BRCOND(FREEZE(COND)) to BRCOND(COND).

Seems ok to land?

Tue, Jan 12, 9:13 AM · Restricted Project

Sun, Jan 10

xbolva00 added a comment to D94376: [MemCpyOpt] Enable MemorySSA by default.

A larger than expected codesize and runtime regression of Bullet benchmark (2.3%) for LTO. Maybe worth to analyse?

Sun, Jan 10, 12:54 PM · Restricted Project
xbolva00 added a comment to D94367: [Clang][Driver] Add -ffinite-loops flags.

Just note: gcc enables -ffinite-loops with opt level -O2 and higher.

Sun, Jan 10, 8:43 AM · Restricted Project

Thu, Jan 7

xbolva00 updated the diff for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Introduce new extra bool argument to handle issue mentioned by @nikic

Thu, Jan 7, 10:31 AM · Restricted Project
xbolva00 added inline comments to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Thu, Jan 7, 9:39 AM · Restricted Project
xbolva00 added a comment to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
define void @test9_gep_mismatch(i1 %X, i8* %Y,  i8* %P) {
; CHECK-LABEL: @test9_gep_mismatch(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
; CHECK-NEXT:    [[GEP:%.*]] = getelementptr inbounds i8, i8* [[P:%.*]], i64 0
; CHECK-NEXT:    [[TMP0:%.*]] = call i8* @foo(i8* [[GEP]])
; CHECK-NEXT:    ret void
;
entry:
  br i1 %X, label %if, label %else
Thu, Jan 7, 9:33 AM · Restricted Project
xbolva00 added a comment to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Why only use GEPs? And it looks to me you only check the offset, doesn't that miscompile:
call(nonnull noundef (gep %p, 0)) which an arbitrary %p?

Thu, Jan 7, 9:21 AM · Restricted Project
xbolva00 updated the diff for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Avoid optimization if inner instruction is GEP.
Added test.

Thu, Jan 7, 9:21 AM · Restricted Project
xbolva00 added a comment to D86844: [LoopDeletion] Allows deletion of possibly infinite side-effect free loops.
int a, b;

int f(void) {
    while (1) {
        if (a != b) return 1;
    }
    return 0;
}

int g(int a, int b) {
    while (1) {
        if (a != b) return 1;
    }
    return 0;
}

LLVM does not catch these cases; gcc does.

https://godbolt.org/z/jW7son

Looks like must progress does not get added? If it gets added to the IR the loops get removed: https://godbolt.org/z/77v17P

I might be misunderstanding the standard here but since 1 is a non-zero constant expression, it can't be assumed to terminate by the implementation right? The relevant section from C11 at least is "An iteration statement whose controlling expression is not a constant expression that performs [explanation of what it deems as progress] may be assumed by the implementation to terminate" (C11 6.8.5 p6). I think these cases fall outside of the scope of this particular change ...

Thu, Jan 7, 9:07 AM · Restricted Project, Restricted Project
xbolva00 added inline comments to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Thu, Jan 7, 3:32 AM · Restricted Project
xbolva00 updated the diff for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Thu, Jan 7, 3:15 AM · Restricted Project
xbolva00 added a comment to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

For the example, I think this InstCombine transformation will work. noundef isn't necessary.

Thu, Jan 7, 3:00 AM · Restricted Project
xbolva00 added inline comments to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Thu, Jan 7, 3:00 AM · Restricted Project
xbolva00 updated the diff for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.

Restrict to nonnull+noundef.
Handle GEPs.

Thu, Jan 7, 2:59 AM · Restricted Project

Wed, Jan 6

xbolva00 added inline comments to D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Wed, Jan 6, 12:06 PM · Restricted Project
xbolva00 added a reviewer for D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument: jdoerfert.
Wed, Jan 6, 11:19 AM · Restricted Project
xbolva00 updated the summary of D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Wed, Jan 6, 9:30 AM · Restricted Project
xbolva00 requested review of D94180: [SimplifyCFG] Optimize CFG when null is passed to a function with nonnull argument.
Wed, Jan 6, 9:14 AM · Restricted Project
xbolva00 added a comment to D86844: [LoopDeletion] Allows deletion of possibly infinite side-effect free loops.

int a, b;

Wed, Jan 6, 5:08 AM · Restricted Project, Restricted Project
xbolva00 added a comment to D92812: [X86] Update tests for znver3.

Patch title should be adjusted I think

Wed, Jan 6, 2:20 AM · Restricted Project, Restricted Project, Restricted Project

Tue, Jan 5

xbolva00 added inline comments to D94065: [NFC] Make remaining cost functions in LoopVectorize.cpp use InstructionCost.
Tue, Jan 5, 4:55 AM · Restricted Project

Mon, Jan 4

xbolva00 added a reviewer for D94015: [LoopIdiom] Replace cttz loop by call to cttz intrinsic.: craig.topper.
Mon, Jan 4, 9:52 AM · Restricted Project

Sat, Jan 2

xbolva00 added a comment to D87464: [TargetLowering] Improve SimplifyDemandedBits for AND and OR.

Reping

Sat, Jan 2, 7:45 AM · Restricted Project

Thu, Dec 31

xbolva00 accepted D93952: [Clang][Misc] Fix fragile test.
Thu, Dec 31, 10:46 AM · Restricted Project
xbolva00 committed rGae69fa9b9f65: [InstCombine] Transform (A + B) - (A & B) to A | B (PR48604) (authored by xbolva00).
[InstCombine] Transform (A + B) - (A & B) to A | B (PR48604)
Thu, Dec 31, 6:05 AM
xbolva00 committed rGc1937c2af2a0: [NFC] Added/adjusted tests for PR48604; second pattern (authored by xbolva00).
[NFC] Added/adjusted tests for PR48604; second pattern
Thu, Dec 31, 6:05 AM
xbolva00 committed rG742ea77ca4c0: [InstCombine] Transform (A + B) - (A | B) to A & B (PR48604) (authored by xbolva00).
[InstCombine] Transform (A + B) - (A | B) to A & B (PR48604)
Thu, Dec 31, 5:04 AM
xbolva00 committed rG9b6493946307: [NFC] Added tests for PR48604 (authored by xbolva00).
[NFC] Added tests for PR48604
Thu, Dec 31, 5:03 AM

Wed, Dec 30

xbolva00 added a comment to D86844: [LoopDeletion] Allows deletion of possibly infinite side-effect free loops.

Do you plan to implement gcc’s option in Clang as followup?

Wed, Dec 30, 10:17 PM · Restricted Project, Restricted Project

Mon, Dec 28

xbolva00 added a comment to D93764: [LoopUnswitch] Implement first version of partial unswitching..
Mon, Dec 28, 8:32 PM · Restricted Project
xbolva00 added a comment to D93764: [LoopUnswitch] Implement first version of partial unswitching..

GCC has separate pass for this - loopsplit. It can handle also general case like:

Mon, Dec 28, 1:19 AM · Restricted Project

Sun, Dec 27

xbolva00 added a reviewer for D93838: [LLVM] [SCCP] [WIP] : Add Function Specialization pass: jdoerfert.
Sun, Dec 27, 9:39 AM · Restricted Project
xbolva00 added a comment to D93838: [LLVM] [SCCP] [WIP] : Add Function Specialization pass.

Great! So something like gcc function spliting/cloning? (It would be good to support noipa, noclone to disable this optimalization)

Sun, Dec 27, 9:32 AM · Restricted Project

Fri, Dec 25

xbolva00 added inline comments to rG35676a4f9a53: [InstCombine] Generalize icmp handling in isKnownNonZero().
Fri, Dec 25, 8:27 AM

Thu, Dec 24

xbolva00 accepted D93803: Moved dwarf_eh_resume.ll from Generic to X86 folder.
Thu, Dec 24, 5:04 AM · Restricted Project
xbolva00 added inline comments to D93682: [CodeGen] Add "noreturn" attirbute to _Unwind_Resume.
Thu, Dec 24, 4:45 AM · Restricted Project
xbolva00 accepted D93682: [CodeGen] Add "noreturn" attirbute to _Unwind_Resume.

noreturn makes sense here

Thu, Dec 24, 12:19 AM · Restricted Project

Wed, Dec 23

xbolva00 added a comment to D86844: [LoopDeletion] Allows deletion of possibly infinite side-effect free loops.

Can you reland this patch now?

Wed, Dec 23, 6:20 PM · Restricted Project, Restricted Project

Tue, Dec 22

xbolva00 added a comment to D93682: [CodeGen] Add "noreturn" attirbute to _Unwind_Resume.

Please add a test

Tue, Dec 22, 3:09 AM · Restricted Project

Dec 15 2020

xbolva00 added a comment to D30686: [SLP] PR32078: convert scalar operations to vector..

Michael, tried to implement it in InstCombiner, but we need cost analysis. Later passes are not suitable for this, because we need transformed code in InstCombiner. So, reopened it.

Dec 15 2020, 7:40 PM
xbolva00 added a comment to D91919: [SLP] Make SLPVectorizer to use `llvm.masked.scatter` intrinsic.

Please add tests

Dec 15 2020, 7:37 PM · Restricted Project

Dec 14 2020

xbolva00 added a comment to D93192: [SLP] Fix vector element size for the store chains.

Kinda big impact on code size

Dec 14 2020, 6:20 AM · Restricted Project

Dec 12 2020

xbolva00 added a comment to rGafbb6d97b501: [CVP] Simplify and generalize switch handling.

Suspicious code size regression (npm -03)

Dec 12 2020, 5:43 PM

Dec 11 2020

xbolva00 added a comment to D93065: [InstCombine] Disable optimizations of select instructions that causes propagation of poison values.

Performance data? No regressions for benchmarks?

Dec 11 2020, 11:16 PM · Restricted Project, Restricted Project

Dec 10 2020

xbolva00 added a comment to D74436: Change clang option -ffp-model=precise to select ffp-contract=on.

Status?

Dec 10 2020, 9:24 PM · Restricted Project

Dec 8 2020

xbolva00 added a comment to D88471: [Passes] Run peeling as part of simple/full loop unrolling..

Are you gonna land this patch?

Dec 8 2020, 8:08 PM · Restricted Project
xbolva00 committed rG5da71a4274ac: [NFC] Added test for PR33549 (authored by xbolva00).
[NFC] Added test for PR33549
Dec 8 2020, 6:22 PM
xbolva00 added a comment to D92824: [SLP] Use the width of value truncated just before storing.

Thanks!

Dec 8 2020, 2:07 AM · Restricted Project
xbolva00 added reviewers for D91919: [SLP] Make SLPVectorizer to use `llvm.masked.scatter` intrinsic: fhahn, dmgreen.
Dec 8 2020, 1:54 AM · Restricted Project

Dec 6 2020

xbolva00 added a reviewer for D50010: [VNCoercion] Disallow coercion between different ni addrspaces: efriedma.
Dec 6 2020, 12:53 PM · Restricted Project, Restricted Project