nikic (Nikita Popov)
User

Projects

User does not belong to any projects.

User Details

User Since
May 5 2018, 9:37 AM (27 w, 3 d)

Recent Activity

Today

nikic created D54471: [SelectionDAG] Support differing src and dst alignments for memcpy/memmove.
Tue, Nov 13, 6:39 AM
nikic added a reviewer for D54419: Preserve MachinePointerInfo offset for unknown base values: bogner.

Not sure who to assign for review, so I added the SelectionDAG code owner.

Tue, Nov 13, 2:45 AM

Yesterday

nikic created D54419: Preserve MachinePointerInfo offset for unknown base values.
Mon, Nov 12, 3:12 AM

Sun, Nov 11

nikic updated the diff for D54274: Constant folding and instcombine for saturating subs.

Rebase over APInt patch, implement new undef folds with zero result.

Sun, Nov 11, 2:33 AM
nikic updated the diff for D54237: Constant folding and instcombine for saturating adds.

Rebase on separate APInt patch.

Sun, Nov 11, 2:31 AM
nikic added a comment to D54237: Constant folding and instcombine for saturating adds.

Is it perhaps "better" to fold sadd_sat(X, undef) -> 0 And uadd_sat(X, undef) -> MaxValue if we want to get rid of undef here? That way we get rid of the X operand as well.

Sun, Nov 11, 2:20 AM

Fri, Nov 9

nikic created D54332: [APInt] Add methods for saturated add and sub.
Fri, Nov 9, 9:59 AM
nikic updated the diff for D54274: Constant folding and instcombine for saturating subs.

Simplify sat(X - undef) -> X for symmetry with the add simplification.

Fri, Nov 9, 2:39 AM
nikic updated the diff for D54237: Constant folding and instcombine for saturating adds.

Add simplify for X + undef -> X.

Fri, Nov 9, 2:33 AM

Thu, Nov 8

nikic updated the diff for D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled).

Rebase patch to current master.

Thu, Nov 8, 2:56 PM
nikic added a comment to D54237: Constant folding and instcombine for saturating adds.

I've added an implementation for saturating subs in D54274. Please tell me if I should combine the changes into this one instead.

Thu, Nov 8, 2:07 PM
nikic added a dependency for D54274: Constant folding and instcombine for saturating subs: D54237: Constant folding and instcombine for saturating adds.
Thu, Nov 8, 2:02 PM
nikic added a dependent revision for D54237: Constant folding and instcombine for saturating adds: D54274: Constant folding and instcombine for saturating subs.
Thu, Nov 8, 2:02 PM
nikic created D54274: Constant folding and instcombine for saturating subs.
Thu, Nov 8, 2:01 PM
nikic updated the diff for D54237: Constant folding and instcombine for saturating adds.

Improve control-flow in APInt implementation, fix typo in comment.

Thu, Nov 8, 11:59 AM
nikic added inline comments to D54237: Constant folding and instcombine for saturating adds.
Thu, Nov 8, 2:30 AM
nikic updated the diff for D54237: Constant folding and instcombine for saturating adds.

Address style comments, move trivial transforms to InstructionSimplify, add APInt unit test, move code for overflow information based checks outside the condition for a constant operand (duh).

Thu, Nov 8, 2:26 AM
nikic added a comment to D54237: Constant folding and instcombine for saturating adds.

// X + undef -> undef

// undef + X -> undef
if (match(Op1, m_Undef()) || match(Op0, m_Undef()))
  return UndefValue::get(ReturnType);
Thu, Nov 8, 1:40 AM

Wed, Nov 7

nikic created D54237: Constant folding and instcombine for saturating adds.
Wed, Nov 7, 4:18 PM
nikic added a comment to D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled).

Ping

Wed, Nov 7, 1:28 AM

Tue, Oct 30

nikic added a comment to D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled).

As I don't have commit rights, could you please commit D53262, D53271 and this revision?

Tue, Oct 30, 3:24 PM

Mon, Oct 29

nikic updated the diff for D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled).

Added comment about thunk/alias checks for the weak-weak case. Also renamed the function H to NewF, because I think this makes it slightly more obvious what is going on in that case.

Mon, Oct 29, 3:19 AM
nikic added inline comments to D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled).
Mon, Oct 29, 2:23 AM

Fri, Oct 26

nikic added inline comments to D51664: [IR] Lazily number instructions for local dominance queries.
Fri, Oct 26, 2:08 PM

