Page MenuHomePhabricator

yrouban (Yevgeny Rouban)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 4 2017, 1:39 AM (186 w, 2 d)

Recent Activity

Dec 27 2020

yrouban committed rGd76c1d2247af: [RS4GC] Lazily set changed flag when folding single entry phis (authored by yrouban).
[RS4GC] Lazily set changed flag when folding single entry phis
Dec 27 2020, 8:05 PM
yrouban closed D93810: [RS4GC] Lazily set changed flag when folding single entry phis.
Dec 27 2020, 8:05 PM · Restricted Project

Dec 25 2020

yrouban requested review of D93810: [RS4GC] Lazily set changed flag when folding single entry phis.
Dec 25 2020, 2:58 AM · Restricted Project

Dec 23 2020

yrouban accepted D79485: [BPI] Improve static heuristics for "cold" paths..

LGTM if my latest comments are addressed.
Let's give this big work a try.

Dec 23 2020, 4:27 AM · Restricted Project

Dec 18 2020

yrouban closed D93509: [IndVars] Fix adding trunc instructions for unwind blocks.

Landed as https://reviews.llvm.org/rGf0e3d1d6ca8c

Dec 18 2020, 4:16 AM · Restricted Project
yrouban committed rG324d96b63759: [IndVars] A test for adding trunc instructions to unwind blocks (authored by yrouban).
[IndVars] A test for adding trunc instructions to unwind blocks
Dec 18 2020, 2:09 AM
yrouban closed D93521: [IndVars] A test for adding trunc instructions to unwind blocks.
Dec 18 2020, 2:09 AM · Restricted Project
yrouban added a comment to D93509: [IndVars] Fix adding trunc instructions for unwind blocks.

Could use a test.

Ok. See D93521

Dec 18 2020, 12:23 AM · Restricted Project
yrouban requested review of D93521: [IndVars] A test for adding trunc instructions to unwind blocks.
Dec 18 2020, 12:21 AM · Restricted Project

Dec 17 2020

yrouban committed rGf0e3d1d6ca8c: [IndVars] Fix adding trunc instructions to unwind blocks (authored by yrouban).
[IndVars] Fix adding trunc instructions to unwind blocks
Dec 17 2020, 9:54 PM
yrouban requested review of D93509: [IndVars] Fix adding trunc instructions for unwind blocks.
Dec 17 2020, 8:12 PM · Restricted Project
yrouban added inline comments to D91593: [IndVars] LCSSA Phi users should not prevent widening.
Dec 17 2020, 7:45 PM · Restricted Project

Dec 14 2020

yrouban accepted D86657: Add new hidden option -print-crash-IR that prints out IR that caused opt pipeline to crash.
Dec 14 2020, 11:52 PM · Restricted Project

Dec 11 2020

yrouban added inline comments to D79485: [BPI] Improve static heuristics for "cold" paths..
Dec 11 2020, 3:12 AM · Restricted Project

Dec 3 2020

yrouban accepted D92608: [JumpThreading] Call eraseBlock when folding a conditional branch.
Dec 3 2020, 9:09 PM · Restricted Project

Nov 22 2020

yrouban added inline comments to D91327: [NewPM] Redesign of PreserveCFG Checker.
Nov 22 2020, 10:11 PM · Restricted Project, Restricted Project
yrouban added a comment to D91327: [NewPM] Redesign of PreserveCFG Checker.

Looks fine to me, but I'm not confident enough to give an approval.

Thanks. I'm working closely with @skatkov and believe he have enough expertise to review fully.
The biggest issue with the current design is that we have to send FAM to the initialization of StandardInstrumentations/PreservedCFGCheckerInstrumentation. This looks asymmetric to the other analysis managers and it would be more reasonable to send FAM or all AMs to the instrumentation callbacks as parameters.

Nov 22 2020, 9:34 PM · Restricted Project, Restricted Project
yrouban added inline comments to D91327: [NewPM] Redesign of PreserveCFG Checker.
Nov 22 2020, 9:24 PM · Restricted Project, Restricted Project

