Page MenuHomePhabricator

igor-laevsky (Igor Laevsky)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 10 2014, 3:38 PM (252 w, 5 d)

Recent Activity

Feb 16 2018

igor-laevsky created D43384: [llvm-opt-fuzzer] Add another pack of passes for continuous fuzzing.
Feb 16 2018, 6:51 AM

Feb 5 2018

igor-laevsky added a comment to D42414: [llvm-opt-fuzzer] Avoid adding incorrect inputs to the fuzzer corpus.

With regards to the performance concerns - I will keep an eye on the fuzzer statistics and revert the change if the slowdown becomes too much,

Feb 5 2018, 3:17 AM

Feb 2 2018

igor-laevsky updated the diff for D42414: [llvm-opt-fuzzer] Avoid adding incorrect inputs to the fuzzer corpus.

Thanks for the comments! Added parseAndVerify function.

Feb 2 2018, 8:23 AM
igor-laevsky added inline comments to D42414: [llvm-opt-fuzzer] Avoid adding incorrect inputs to the fuzzer corpus.
Feb 2 2018, 8:23 AM

Jan 30 2018

igor-laevsky added a comment to D42414: [llvm-opt-fuzzer] Avoid adding incorrect inputs to the fuzzer corpus.

Hi. Any comments on this?

Jan 30 2018, 1:27 AM

Jan 24 2018

igor-laevsky added inline comments to D42410: [llvm-opt-fuzzer] Add couple of popular passes.
Jan 24 2018, 2:03 AM

Jan 23 2018

igor-laevsky created D42414: [llvm-opt-fuzzer] Avoid adding incorrect inputs to the fuzzer corpus.
Jan 23 2018, 3:49 AM
igor-laevsky created D42412: [FuzzMutate] Inst deleter doesn't work with PhiNodes.
Jan 23 2018, 3:24 AM
igor-laevsky created D42410: [llvm-opt-fuzzer] Add couple of popular passes.
Jan 23 2018, 3:10 AM

Dec 21 2017

igor-laevsky added a comment to D41107: [FuzzMutate] Avoid using swifterror as a source operand.

Hi. Slight ping on this?

Dec 21 2017, 7:26 AM

Dec 19 2017

igor-laevsky added a comment to D41107: [FuzzMutate] Avoid using swifterror as a source operand.

Hi. Any comments here?

Dec 19 2017, 1:03 AM

Dec 18 2017

igor-laevsky added a comment to D41009: [FuzzMutate] Don't crash when mutator is unable to find operation.

Hi. Any comments on this?

Dec 18 2017, 1:31 AM

Dec 15 2017

igor-laevsky retitled D41184: [TargetLibraryInfo] Discard library functions with incorrectly sized integers from [BuildLibCalls] Cast length argument to the correct integer type to [TargetLibraryInfo] Discard library functions with incorrectly sized integers.
Dec 15 2017, 4:42 AM
igor-laevsky updated the diff for D41184: [TargetLibraryInfo] Discard library functions with incorrectly sized integers.

Didn't know that, thanks. Please see the updated diff.

Dec 15 2017, 4:41 AM

Dec 14 2017

igor-laevsky added a comment to D41184: [TargetLibraryInfo] Discard library functions with incorrectly sized integers.

Yes, we can. I guess it's a question of wether or not we want to optimize lib calls with the wrong integer widths. I'm seeing that we cast pointers and merely continued this approach. However I don't know this area good enough to have any solid opinion here. Any suggestions?

Dec 14 2017, 1:42 AM

Dec 13 2017

igor-laevsky created D41184: [TargetLibraryInfo] Discard library functions with incorrectly sized integers.
Dec 13 2017, 6:53 AM
igor-laevsky added a comment to D40391: [Verifier] Check that GEP indexes has correct types.

Slight ping? This change is not overly important but seems reasonable to me.

Dec 13 2017, 3:53 AM
igor-laevsky added a comment to D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

Note: This was reintroduced in the rL320568.

Dec 13 2017, 3:23 AM
igor-laevsky added a comment to D40650: [InstSimplify] Fold insertelement into undef if index is out of bounds.

Note: This was reintroduced in the rL320568.

Dec 13 2017, 3:23 AM

Dec 12 2017

igor-laevsky created D41112: [FuzzMutate] Correctly split landingpad blocks.
Dec 12 2017, 6:08 AM
igor-laevsky created D41110: [FuzzMutate] Avoid zero sized aggregates.
Dec 12 2017, 4:34 AM
igor-laevsky created D41109: [FuzzMutate] Only generate loads and stores to the first class sized types.
Dec 12 2017, 4:21 AM
igor-laevsky created D41107: [FuzzMutate] Avoid using swifterror as a source operand.
Dec 12 2017, 3:34 AM
igor-laevsky added a comment to D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