Wed, Oct 24

nikic added a dependent revision for D53271: [MergeFuncs] Improve ordering of equal functions: D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled).
Wed, Oct 24, 1:27 PM
nikic added a dependency for D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled): D53271: [MergeFuncs] Improve ordering of equal functions.
Wed, Oct 24, 1:27 PM

Wed, Oct 17

nikic added a comment to D53262: [MergeFuncs] Call removeUsers() prior to unnamed_addr RAUW.

@whitequark I don't have commit access, could I ask you to land this patch?

Wed, Oct 17, 6:36 AM

Mon, Oct 15

nikic created D53285: [MergeFuncs] Generate alias instead of thunk if possible (default disabled).
Mon, Oct 15, 5:17 AM
nikic created D53271: [MergeFuncs] Improve ordering of equal functions.
Mon, Oct 15, 1:49 AM

Oct 14 2018

nikic updated the diff for D53262: [MergeFuncs] Call removeUsers() prior to unnamed_addr RAUW.

Remove some trailing semicolons in the test file ... hard to break that habit.

Oct 14 2018, 1:01 PM
nikic created D53262: [MergeFuncs] Call removeUsers() prior to unnamed_addr RAUW.
Oct 14 2018, 12:58 PM

Jun 7 2018

nikic added a comment to D47807: Make uitofp and sitofp defined on overflow..

Rust currently generates additional code for u128 to f32 casts to work around this problem (see https://github.com/rust-lang/rust/blob/c131bdcaff68d35f96e954baac4340206779335f/src/librustc_codegen_llvm/mir/rvalue.rs#L795). Making this defined would allow directly using uitofp, so this would be a welcome change.

Jun 7 2018, 2:30 AM

Jun 5 2018

nikic added inline comments to D47339: [GVN,NewGVN] Keep nonnull if K does not move..
Jun 5 2018, 3:39 AM

May 21 2018

nikic added a comment to D47143: [InstrSimplify,NewGVN] Add option to ignore additional instr info when simplifying..

For reference, another bug relating to NewGVN + Simplify is https://bugs.llvm.org/show_bug.cgi?id=34093. In that case it's not a matter of metadata, but an equivalence that was established based on predicateinfo is assumed to hold prior to the corresponding ssa.copy, resulting in incorrect simplification.

May 21 2018, 2:17 PM
nikic added a comment to D47143: [InstrSimplify,NewGVN] Add option to ignore additional instr info when simplifying..

@fhahn It's probably not feasible to remove metadata or explicitly pass merged metadata as the relevant metadata may be somewhere further up the chain. E.g. we might not be looking at ICmp(Load, null) but at something like ICmp(BitCast(GEP(Load)), null), which will probably be subject to the same issues, as these checks are recursive.

May 21 2018, 2:06 PM
nikic added a comment to D47143: [InstrSimplify,NewGVN] Add option to ignore additional instr info when simplifying..

This is going to affect more than only nonnull metadata. For example the same issue can also be reproduced using range metadata:

May 21 2018, 9:08 AM
nikic added a comment to D46974: [NewGVN] Fix handling of assumes.

I don't have commit access, could someone please commit this patch?

May 21 2018, 8:11 AM

May 17 2018

nikic updated the diff for D47010: [NewGVN] Minor cleanups.

Address nit.

May 17 2018, 6:03 AM
nikic created D47010: [NewGVN] Minor cleanups.
May 17 2018, 4:49 AM

May 16 2018

nikic created D46974: [NewGVN] Fix handling of assumes.
May 16 2018, 12:45 PM

May 13 2018

nikic updated the summary of D46804: Fix merging of small weak functions.
May 13 2018, 7:11 AM
nikic created D46804: Fix merging of small weak functions.
May 13 2018, 7:10 AM

May 9 2018

nikic updated the diff for D46495: Fix assertion in FunctionComparator::cmpInlineAsm.

Sorry, I misunderstood your previous comment and thought you were referring to the return type. I've added two variants to the test now, one where a non-null argument is used and it can be merged and one where it can't be merged.

May 9 2018, 3:37 AM
nikic updated the diff for D46495: Fix assertion in FunctionComparator::cmpInlineAsm.

Updated test to test both different pointer types as inline asm argument types and return types.

May 9 2018, 3:04 AM

May 5 2018

nikic created D46495: Fix assertion in FunctionComparator::cmpInlineAsm.
May 5 2018, 11:11 AM