Nov 19 2020

yrouban updated the diff for D91327: [NewPM] Redesign of PreserveCFG Checker.

Addressed comments.

Nov 19 2020, 11:17 PM · Restricted Project, Restricted Project
yrouban abandoned D90286: [Analysis] Improve EmitGEPOffset by avoiding summ with zero.

Not needed after NFC https://github.com/llvm/llvm-project/commit/02dda1c by @nikic

Nov 19 2020, 8:48 PM · Restricted Project
yrouban accepted D91658: [BasicAA] Deoptimize intrinsics don't modify memory.
Nov 19 2020, 5:54 AM · Restricted Project

Nov 18 2020

yrouban added a comment to D91324: [NewPM] Disable PreserveCFGChecker and add regression unit tests.

Hi @yrouban, thank you for working on this! Unfortunately this breaks shared library builds (i.e. with BUILD_SHARED_LIBS set to ON). This is causing one of our buildbots to fail:

Admittedly, it's been failing in the past 24hrs for other reasons too :)

As the fix seemed trivial, I took the liberty of submitting a fixing patch without a review: https://github.com/llvm/llvm-project/commit/ccf500ce00c5768ae98248a8de90408488235aa7. Tested with BUILD_SHARED_LIBS and it builds fine. But I'm not that familiar with this codebase, so please comment/revert/update if I missed sth. Ta!

Nov 18 2020, 2:30 AM · Restricted Project

Nov 17 2020

yrouban committed rGcba3e783389a: [NewPM] Disable PreservedCFGChecker and add regression unit tests (authored by yrouban).
[NewPM] Disable PreservedCFGChecker and add regression unit tests
Nov 17 2020, 7:04 PM
yrouban closed D91324: [NewPM] Disable PreserveCFGChecker and add regression unit tests.
Nov 17 2020, 7:04 PM · Restricted Project
yrouban added a comment to D91324: [NewPM] Disable PreserveCFGChecker and add regression unit tests.

Do I understand correctly that with -verify-cfg-preserved=true all new tests fail?

Only PassManagerTest.FunctionPassCFGCheckerInvalidateAnalysis does fail.
The other two (PassManagerTest.FunctionPassCFGCheckerWrapped and PassManagerTest.FunctionPassCFGChecker) pass.

Nov 17 2020, 8:26 AM · Restricted Project

Nov 16 2020

yrouban committed rGa57fe210ff7c: [JumpThreading] Fix branch probabilities in DuplicateCondBranchOnPHIIntoPred() (authored by yrouban).
[JumpThreading] Fix branch probabilities in DuplicateCondBranchOnPHIIntoPred()
Nov 16 2020, 11:42 PM
yrouban closed D90841: [JumpThreading] Fix branch probabilities in DuplicateCondBranchOnPHIIntoPred().
Nov 16 2020, 11:41 PM · Restricted Project
yrouban updated the diff for D90841: [JumpThreading] Fix branch probabilities in DuplicateCondBranchOnPHIIntoPred().

added a test

Nov 16 2020, 10:22 PM · Restricted Project

Nov 15 2020

yrouban accepted D91511: [JumpThreading] Call eraseBlock when folding a conditional branch.

agree. See my comments in D91017.

Nov 15 2020, 10:10 PM · Restricted Project
yrouban added inline comments to D91017: [BranchProbabilityInfo] Use SmallVector (NFC).
Nov 15 2020, 10:08 PM · Restricted Project
yrouban added a comment to D91511: [JumpThreading] Call eraseBlock when folding a conditional branch.

The problem caused by D91017 is due to the jump threading pass not updating edge probabilities (as addressed in this patch).

D91017 is NFC, why does it reveal the bug in JumpThreading while it has not been seen without D91017? Can we create a test case, which passes without D91017 but fails with it?

Nov 15 2020, 9:47 PM · Restricted Project
yrouban added a comment to D91511: [JumpThreading] Call eraseBlock when folding a conditional branch.

The patch looks good, but I have some concerns.