Note: this was reverted due to the OpenGL mesa tests failures (rL320466)

Dec 12 2017, 2:05 AM
igor-laevsky added a comment to D40650: [InstSimplify] Fold insertelement into undef if index is out of bounds.

Note: this was reverted due to the OpenGL mesa tests failures (rL320466)

Dec 12 2017, 2:04 AM

Dec 8 2017

igor-laevsky updated the summary of D41009: [FuzzMutate] Don't crash when mutator is unable to find operation.
Dec 8 2017, 7:29 AM
igor-laevsky created D41009: [FuzzMutate] Don't crash when mutator is unable to find operation.
Dec 8 2017, 7:27 AM
igor-laevsky abandoned D41004: [FuzzMutate] Don't crash when mutator is unable to find operation.
Dec 8 2017, 5:36 AM
igor-laevsky created D41004: [FuzzMutate] Don't crash when mutator is unable to find operation.
Dec 8 2017, 5:34 AM

Dec 7 2017

igor-laevsky added a comment to D40840: [FuzzMutate] Correctly insert sinks and sources around invoke instructions.

Hi Justin, I updated the diff to bail on all TerminatorInsts. I agree that it's better to be more general here.

Dec 7 2017, 12:57 AM
igor-laevsky added a comment to D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

Hi Sanjay, since D40650 is submitted, is this good to go?

Dec 7 2017, 12:54 AM

Dec 6 2017

igor-laevsky updated the diff for D40837: [FuzzMutate] Allow only sized pointers for the GEP instruction.
Dec 6 2017, 3:07 AM
igor-laevsky added inline comments to D40837: [FuzzMutate] Allow only sized pointers for the GEP instruction.
Dec 6 2017, 3:06 AM
igor-laevsky updated the diff for D40840: [FuzzMutate] Correctly insert sinks and sources around invoke instructions.
Dec 6 2017, 2:47 AM

Dec 5 2017

igor-laevsky created D40840: [FuzzMutate] Correctly insert sinks and sources around invoke instructions.
Dec 5 2017, 8:26 AM
igor-laevsky created D40837: [FuzzMutate] Allow only sized pointers for the GEP instruction.
Dec 5 2017, 6:57 AM
igor-laevsky updated the diff for D40650: [InstSimplify] Fold insertelement into undef if index is out of bounds.

Add constant folding.
This breaks InstSimplify/pr28725.ll. However it's now folded into constant expression and instcombine simplifies it fully. Added relevant test case to the instcombine.

Dec 5 2017, 3:54 AM

Dec 4 2017

igor-laevsky added a reviewer for D40391: [Verifier] Check that GEP indexes has correct types: spatel.
Dec 4 2017, 8:10 AM
igor-laevsky abandoned D40721: [InstSimplify] Run constant folding if no other simplifications were possible.
Dec 4 2017, 8:04 AM
igor-laevsky added a comment to D40721: [InstSimplify] Run constant folding if no other simplifications were possible.

I had run CTMarks and I see total compile time slowdown of about 5% with various benchmarks regressed up to 10%. This does seem a lot especially considering unclear benefit from this change. I need to figure out better approach here.

Dec 4 2017, 8:04 AM
igor-laevsky updated the diff for D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

Updated with reduced test case

Dec 4 2017, 6:02 AM
igor-laevsky updated the diff for D40649: [InstCombine] Don't crash on out of bounds shifts.

Thanks! Please see updated change with this issue fixed.

Dec 4 2017, 5:48 AM
igor-laevsky added a comment to D40721: [InstSimplify] Run constant folding if no other simplifications were possible.

Hi Sanjay,

Dec 4 2017, 4:16 AM

Dec 1 2017

igor-laevsky added a comment to D40721: [InstSimplify] Run constant folding if no other simplifications were possible.

No, I haven't. I wouldn't expect big compile time impact, but I will run CTMark to be sure.

Dec 1 2017, 9:59 AM
igor-laevsky added a reviewer for D40721: [InstSimplify] Run constant folding if no other simplifications were possible: craig.topper.
Dec 1 2017, 9:55 AM
igor-laevsky added a comment to D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

I must have confused something when doing reduction. Will update tests. Thanks.

Dec 1 2017, 9:51 AM
igor-laevsky added a comment to D40649: [InstCombine] Don't crash on out of bounds shifts.

