Page MenuHomePhabricator

nlewycky (Nick Lewycky)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 12 2013, 12:05 AM (336 w, 1 h)

Recent Activity

Jan 2 2018

nlewycky added a comment to D40850: suppress undefined-template warnings when the pattern is declared in a system header.

Ping!

Jan 2 2018, 10:57 AM

Dec 5 2017

nlewycky created D40850: suppress undefined-template warnings when the pattern is declared in a system header.
Dec 5 2017, 12:24 PM

Sep 25 2017

nlewycky added inline comments to D37581: Implement pagerando wrapper functions to initialize POT register.
Sep 25 2017, 11:18 AM

May 15 2017

nlewycky added a comment to D31839: make -Winteger-overflow find overflows in function arguments.

Ping!

May 15 2017, 1:47 PM

May 9 2017

nlewycky added a comment to D31839: make -Winteger-overflow find overflows in function arguments.

Ping!

May 9 2017, 9:52 AM

May 1 2017

nlewycky updated the summary of D31839: make -Winteger-overflow find overflows in function arguments.
May 1 2017, 9:31 PM

Apr 30 2017

nlewycky updated the diff for D31839: make -Winteger-overflow find overflows in function arguments.

Use an RAII object to always evaluate the arguments, except if HandleFunctionCall does it.

Apr 30 2017, 7:04 PM

Apr 29 2017

nlewycky created D32675: in expression evaluator, treat non-literal types as discarded value expressions if EvalInfo says to continue evaluating them.
Apr 29 2017, 11:08 PM

Apr 28 2017

nlewycky updated the diff for D32412: analyze all kinds of expressions for integer overflow.

[No changes, just full context this time.]

Apr 28 2017, 6:36 PM
nlewycky added a comment to D32412: analyze all kinds of expressions for integer overflow.

If we're now catching integer overflow in more cases, please add some relevant testcases.

Apr 28 2017, 6:15 PM
nlewycky updated the diff for D32412: analyze all kinds of expressions for integer overflow.

Rebase. Now that ObjCBoxedExpr change is in, we can remove Sema::CheckForIntOverflow entirely.

Apr 28 2017, 6:10 PM
nlewycky updated the diff for D32410: change the way the expr evaluator handles objcboxedexpr.

If the boxing method can't be constexpr then we can never evaluate it for a constant value, which means that we should unconditionally return Error, and use noteFailure to decide whether to visit the subexpr.

Apr 28 2017, 4:35 PM

Apr 24 2017

nlewycky created D32455: detect integer overflow inside arms of conditional operator with non-constant expression.
Apr 24 2017, 2:56 PM

Apr 23 2017

nlewycky created D32412: analyze all kinds of expressions for integer overflow.
Apr 23 2017, 8:06 PM
nlewycky retitled D32410: change the way the expr evaluator handles objcboxedexpr from change the way objcboxedexpr is handled to change the way the expr evaluator handles objcboxedexpr.
Apr 23 2017, 3:55 PM
nlewycky created D32410: change the way the expr evaluator handles objcboxedexpr.
Apr 23 2017, 3:53 PM
nlewycky updated subscribers of D32405: Expr evaluator may want to continue into ArraySubscriptExpr if evaluation mode indicates.
Apr 23 2017, 1:43 PM
nlewycky created D32405: Expr evaluator may want to continue into ArraySubscriptExpr if evaluation mode indicates.
Apr 23 2017, 1:42 PM

Apr 11 2017

nlewycky added a comment to D31839: make -Winteger-overflow find overflows in function arguments.

OK, thanks for looking into it. Warnings for ObjCMessageExpr can probably be implemented in a separate patch.

It looks like clang still doesn't issue overflow warnings when the called functions have a void return. Should we try to fix it in this patch too?

void foo(int);

void test0() {
  foo(4068 * 1024 * 1024); // no warnings
}
Apr 11 2017, 10:50 PM
nlewycky added a comment to D31839: make -Winteger-overflow find overflows in function arguments.