Nov 15 2020, 8:55 PM · Restricted Project

Nov 12 2020

yrouban requested review of D91329: [NewPM] Re-enable PreserveCFGChecker.
Nov 12 2020, 1:05 AM · Restricted Project
yrouban requested review of D91327: [NewPM] Redesign of PreserveCFG Checker.
Nov 12 2020, 12:59 AM · Restricted Project, Restricted Project
yrouban requested review of D91324: [NewPM] Disable PreserveCFGChecker and add regression unit tests.
Nov 12 2020, 12:47 AM · Restricted Project

Nov 10 2020

yrouban added a comment to D90841: [JumpThreading] Fix branch probabilities in DuplicateCondBranchOnPHIIntoPred().

Your patch looks reasonable. Is there any way you could come up with a testcase to make sure that the pass indeed copies the probabilities in your testcase? (Note that I'm not asking for a testcase that exposed this bug before D90284.)

I could not create a simple test. One more option to create one is to change the usage of BPI/BFI to request analysis from AM. Then the test can print BPI to show the difference. I'm not sure this big change is worth this small patch. It is not clear why JumpThreading uses its own local version of BPI/BFI.

Nov 10 2020, 1:34 AM · Restricted Project

Nov 8 2020

yrouban updated subscribers of D91017: [BranchProbabilityInfo] Use SmallVector (NFC).

This looks to be a good change towards simplification. I think originally a map over edges was introduced by @atrick back in 2011 in https://github.com/llvm/llvm-project/commit/49371f3f33788 as it could be sparse. But with the commit https://gitlab.azulsystems.com/dev/orca/commit/8138487468e22 we imposed an important restriction on setting outgoing edge probabilities at once for one block. This allowed correctness checks and further improvements like this.

Nov 8 2020, 9:59 PM · Restricted Project

Nov 5 2020

yrouban committed rG681d6c711f27: [BranchProbabilityInfo] Introduce method copyEdgeProbabilities(). NFC (authored by yrouban).
[BranchProbabilityInfo] Introduce method copyEdgeProbabilities(). NFC
Nov 5 2020, 11:53 PM
yrouban closed D90839: [BranchProbabilityInfo] Introduce method copyEdgeProbabilities(). NFC.
Nov 5 2020, 11:53 PM · Restricted Project
yrouban committed rGe38c8e7590a0: [BranchProbabilityInfo] Remove block handles in eraseBlock() (authored by yrouban).
[BranchProbabilityInfo] Remove block handles in eraseBlock()
Nov 5 2020, 10:15 PM
yrouban closed D90838: [BranchProbabilityInfo] Remove block handles in eraseBlock().
Nov 5 2020, 10:14 PM · Restricted Project
yrouban added inline comments to D90838: [BranchProbabilityInfo] Remove block handles in eraseBlock().
Nov 5 2020, 9:50 PM · Restricted Project
yrouban committed rG4931158d27dc: [BranchProbabilityInfo] Get rid of MaxSuccIdx. NFC (authored by yrouban).
[BranchProbabilityInfo] Get rid of MaxSuccIdx. NFC
Nov 5 2020, 9:22 PM
yrouban closed D90837: [BranchProbabilityInfo] Get rid of MaxSuccIdx. NFC.
Nov 5 2020, 9:22 PM · Restricted Project
yrouban updated the summary of D90841: [JumpThreading] Fix branch probabilities in DuplicateCondBranchOnPHIIntoPred().
Nov 5 2020, 5:09 AM · Restricted Project
yrouban requested review of D90841: [JumpThreading] Fix branch probabilities in DuplicateCondBranchOnPHIIntoPred().
Nov 5 2020, 5:08 AM · Restricted Project
yrouban set the repository for D90838: [BranchProbabilityInfo] Remove block handles in eraseBlock() to rG LLVM Github Monorepo.
Nov 5 2020, 4:50 AM · Restricted Project
yrouban requested review of D90839: [BranchProbabilityInfo] Introduce method copyEdgeProbabilities(). NFC.
Nov 5 2020, 4:49 AM · Restricted Project
yrouban added a reviewer for D90837: [BranchProbabilityInfo] Get rid of MaxSuccIdx. NFC: MaskRay.
Nov 5 2020, 4:39 AM · Restricted Project
yrouban requested review of D90838: [BranchProbabilityInfo] Remove block handles in eraseBlock().
Nov 5 2020, 4:39 AM · Restricted Project
yrouban requested review of D90837: [BranchProbabilityInfo] Get rid of MaxSuccIdx. NFC.
Nov 5 2020, 4:27 AM · Restricted Project

Oct 29 2020

yrouban added a comment to D90286: [Analysis] Improve EmitGEPOffset by avoiding summ with zero.

Drive by: Tests needed, commit message missing, and we should see if we can avoid 3-5 line assignments.

EmitGEPOffset() is used by instcombine and we do not see the redundant add 0, X instruction because it is immediately optimized out in the same iteration. It prevents a simple lit test for this patch. On the other hand you can see the fix in InstCombinerImpl::OptimizePointerDifference() which changes the code to expect X in place of add 0, X and there is a related test (test/Transforms/InstCombine/sub-gep.ll), which I believe is enough for this small improvement.
Keep in mind that EmitGEPOffset() could be used in other custom passes that might not require subsequent instcombine to run.

Oct 29 2020, 4:12 AM · Restricted Project
yrouban updated the summary of D90286: [Analysis] Improve EmitGEPOffset by avoiding summ with zero.
Oct 29 2020, 3:36 AM · Restricted Project

Oct 27 2020

yrouban requested review of D90286: [Analysis] Improve EmitGEPOffset by avoiding summ with zero.
Oct 27 2020, 10:47 PM · Restricted Project

Oct 12 2020

yrouban added a comment to D79485: [BPI] Improve static heuristics for "cold" paths..

I'm still reading. The patch is long but I'd like to avoid splitting it into pieces that might result in massive tests changes (back and forth). Now the test changes seem to be compact.
It would be great if someone could join the reviewing efforts.

Oct 12 2020, 4:05 AM · Restricted Project

Sep 13 2020

yrouban committed rG88690a965892: [CodeGenPrepare] Fix zapping dead operands of assume (authored by yrouban).
[CodeGenPrepare] Fix zapping dead operands of assume
Sep 13 2020, 9:48 PM
yrouban closed D87434: [CodeGenPrepare] Fix zapping dead operands of assume.
Sep 13 2020, 9:47 PM · Restricted Project

Sep 11 2020

yrouban abandoned D81089: Mark InstCombine as not preserving CFG.

See D84763.

Sep 11 2020, 6:48 AM · Restricted Project
yrouban updated the summary of D87434: [CodeGenPrepare] Fix zapping dead operands of assume.
Sep 11 2020, 1:49 AM · Restricted Project
yrouban updated the diff for D87434: [CodeGenPrepare] Fix zapping dead operands of assume.

RecursivelyDeleteTriviallyDeadInstructions() call is wrapped with resetIteratorIfInvalidatedWhileCalling().

Sep 11 2020, 1:48 AM · Restricted Project
yrouban added a comment to D87434: [CodeGenPrepare] Fix zapping dead operands of assume.

Thanks. Can we just wrap it in resetIteratorIfInvalidatedWhileCalling like the call a few lines later? That seems less error prone.

Ok, but it will be less efficient.

Sep 11 2020, 1:46 AM · Restricted Project
yrouban committed rG28012e00d80b: [NewPM] Introduce PreserveCFG check (authored by yrouban).
[NewPM] Introduce PreserveCFG check
Sep 11 2020, 12:33 AM
yrouban closed D81558: [NewPM] Introduce PreserveCFG check.
Sep 11 2020, 12:33 AM · Restricted Project

Sep 10 2020

yrouban updated the diff for D81558: [NewPM] Introduce PreserveCFG check.

Addressed Fedor's comments.

Sep 10 2020, 1:33 AM · Restricted Project
yrouban added inline comments to D81558: [NewPM] Introduce PreserveCFG check.
Sep 10 2020, 1:32 AM · Restricted Project

Sep 9 2020

yrouban requested review of D87434: [CodeGenPrepare] Fix zapping dead operands of assume.
Sep 9 2020, 10:46 PM · Restricted Project
yrouban added a comment to D81558: [NewPM] Introduce PreserveCFG check.

Fedor, could you please review the New Pass Manager part of this patch as I addressed your comments?

Sep 9 2020, 9:29 PM · Restricted Project

Sep 4 2020

yrouban added a comment to D81558: [NewPM] Introduce PreserveCFG check.

I see no impact on CPU time with the following timed runs (both with and without assertions):
$ time opt -O3 FILE.bc --disable-output -verify-cfg-preserved=VCP

Sep 4 2020, 10:59 PM · Restricted Project

Sep 3 2020

yrouban updated the diff for D81558: [NewPM] Introduce PreserveCFG check.
Sep 3 2020, 9:54 PM · Restricted Project
yrouban updated the diff for D81558: [NewPM] Introduce PreserveCFG check.

a minor fix in BBGuard.

Sep 3 2020, 9:40 PM · Restricted Project
yrouban updated the diff for D81558: [NewPM] Introduce PreserveCFG check.

Implemented custom BBGuard class instead of PoisoningVH which does not track poisoning in release builds.
Removed DEBUG_TYPE and LLVM_DEBUG uses. Unexpected gaph diffs are printed unconditionally.
Addressed comments.
I will provide performance data soon.

Sep 3 2020, 9:36 PM · Restricted Project
yrouban added inline comments to D86657: Add new hidden option -print-crash-IR that prints out IR that caused opt pipeline to crash.
Sep 3 2020, 8:14 PM · Restricted Project
yrouban planned changes to D81558: [NewPM] Introduce PreserveCFG check.

I will collect performance data and fix for release builds.

Sep 3 2020, 5:12 AM · Restricted Project

Sep 2 2020

yrouban added inline comments to D86657: Add new hidden option -print-crash-IR that prints out IR that caused opt pipeline to crash.
Sep 2 2020, 11:13 PM · Restricted Project
yrouban accepted D86360: Add new hidden option -print-changed which only reports changes to IR.

No further complains from me.
lgtm if the other reviewers' comments are addressed.

Sep 2 2020, 7:59 PM · Restricted Project

Sep 1 2020

yrouban added inline comments to D86657: Add new hidden option -print-crash-IR that prints out IR that caused opt pipeline to crash.
Sep 1 2020, 9:24 PM · Restricted Project
yrouban added inline comments to D86360: Add new hidden option -print-changed which only reports changes to IR.
Sep 1 2020, 9:06 PM · Restricted Project
yrouban added a comment to D81558: [NewPM] Introduce PreserveCFG check.

This looks very useful. Does it currently report any errors when enabled?

None.

Sep 1 2020, 9:15 AM · Restricted Project
yrouban updated the diff for D81558: [NewPM] Introduce PreserveCFG check.

Defined a separate class named CFG.
CFG defines the notion PreserveCFG for the multigraph of BasicBlocks with unordered successors.
CFG can safely track and print CFG changes. To guard CFG from accessing deleted blocks PoisoningVH is used and is extended with one getter.
The cfg diff printing function is rewritten.
Rebased.

Sep 1 2020, 1:27 AM · Restricted Project

Aug 30 2020

yrouban added inline comments to D86657: Add new hidden option -print-crash-IR that prints out IR that caused opt pipeline to crash.
Aug 30 2020, 10:14 PM · Restricted Project

Aug 27 2020

yrouban added inline comments to D86657: Add new hidden option -print-crash-IR that prints out IR that caused opt pipeline to crash.
Aug 27 2020, 9:26 PM · Restricted Project

Aug 26 2020

yrouban added inline comments to D86657: Add new hidden option -print-crash-IR that prints out IR that caused opt pipeline to crash.
Aug 26 2020, 9:34 PM · Restricted Project

Aug 23 2020

yrouban added inline comments to D86360: Add new hidden option -print-changed which only reports changes to IR.
Aug 23 2020, 9:08 PM · Restricted Project

Aug 21 2020

yrouban committed rG18bc400f97a6: [NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass*… (authored by yrouban).
[NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass*…
Aug 21 2020, 2:11 AM
yrouban closed D81555: [NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass* callbacks.
Aug 21 2020, 2:11 AM · Restricted Project

Aug 20 2020

yrouban committed rG7d9a16241fdd: [ADT] Allow IsSizeLessThanThresholdT for incomplete types. NFC (authored by yrouban).
[ADT] Allow IsSizeLessThanThresholdT for incomplete types. NFC
Aug 20 2020, 9:03 PM
yrouban closed D81554: [ADT] Allow IsSizeLessThanThresholdT for incomplete types. NFC.
Aug 20 2020, 9:03 PM · Restricted Project

Aug 13 2020

yrouban abandoned D84495: [InstCombine] Disable branch predicate canonicalization by default.
Aug 13 2020, 8:53 AM · Restricted Project
yrouban abandoned D84493: [InstCombine] Disable branch predicate canonicalization.
Aug 13 2020, 8:53 AM · Restricted Project
yrouban abandoned D84492: [SimplifyCFG] Enable branch predicate canonicalization by default.
Aug 13 2020, 8:52 AM · Restricted Project
yrouban abandoned D84491: [SimplifyCFG] Canonicalize branch predicates.
Aug 13 2020, 8:51 AM · Restricted Project

Aug 6 2020

yrouban added a comment to D84763: DomTree: Make PostDomTree immune to block successors swap.

This also broke the Polly buildbot twice: http://lab.llvm.org:8011/builders/polly-x86_64-linux/builds/3542 and http://lab.llvm.org:8011/builders/polly-x86_64-linux/builds/3547. Please also fix the Polly tests when you get notifications from the Polly buildbot.

ok. As I see, both failures have been fixed. Thanks @Meinersbur for fixing polly/test/Isl/Ast/alias_checks_with_empty_context.ll

Aug 6 2020, 9:21 PM · Restricted Project

Aug 5 2020

yrouban committed rGbc10888dcdda: DomTree: Make PostDomTree indifferent to block successors swap (authored by yrouban).
DomTree: Make PostDomTree indifferent to block successors swap
Aug 5 2020, 12:27 AM

Aug 4 2020

yrouban added inline comments to D81558: [NewPM] Introduce PreserveCFG check.
Aug 4 2020, 10:37 PM · Restricted Project
yrouban added a comment to D84763: DomTree: Make PostDomTree immune to block successors swap.

Thanks. I should have tested some more than just llvm.

Aug 4 2020, 10:29 PM · Restricted Project
yrouban committed rGc35585e209ef: DomTree: Make PostDomTree immune to block successors swap (authored by yrouban).
DomTree: Make PostDomTree immune to block successors swap
Aug 4 2020, 9:08 PM
yrouban closed D84763: DomTree: Make PostDomTree immune to block successors swap.
Aug 4 2020, 9:08 PM · Restricted Project
yrouban added a comment to D84763: DomTree: Make PostDomTree immune to block successors swap.

@nikic reported that the geomean regression is 0.1%.
@kuhar, could you please lgtm?
Please consider taking look at D81558 (PreserveCFG checker).

Aug 4 2020, 4:23 AM · Restricted Project

Aug 3 2020

yrouban updated the diff for D84763: DomTree: Make PostDomTree immune to block successors swap.

Reverted NodeOrderMap from SmallDenseMap to DenseMap.

Aug 3 2020, 4:33 AM · Restricted Project
yrouban updated the diff for D84763: DomTree: Make PostDomTree immune to block successors swap.

changed type of SuccOrder to SmallDenseMap<NodePtr, unsigned, 16>.

Aug 3 2020, 2:34 AM · Restricted Project