No, unfortunately your patch doesn't fix the problem. I believe those are two different paths in the code.

Dec 1 2017, 9:50 AM
igor-laevsky added a comment to D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

Seems like I can't make tests any smaller because they need to trigger specific patterns in the instcombine

Dec 1 2017, 8:46 AM
igor-laevsky updated the diff for D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.
Dec 1 2017, 8:44 AM
igor-laevsky updated the diff for D40649: [InstCombine] Don't crash on out of bounds shifts.
Dec 1 2017, 8:35 AM
igor-laevsky added a comment to D40649: [InstCombine] Don't crash on out of bounds shifts.

I see your point. Unfortunately I can't find any good place to common this out. Problem is that code is structured as a consecutive matching of unrelated patterns which may sometimes contain invalid shift operations. But I don't know the code base enough so maybe I'm missing something. Any advice?

Dec 1 2017, 8:25 AM
igor-laevsky updated the diff for D40649: [InstCombine] Don't crash on out of bounds shifts.

Update test case

Dec 1 2017, 8:25 AM
igor-laevsky created D40721: [InstSimplify] Run constant folding if no other simplifications were possible.
Dec 1 2017, 6:35 AM

Nov 30 2017

igor-laevsky updated the diff for D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

Thanks, this way is a lot better. Updated the diff.

Nov 30 2017, 7:56 AM
igor-laevsky added inline comments to D40393: [FuzzMutate] Don't crash when we can't remove instruction from empty function.
Nov 30 2017, 7:13 AM
igor-laevsky updated the diff for D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.

Hi Sanjay, thanks for the comments.

Nov 30 2017, 6:39 AM
igor-laevsky updated the diff for D40650: [InstSimplify] Fold insertelement into undef if index is out of bounds.

Add test case

Nov 30 2017, 6:37 AM
igor-laevsky created D40650: [InstSimplify] Fold insertelement into undef if index is out of bounds.
Nov 30 2017, 6:36 AM
igor-laevsky created D40649: [InstCombine] Don't crash on out of bounds shifts.
Nov 30 2017, 6:04 AM

Nov 23 2017

igor-laevsky updated the summary of D40395: [FuzzMutate] Pick correct index for the insertvalue instruction.
Nov 23 2017, 8:36 AM
igor-laevsky updated the summary of D40391: [Verifier] Check that GEP indexes has correct types.
Nov 23 2017, 8:35 AM
igor-laevsky created D40397: [FuzzMutate] Correctly handle vector types in the insertvalue operation.
Nov 23 2017, 8:21 AM
igor-laevsky created D40396: [FuzzMutate] Don't use index operands as sinks.
Nov 23 2017, 8:16 AM
igor-laevsky updated the diff for D40395: [FuzzMutate] Pick correct index for the insertvalue instruction.
Nov 23 2017, 8:05 AM
igor-laevsky created D40395: [FuzzMutate] Pick correct index for the insertvalue instruction.
Nov 23 2017, 8:01 AM
igor-laevsky updated subscribers of D40395: [FuzzMutate] Pick correct index for the insertvalue instruction.
Nov 23 2017, 8:01 AM
igor-laevsky created D40394: [FuzzMutate] Don't create load as a new source if it doesn't match with the descriptor.
Nov 23 2017, 7:44 AM
igor-laevsky created D40393: [FuzzMutate] Don't crash when we can't remove instruction from empty function.
Nov 23 2017, 7:19 AM
igor-laevsky updated subscribers of D40391: [Verifier] Check that GEP indexes has correct types.
Nov 23 2017, 6:46 AM
igor-laevsky updated subscribers of D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.
Nov 23 2017, 6:45 AM
igor-laevsky created D40391: [Verifier] Check that GEP indexes has correct types.
Nov 23 2017, 6:45 AM
igor-laevsky created D40390: [InstCombine] Don't crash on out of bounds index in the insertelement.
Nov 23 2017, 6:18 AM

Nov 14 2017

igor-laevsky added a comment to D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.
In D39555#924678, @kcc wrote:

First trophy:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4210
Looks real. Did you see it?

Nov 14 2017, 10:17 AM
igor-laevsky added a comment to D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.

Hi Kostya,

Nov 14 2017, 3:02 AM

Nov 9 2017

igor-laevsky added inline comments to D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.
Nov 9 2017, 10:51 AM
igor-laevsky updated the diff for D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.

Added separate function to parse exec encoded options. It's almost direct copy of the backend variant, but I hope to refactor it in a follow up changes.