Is it possible to fix ObjCMessageExpr too while you are in here?

Apr 11 2017, 5:32 PM

Apr 7 2017

nlewycky created D31839: make -Winteger-overflow find overflows in function arguments.
Apr 7 2017, 7:21 PM

Feb 13 2017

nlewycky created D29915: emit constant expression for new expression array size if it is one.
Feb 13 2017, 3:24 PM

Sep 30 2016

nlewycky added a comment to D6487: Add more opportunities for constant folding in ScalarEvolution..

It looks like I LGTM'd it with comments that aren't resolved. If you don't have commit access, please upload a version which I can commit for you with no changes. Usually I LGTM+comments with the expectation that you can resolve the comments and commit without going through another round of review.

Sep 30 2016, 4:20 PM

Sep 18 2016

nlewycky updated subscribers of D24712: Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull..
Sep 18 2016, 3:13 PM
nlewycky retitled D24712: Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull. from to Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull..
Sep 18 2016, 3:06 PM

Sep 16 2016

nlewycky added a comment to D24680: Jump threading: avoid trying to split edge into landingpad block (PR27840).

I'm concerned that the fix is too narrow. There's 10 callers to llvm::SplitEdge in LLVM and haven't audited them so I don't know whether they also check whether they also do this check. It's certainly not in the comment on SplitEdge that it's allowed to assert if you pass it a landing pad block.

Sep 16 2016, 4:22 PM

Aug 31 2016

nlewycky updated the diff for D23734: Add -fprofile-dir= to clang..
Aug 31 2016, 2:36 PM

Aug 30 2016

nlewycky added inline comments to D23734: Add -fprofile-dir= to clang..
Aug 30 2016, 4:18 PM
nlewycky updated the diff for D23734: Add -fprofile-dir= to clang..
Aug 30 2016, 4:18 PM

Aug 29 2016

nlewycky added a comment to D23734: Add -fprofile-dir= to clang..

I think the review this patch really needs is a comparison to GCC's implementation to double-check that it really does the same thing that GCC does. Is there a gcov user who could take a look at this?

Aug 29 2016, 2:38 PM

Aug 19 2016

nlewycky updated the diff for D23734: Add -fprofile-dir= to clang..

Forgot clang changes!

Aug 19 2016, 6:19 PM
nlewycky retitled D23734: Add -fprofile-dir= to clang. from to Add -fprofile-dir= to clang..
Aug 19 2016, 6:17 PM

Aug 9 2016

nlewycky added a comment to D22900: Revert r244207 - Mark calls in thunk functions as tail-call optimization.

For the IR level, I think this has got to be valid:

Aug 9 2016, 11:27 AM

Jun 14 2016

nlewycky closed D21352: Add a "declared 'nonnull' here" note to warnings where an expression is checked against null..

Closed by r272755.

Jun 14 2016, 10:25 PM
nlewycky retitled D21352: Add a "declared 'nonnull' here" note to warnings where an expression is checked against null. from to Add a "declared 'nonnull' here" note to warnings where an expression is checked against null..
Jun 14 2016, 2:37 PM

Apr 27 2016

nlewycky added inline comments to D19586: Misleading Indentation check.
Apr 27 2016, 1:16 PM

Apr 20 2016

nlewycky added inline comments to D19341: Add micro-optimization for 'icmp slt (or A, B), A' to instsimplify..
Apr 20 2016, 3:06 PM
nlewycky updated the diff for D19341: Add micro-optimization for 'icmp slt (or A, B), A' to instsimplify..

Move the m_c_Op pattern matches out of ValueTracking.cpp and into PatternMatch.h. Reuse m_c_Or to simplify the new logic in InstructionSimplify.

Apr 20 2016, 3:04 PM
nlewycky updated the diff for D19341: Add micro-optimization for 'icmp slt (or A, B), A' to instsimplify..