Nov 9 2017, 7:01 AM

Nov 8 2017

igor-laevsky added inline comments to D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.
Nov 8 2017, 7:19 AM
igor-laevsky updated the diff for D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.

Justin, I must have missed your comments in the email. I added documentation and replied inline.

Nov 8 2017, 7:13 AM

Nov 3 2017

igor-laevsky updated the diff for D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.

Thanks for the comments. I updated the patch to support embedded "instcombine" option.

Nov 3 2017, 2:49 AM

Nov 2 2017

igor-laevsky updated subscribers of D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.
Nov 2 2017, 8:29 AM
igor-laevsky created D39555: Introduce llvm-opt-fuzzer for fuzzing optimization passes.
Nov 2 2017, 8:18 AM

Oct 16 2017

igor-laevsky added a comment to rL311849: [LV] Fix PR34248 - recommit D32871 after revert r311304.

FYI, there is another issue with this change, which is filed in https://bugs.llvm.org/show_bug.cgi?id=34965

Oct 16 2017, 8:30 AM

Feb 28 2017

igor-laevsky updated the diff for D29989: [BasicAA] Take attributes into account when requesting modref info for a call site.

I had removed confusing merging logic. It was there only to assist with possible improvements of the mod ref info during execution of the 'getModRefInfo' function. But since there are no known examples of when this is valuable, adding extra complexity doesn't worth it.

Feb 28 2017, 6:38 AM

Feb 27 2017

igor-laevsky abandoned D12012: [InstCombineCasts] Insert truncates when evaluating expression in different type .
Feb 27 2017, 8:29 AM
igor-laevsky abandoned D12013: [InstCombineCasts] Add cost model to decide which truncates are worth removing.
Feb 27 2017, 8:29 AM

Feb 22 2017

igor-laevsky added a comment to D29996: [DeadStoreElimination] Check function modref behavior before considering memory clobbered.

@dberlin
A: Sorry, I should have mentioned that this change depends the alias analysis change: https://reviews.llvm.org/D29989
B: Yes, this function specifically checks for memory modifications, so it shouldn't be used to determine if store is dead.

Feb 22 2017, 11:30 AM
igor-laevsky added a comment to D29996: [DeadStoreElimination] Check function modref behavior before considering memory clobbered.

ping?

Feb 22 2017, 9:40 AM

Feb 20 2017

igor-laevsky added inline comments to D29989: [BasicAA] Take attributes into account when requesting modref info for a call site.
Feb 20 2017, 10:20 AM
igor-laevsky added inline comments to D29989: [BasicAA] Take attributes into account when requesting modref info for a call site.
Feb 20 2017, 9:09 AM

Feb 17 2017

igor-laevsky updated the diff for D29989: [BasicAA] Take attributes into account when requesting modref info for a call site.
Feb 17 2017, 2:53 AM

Feb 15 2017

igor-laevsky updated the diff for D29989: [BasicAA] Take attributes into account when requesting modref info for a call site.
Feb 15 2017, 10:07 AM
igor-laevsky created D29996: [DeadStoreElimination] Check function modref behavior before considering memory clobbered.
Feb 15 2017, 9:58 AM
igor-laevsky updated the summary of D29989: [BasicAA] Take attributes into account when requesting modref info for a call site.
Feb 15 2017, 8:01 AM
igor-laevsky created D29989: [BasicAA] Take attributes into account when requesting modref info for a call site.
Feb 15 2017, 7:51 AM
igor-laevsky abandoned D29946: [SCEV] Add early bail outs for the GetMinTrailingZeros.

Ok, somehow I missed this condition, please ignore this change :)

Feb 15 2017, 4:43 AM

Feb 14 2017

igor-laevsky created D29946: [SCEV] Add early bail outs for the GetMinTrailingZeros.
Feb 14 2017, 8:37 AM
igor-laevsky added inline comments to D29759: [SCEV] Cache results during GetMinTrailingZeros query.
Feb 14 2017, 8:08 AM

Feb 10 2017

igor-laevsky abandoned D29760: [SCEV] NFC. Extract caching logic from the SCEVRewriteVisitor into the CachingSCEVVisitor.
Feb 10 2017, 6:03 AM
igor-laevsky updated the diff for D29759: [SCEV] Cache results during GetMinTrailingZeros query.

Store cache inside of the ScalarEvolution pass.

Feb 10 2017, 6:02 AM

Feb 9 2017

igor-laevsky updated the summary of D29759: [SCEV] Cache results during GetMinTrailingZeros query.
Feb 9 2017, 7:07 AM