Added testcase which I forgot to include the first time.

Apr 20 2016, 2:25 PM
nlewycky retitled D19341: Add micro-optimization for 'icmp slt (or A, B), A' to instsimplify. from to Add micro-optimization for 'icmp slt (or A, B), A' to instsimplify..
Apr 20 2016, 2:24 PM

Mar 3 2016

nlewycky accepted D17847: [SemaExprCXX] Avoid calling isInSystemHeader for invalid source locations.
Mar 3 2016, 9:59 AM

Feb 8 2016

nlewycky added a comment to rL259986: New Loop Versioning LICM Pass.

Just found this linked to from llvm weekly, and was wondering whether this works on the testcase in PR11331 and the dupes of that bug.

Feb 8 2016, 4:22 PM

Feb 5 2016

nlewycky requested changes to D16908: Add a test case to show isKnownNonZero() returns correctly; NFC.

What about a ConstantExpr like "and(ptrtoint(@global), 32)"? We don't know the 5th bit of the address of @global, so C->isZeroValue() returns false (since we don't know it's zero), but isKnownNonZero must also return false (since we don't know it's non-zero). With your patch, we would incorrectly return true.

Feb 5 2016, 10:29 AM

Feb 1 2016

nlewycky accepted D14476: [LVI] Introduce an intersect operation on lattice values.

Spiffy!

Feb 1 2016, 7:14 PM
nlewycky added inline comments to D14476: [LVI] Introduce an intersect operation on lattice values.
Feb 1 2016, 5:02 PM

Jan 4 2016

nlewycky added a comment to D15861: Support fully-qualified names for all QualTypes.

(I'm not doing a full review, I just happened to notice a couple things when skimming.)

Jan 4 2016, 1:04 PM

Dec 8 2015

nlewycky added inline comments to D13606: [Introduction] Redundant load reduction with invariant intrinsics.
Dec 8 2015, 9:47 PM
nlewycky added inline comments to D15135: Extend the use of @llvm.invariant.start/end intrinsics for GVN-based load elimination purposes to also handle global variables..
Dec 8 2015, 9:44 PM
nlewycky added inline comments to D15124: Use @llvm.invariant.start/end intrinsics to extend basic AA with invariant range analysis for GVN-based load elimination purposes [Local objects only].
Dec 8 2015, 8:55 PM

Nov 10 2015

nlewycky added inline comments to D14476: [LVI] Introduce an intersect operation on lattice values.
Nov 10 2015, 2:02 PM

Nov 8 2015

nlewycky added a comment to D14009: Handle info about the processing of invariant intrinsics....

This is overlapping with D14003?

Nov 8 2015, 4:26 PM
nlewycky added inline comments to D14003: Express and handle specific info about the processing of invariant intrinsics.
Nov 8 2015, 4:23 PM
nlewycky added a comment to D14004: Use the new 'InvariantInfo' property to eliminate redundant loads with --gvn..

This adds a call to "processInvariantIntrinsic" in GVN.cpp, but there is no such function and it isn't defined in this patch?

Nov 8 2015, 4:13 PM
nlewycky added a comment to D14007: Load elimination based on new 'InvarantInfo' property for global variables..

I've been thinking about this patch and I don't understand what change you're trying to make at a high level.

Nov 8 2015, 4:06 PM
nlewycky added a comment to D14005: Use the new 'InvariantInfo' property to eliminate redundant loads with --instcombine.

Patch needs testcases.

Nov 8 2015, 4:00 PM

Nov 3 2015

nlewycky added inline comments to rL251387: [coroutines] Creation of promise object, lookup of operator co_await, building.
Nov 3 2015, 7:01 PM

Nov 2 2015

nlewycky accepted D14271: [CVP] Fold return values if possible.

Forgot to LGTM

Nov 2 2015, 10:28 PM
nlewycky added inline comments to D14271: [CVP] Fold return values if possible.
Nov 2 2015, 6:04 PM

Oct 27 2015

nlewycky added a comment to D14107: [SelectionDAG] Don't inspect !range metadata for extended loads.

I'm okay with either or both of changing existing testcases because of this change (ie., to represent the slightly weaker optimization) and/or adding a new testcase to ensure we don't get this exact thing wrong. I just didn't want it to go in with no change to the tests at all.

Oct 27 2015, 11:26 AM
nlewycky added a comment to D14107: [SelectionDAG] Don't inspect !range metadata for extended loads.

That is one big function.

Oct 27 2015, 9:50 AM
nlewycky accepted D14100: [ValueTracking] Use !range metadata more aggressively in KnownBits.

LGTM

Oct 27 2015, 9:47 AM

Oct 19 2015

nlewycky added inline comments to D13606: [Introduction] Redundant load reduction with invariant intrinsics.
Oct 19 2015, 8:49 PM

Oct 16 2015

nlewycky accepted D13685: [SCEV] Commute sign extends through nsw additions.

LGTM, but please do the obvious thing with zext too. I don't feel like the zext tests will need my review, but you can ask me to look at them if you feel otherwise. Thanks for the patch!

Oct 16 2015, 4:23 PM
nlewycky added inline comments to D13685: [SCEV] Commute sign extends through nsw additions.
Oct 16 2015, 3:47 PM
nlewycky accepted D13612: [IR] Add a `makeNoWrapRegion` method to `ConstantRange`.

LGTM

Oct 16 2015, 2:23 PM
nlewycky added inline comments to D13612: [IR] Add a `makeNoWrapRegion` method to `ConstantRange`.
Oct 16 2015, 1:55 PM

Oct 12 2015

nlewycky added inline comments to D13677: [IR] Fix bug in `ConstantRange::intersectWith`.
Oct 12 2015, 5:06 PM
nlewycky added inline comments to D13612: [IR] Add a `makeNoWrapRegion` method to `ConstantRange`.
Oct 12 2015, 5:00 PM
nlewycky added inline comments to D13612: [IR] Add a `makeNoWrapRegion` method to `ConstantRange`.
Oct 12 2015, 12:51 PM

Oct 9 2015

nlewycky added a comment to D13612: [IR] Add a `makeNoWrapRegion` method to `ConstantRange`.

The logic looks correct, and I really like the test!

Oct 9 2015, 6:09 PM
nlewycky added inline comments to D13606: [Introduction] Redundant load reduction with invariant intrinsics.
Oct 9 2015, 3:16 PM

Oct 1 2015

nlewycky added a comment to D13373: Emiting invariant.group.barrier for ctors bugfix.

I can't meaningfully review this, but I see nothing wrong here.

Oct 1 2015, 6:54 PM
nlewycky accepted D12992: invariant.group handling in GVN.

LGTM, thanks for the extensive gvn test!

Oct 1 2015, 12:59 PM

Sep 29 2015

nlewycky added inline comments to D12992: invariant.group handling in GVN.
Sep 29 2015, 2:21 PM

Sep 18 2015

nlewycky accepted D12886: Clean up: Refactoring the hardcoded value of 6 for FindAvailableLoadedValue()'s parameter MaxInstsToScan..

LGTM with changes.

Sep 18 2015, 9:48 AM

Sep 15 2015

nlewycky added a comment to D12095: propagate fast-math-flags on DAG nodes.

I just noticed that I'm listed as a reviewer here. I'm not familiar enough
with this are of llvm to review this patch. Do you need me to patch it in
and try it out?

Sep 15 2015, 4:27 PM
nlewycky added a comment to D12886: Clean up: Refactoring the hardcoded value of 6 for FindAvailableLoadedValue()'s parameter MaxInstsToScan..

A few unconnected issues:

Sep 15 2015, 4:06 PM
nlewycky accepted D12875: Stripping invariant.group metadata in CodeGenPrepare.

LGTM

Sep 15 2015, 9:49 AM
nlewycky added a comment to D12310: Introducing llvm.invariant.group.barrier intrinsic.

Is there a LangRef change that introduces the barrier? If that's simply in a different review, then LGTM. Usually I'd ask for the feature and the LangRef change to land together, but it also makes sense to put the LangRef update for !invariant.group and @llvm.invariant.group.barrier together.

Sep 15 2015, 8:41 AM

Sep 11 2015

nlewycky accepted D12820: [MergeFuncs] Fix bug in merging GetElementPointers.

LGTM

Sep 11 2015, 4:14 PM

Sep 8 2015

nlewycky added inline comments to D12719: ScalarEvolution assume hanging bugfix.
Sep 8 2015, 8:12 PM
nlewycky added inline comments to D12719: ScalarEvolution assume hanging bugfix.
Sep 8 2015, 8:01 PM
nlewycky added inline comments to D11399: invariant.group and invariant.group.barrier docs.
Sep 8 2015, 1:50 PM
nlewycky added inline comments to D12310: Introducing llvm.invariant.group.barrier intrinsic.
Sep 8 2015, 11:16 AM

Sep 2 2015

nlewycky added a comment to D12516: Const propagation after hitting assume bugfix 2.

Forgot to write LGTM when I accepted revision.

Sep 2 2015, 11:18 AM
nlewycky accepted D12516: Const propagation after hitting assume bugfix 2.
Sep 2 2015, 11:18 AM
nlewycky added a comment to D12516: Const propagation after hitting assume bugfix 2.

Typo in summary, "There was ifinite loop" should say "infinite".

Sep 2 2015, 10:15 AM

Aug 27 2015

nlewycky accepted D12170: Const propagatin after hitting assume bugfix.

LGTM

Aug 27 2015, 1:58 PM

Aug 24 2015

nlewycky accepted D12266: Assume intrinsic handling in globalopt.

This looks correct, but probably not enough.

Aug 24 2015, 5:10 PM

Aug 19 2015

nlewycky added inline comments to D12139: Add 'strlen' formation to LoopIdiomRecognize.
Aug 19 2015, 2:46 PM

Aug 18 2015

nlewycky retitled D12139: Add 'strlen' formation to LoopIdiomRecognize from to Add 'strlen' formation to LoopIdiomRecognize.
Aug 18 2015, 11:56 PM

Aug 17 2015

nlewycky accepted D11918: Constant propagation after hiting assume(icmp).

LGTM

Aug 17 2015, 8:51 PM
nlewycky added inline comments to D11918: Constant propagation after hiting assume(icmp).
Aug 17 2015, 8:37 PM
nlewycky added inline comments to D11918: Constant propagation after hiting assume(icmp).
Aug 17 2015, 5:09 PM

Aug 10 2015

nlewycky added inline comments to D11918: Constant propagation after hiting assume(icmp).
Aug 10 2015, 1:32 PM

Aug 3 2015

nlewycky accepted D11732: Rewrite tail recursion as loop.
Aug 3 2015, 2:16 PM

Jul 21 2015

nlewycky added inline comments to D11399: invariant.group and invariant.group.barrier docs.
Jul 21 2015, 6:38 PM

Jul 20 2015

nlewycky accepted D11200: Improve merging of stores from static constructors in GlobalOpt.

LGTM

Jul 20 2015, 7:50 PM
nlewycky added a comment to D11200: Improve merging of stores from static constructors in GlobalOpt.

This looks nearly ready to land. I've convinced myself that "MergePendingStores" is doing the right thing.

Jul 20 2015, 4:09 PM

Jul 15 2015

nlewycky added a comment to D11198: Avoid insertion sorting each new range in MemCpyOptimizer.

I'm worried about the memory usage of storing all of them. It feels like you traded CPU time for more memory when you didn't need to.

Jul 15 2015, 5:51 PM