Page MenuHomePhabricator

yrouban (Yevgeny Rouban)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Thu, Apr 18

yrouban added inline comments to D60751: [NFC][InlineCost] cleanup - comments, overflow handling..
Thu, Apr 18, 12:42 AM · Restricted Project

Tue, Apr 16

yrouban created D60769: [SimpleLoopUnswitch] Discard stale prof branch_weights for partial unswitched branches.
Tue, Apr 16, 4:32 AM · Restricted Project
yrouban updated the diff for D60606: [SimpleLoopUnswitch] Implement handling of prof branch_weights metadata for SwitchInst.

added more test checks to trivial-unswitch.ll to cover all new and changed code

Tue, Apr 16, 12:53 AM · Restricted Project
yrouban updated the diff for D60604: [IR] Improve SwitchInst API to support prof branch_weights.

rebased to the latest D60544 and formatted

Tue, Apr 16, 12:47 AM · Restricted Project
yrouban updated the diff for D60554: Fix number of args of prof branch_weights MD for SwitchInst.

formatted

Tue, Apr 16, 12:42 AM · Restricted Project

Mon, Apr 15

yrouban added a comment to D60740: [InlineCost] cleanup calculations of Cost and Threshold.

I would split this change into NFC and last-call-to-static.

Mon, Apr 15, 8:32 PM · Restricted Project
yrouban updated the diff for D60554: Fix number of args of prof branch_weights MD for SwitchInst.
  • removed 2 tests fixes into a separate patch
  • changed branch weight sum type to uint64_t
  • extracted separate method getProfBranchWeightsMD() that is used in the dependent patche
Mon, Apr 15, 4:51 AM · Restricted Project
yrouban added a comment to D60606: [SimpleLoopUnswitch] Implement handling of prof branch_weights metadata for SwitchInst.
  1. We appear to have the same lost profile problem for partial unswitching of branches.

Yes. But I believe that the fix would be unrelated to this patch. I do not see any way to fix branch_weights for partially unswitched branch instruction other than to drop the prof branch_weights metadata.

Mon, Apr 15, 4:32 AM · Restricted Project
yrouban added a comment to D60604: [IR] Improve SwitchInst API to support prof branch_weights.

I think that if we're going to add an API like this, it needs to be uniform across all the terminator instructios. Having it otherwise is just too confusing.

Philip, as I see in the doc https://llvm.org/docs/BranchWeightMetadata.html#supported-instructions there are only 4 instructions allowed to have prof branch_weights: BranchInst, SwitchInst, IndirectBrInst and CallInst. CallInst is not a terminator instruction.
I'm proposing API changes for SwitchInst only. Very similar changes can be done to IndirectBrInst.
BranchInst and CallInst have fixed num of branch weight params so they do not need the changes in add/remove methods.
If you agree, I will prepare similar changes for all 4 instructions or just 2 (SwitchInst and IndirectBrInst).
The logic behind these changes is the following. I'd like to keep the prof branch_weights metadata to be kept correct through all passes that do not care about metadata and I do not want to change those passes. They add successors without specifying branch weights and remove successors disregarding the metadata consistency. On the other hand passes can explicitly specify the branch weights along with changed successors.

Mon, Apr 15, 2:42 AM · Restricted Project
yrouban committed rG3992e9d229ed: Codegen: Fixed perf branch_weights in couple of tests. NFC. (authored by yrouban).
Codegen: Fixed perf branch_weights in couple of tests. NFC.
Mon, Apr 15, 2:29 AM
yrouban committed rL358384: Codegen: Fixed perf branch_weights in couple of tests. NFC..
Codegen: Fixed perf branch_weights in couple of tests. NFC.
Mon, Apr 15, 2:28 AM
yrouban added a reviewer for D60606: [SimpleLoopUnswitch] Implement handling of prof branch_weights metadata for SwitchInst: chandlerc.
Mon, Apr 15, 1:08 AM · Restricted Project

Fri, Apr 12

yrouban added inline comments to D60554: Fix number of args of prof branch_weights MD for SwitchInst.
Fri, Apr 12, 4:13 AM · Restricted Project
yrouban added inline comments to D60604: [IR] Improve SwitchInst API to support prof branch_weights.
Fri, Apr 12, 4:13 AM · Restricted Project
yrouban added a parent revision for D60606: [SimpleLoopUnswitch] Implement handling of prof branch_weights metadata for SwitchInst: D60604: [IR] Improve SwitchInst API to support prof branch_weights.
Fri, Apr 12, 3:50 AM · Restricted Project
yrouban added a child revision for D60604: [IR] Improve SwitchInst API to support prof branch_weights: D60606: [SimpleLoopUnswitch] Implement handling of prof branch_weights metadata for SwitchInst.
Fri, Apr 12, 3:49 AM · Restricted Project
yrouban created D60606: [SimpleLoopUnswitch] Implement handling of prof branch_weights metadata for SwitchInst.
Fri, Apr 12, 3:49 AM · Restricted Project
yrouban added a parent revision for D60604: [IR] Improve SwitchInst API to support prof branch_weights: D60554: Fix number of args of prof branch_weights MD for SwitchInst.
Fri, Apr 12, 3:39 AM · Restricted Project
yrouban added a child revision for D60554: Fix number of args of prof branch_weights MD for SwitchInst: D60604: [IR] Improve SwitchInst API to support prof branch_weights.
Fri, Apr 12, 3:39 AM · Restricted Project
yrouban created D60604: [IR] Improve SwitchInst API to support prof branch_weights.
Fri, Apr 12, 3:32 AM · Restricted Project
yrouban updated the diff for D60554: Fix number of args of prof branch_weights MD for SwitchInst.

fixed test llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch.ll

Fri, Apr 12, 3:10 AM · Restricted Project

Thu, Apr 11

yrouban added inline comments to D60554: Fix number of args of prof branch_weights MD for SwitchInst.
Thu, Apr 11, 4:09 AM · Restricted Project
yrouban created D60554: Fix number of args of prof branch_weights MD for SwitchInst.
Thu, Apr 11, 1:05 AM · Restricted Project

Feb 3 2019

yrouban closed D57220: Test fix for isViableInline remark message.

Landed along with D57089 (see rC352849).

Feb 3 2019, 8:38 PM · Restricted Project
yrouban added inline comments to D57220: Test fix for isViableInline remark message.
Feb 3 2019, 8:36 PM · Restricted Project

Feb 1 2019

yrouban committed rL352849: Provide reason messages for unviable inlining.
Provide reason messages for unviable inlining
Feb 1 2019, 2:44 AM
yrouban committed rC352849: Provide reason messages for unviable inlining.
Provide reason messages for unviable inlining
Feb 1 2019, 2:44 AM
yrouban closed D57089: Provide reason messages for unviable inlining.
Feb 1 2019, 2:44 AM · Restricted Project

Jan 31 2019

yrouban committed rL352839: [SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI..
[SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI.
Jan 31 2019, 10:44 PM
yrouban closed D57144: [SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI..
Jan 31 2019, 10:44 PM · Restricted Project
yrouban added a comment to D57089: Provide reason messages for unviable inlining.

@anemet, @xbolva00, please take a look once again.

Jan 31 2019, 3:20 AM · Restricted Project
yrouban committed rL352738: Test commit. NFCI..
Test commit. NFCI.
Jan 31 2019, 12:49 AM

Jan 28 2019

yrouban updated the diff for D57089: Provide reason messages for unviable inlining.

Addressed comments:

  • added a simple test
  • changed implicit conversion to char* to explicit field access IsViable.message
Jan 28 2019, 12:51 AM · Restricted Project

Jan 25 2019

yrouban added inline comments to D57089: Provide reason messages for unviable inlining.
Jan 25 2019, 7:45 AM · Restricted Project

Jan 24 2019

yrouban added a child revision for D57089: Provide reason messages for unviable inlining: D57220: Test fix for isViableInline remark message.
Jan 24 2019, 11:58 PM · Restricted Project
yrouban added a parent revision for D57220: Test fix for isViableInline remark message: D57089: Provide reason messages for unviable inlining.
Jan 24 2019, 11:58 PM · Restricted Project
yrouban created D57220: Test fix for isViableInline remark message.
Jan 24 2019, 11:58 PM · Restricted Project
yrouban updated the diff for D57144: [SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI..

addressed all comments

Jan 24 2019, 11:51 PM · Restricted Project
yrouban added inline comments to D57144: [SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI..
Jan 24 2019, 11:50 PM · Restricted Project
yrouban created D57144: [SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI..
Jan 24 2019, 1:39 AM · Restricted Project

Jan 23 2019

yrouban created D57089: Provide reason messages for unviable inlining.
Jan 23 2019, 2:15 AM · Restricted Project

Oct 28 2018

yrouban updated the diff for D53424: Enable thread specific cl::opt values for multi-threaded support.

Addressed comments:

  • ~Destructible() moved to cpp file
  • changed pthread to std::thread in the test
  • added GetThreadOptionContext() and ThreadOptionContext is made protected
Oct 28 2018, 8:14 AM

Oct 25 2018

yrouban added a comment to D53424: Enable thread specific cl::opt values for multi-threaded support.
In D53424#1274387, @jfb wrote:

May I ask why you think it's important to move away from cl::opt in the first place? What purpose does it actually solve?

By now it's pretty clear that you need an RFC to answer this question, not a phab thread.

The RFC can be found here http://lists.llvm.org/pipermail/llvm-dev/2018-October/127039.html

Oct 25 2018, 9:54 AM

Oct 24 2018

yrouban added inline comments to D53424: Enable thread specific cl::opt values for multi-threaded support.
Oct 24 2018, 4:53 AM

Oct 23 2018

yrouban added a comment to D53424: Enable thread specific cl::opt values for multi-threaded support.
In D53424#1273728, @jfb wrote:

Was there a commitment from the community, with some time horizon for moving away from this patch?

Frankly speaking, I do not think that this kind of transition can be done easily. Every single option needs a big change. That is the biggest disadvantage of the feature D5389. It needs some improvements to allow enough flexibility. And we cannot know what improvements are needed until we implement enough options in the new way. I do not see any good way to force the transition to finish in a fixed time frame. If D5389 were easy to use and transit to, it would have been already adopted and we would not have to came up with another idea like this D53424.
In other words, I would give the new idea a try (at least under a preprocessor flag).

Oct 23 2018, 9:00 PM
yrouban added a comment to D53424: Enable thread specific cl::opt values for multi-threaded support.

This is a very good summary. I would suggest that we land this patch and mark this feature as a temporary solution asking the users to consider moving the options they redefine to the new API D5389.

Oct 23 2018, 8:10 PM

Oct 22 2018

yrouban added a comment to D53424: Enable thread specific cl::opt values for multi-threaded support.
In D53424#1270961, @jfb wrote:

The outcome you wants seems highly desirable. The method (thread local storage) doesn't seem desirable when LLVMContext could be used for this. It seems you've collected a list of cl::opt values which really shouldn't be per-process when using LLVM as a library. How about making that happen instead?

LLVMContext is not always created when cl::opts are used. In other words, I intentionally made the use of this new feature (the thread local option context) wider than the scope of LLVMContext. Users can bind they LLVMContexts to the thread local option context as they needed. It can be done by creating a ContextValue along with LLVMContext and setting this ContextValues as the thread local option context for all threads that work with the LLVMContext instance.
I did not understand your point about collection a list of cl::opts. I do not collect any lists. Instead, every thread local option context collects only those options that have been redefined for this context.

Oct 22 2018, 9:56 PM

Oct 19 2018

yrouban updated the summary of D53426: NFC. opt_storage refactored toward thread local options.
Oct 19 2018, 3:14 AM
yrouban created D53428: Adjust cl::opt uses for opt_storage refactored.
Oct 19 2018, 3:13 AM
yrouban added a parent revision for D53424: Enable thread specific cl::opt values for multi-threaded support: D53426: NFC. opt_storage refactored toward thread local options.
Oct 19 2018, 2:51 AM
yrouban added a child revision for D53426: NFC. opt_storage refactored toward thread local options: D53424: Enable thread specific cl::opt values for multi-threaded support.
Oct 19 2018, 2:51 AM
yrouban created D53426: NFC. opt_storage refactored toward thread local options.
Oct 19 2018, 2:50 AM
yrouban created D53424: Enable thread specific cl::opt values for multi-threaded support.
Oct 19 2018, 2:21 AM

Sep 17 2018

yrouban added a comment to D51091: [X86DomainReassignment] Give X86DomainReassignment a chance to be interrupted.

Component owners, please take a look or suggest someone who can review.

Sep 17 2018, 8:22 PM

Aug 31 2018

yrouban added inline comments to D51091: [X86DomainReassignment] Give X86DomainReassignment a chance to be interrupted.
Aug 31 2018, 2:34 AM
yrouban added a comment to D50435: [Inliner] Attribute callsites with inline remarks.

Thank you Dávid for your help.

Aug 31 2018, 12:25 AM

Aug 29 2018

yrouban added a comment to D51091: [X86DomainReassignment] Give X86DomainReassignment a chance to be interrupted.

Any thoughts? Ideas?

Aug 29 2018, 10:43 PM

Aug 27 2018

yrouban added a comment to D50435: [Inliner] Attribute callsites with inline remarks.

ninja check-all passed except one test failure Clang :: Modules/prune.m.
It seems to be unrelated to this patch as it is reproducible with clean master sources.

Aug 27 2018, 1:40 AM

Aug 26 2018

yrouban updated the diff for D50435: [Inliner] Attribute callsites with inline remarks.

Fixed build failure by moving operator<<(std::basic_ostream<char> &R, const ore::NV &Arg) out of #ifndef NDEBUG condition.
Started ninja check-all for non-debug config.

Aug 26 2018, 8:36 PM

Aug 24 2018

yrouban added a comment to D50435: [Inliner] Attribute callsites with inline remarks.

make check-all passed.

Aug 24 2018, 2:51 AM
yrouban added a comment to D50435: [Inliner] Attribute callsites with inline remarks.

Re-checking is in progress. I'm almost sure it will pass as inline-remark-attribute is set to false by default.

Aug 24 2018, 1:55 AM

Aug 22 2018

yrouban created D51091: [X86DomainReassignment] Give X86DomainReassignment a chance to be interrupted.
Aug 22 2018, 2:23 AM
yrouban updated the diff for D50435: [Inliner] Attribute callsites with inline remarks.
  • added cl:desc to inline-remark-attribute option
  • changed return type of InlineCallIfPossible() from bool to InlineResult
  • added one more test to see InlineResult printed in inline-remark attribute
  • reformatted body of function setInlineRemark()
Aug 22 2018, 1:44 AM
yrouban added inline comments to D50435: [Inliner] Attribute callsites with inline remarks.
Aug 22 2018, 1:31 AM

Aug 17 2018

yrouban planned changes to D50435: [Inliner] Attribute callsites with inline remarks.

I will address all comments by the end of the next week.

Aug 17 2018, 12:35 PM

Aug 12 2018

yrouban updated the diff for D50435: [Inliner] Attribute callsites with inline remarks.

fixed the test: removed extra whitespaces, changed description of Test1

Aug 12 2018, 11:01 AM

Aug 8 2018

yrouban created D50435: [Inliner] Attribute callsites with inline remarks.
Aug 8 2018, 4:08 AM

Aug 5 2018

yrouban added a comment to D49412: Enrich inline messages.

Thank you very much, Dávid!

Aug 5 2018, 9:02 PM

Aug 3 2018

yrouban created D50242: Fix one test for changed opt remarks format.
Aug 3 2018, 5:05 AM
yrouban added a parent revision for D50241: Fix tests for changed opt remarks format: D49412: Enrich inline messages.
Aug 3 2018, 5:02 AM
yrouban added a child revision for D49412: Enrich inline messages: D50241: Fix tests for changed opt remarks format.
Aug 3 2018, 5:02 AM
yrouban created D50241: Fix tests for changed opt remarks format.
Aug 3 2018, 5:01 AM

Aug 1 2018

yrouban added a comment to D49412: Enrich inline messages.

The fixes seem to be simple, but I need to set up and build additional projects.
How can I submit patches to several projects that should be synchronously updated?

Aug 1 2018, 8:23 PM

Jul 31 2018

yrouban updated the diff for D49412: Enrich inline messages.

Fixed the buildbot failure (clang++ compilation error) by putting the operator<<(.., NV &Arg) before the template operator<<(.., InlineCost) in Inliner.cpp.

Jul 31 2018, 10:13 PM
yrouban added a comment to D49412: Enrich inline messages.

Started looking at the failure.

Jul 31 2018, 9:11 PM

Jul 30 2018

yrouban added a comment to D49412: Enrich inline messages.

I have just made checked with the latest trunk.
Committers! could anyone land this patch please?

Jul 30 2018, 9:58 PM

Jul 29 2018

yrouban updated the diff for D49412: Enrich inline messages.

Minor change: got got rid of multiple string operators += in inlineCostStr() by reusing the output stream template for printing InlineCost.

Jul 29 2018, 9:59 PM

Jul 27 2018

yrouban updated the diff for D49412: Enrich inline messages.
  1. formatted
  2. moved InlineResult from Cloning.h to InlineCost.h
  3. changed InlineCost printing to (cost=X, threshold=Y) or (cost=never): message or (cost=always): message. Had to fix many test checks.
Jul 27 2018, 5:09 AM

Jul 19 2018

yrouban updated the diff for D49412: Enrich inline messages.

Updated delimiters in output as requested.

Jul 19 2018, 3:05 AM

Jul 18 2018

yrouban added inline comments to D49412: Enrich inline messages.
Jul 18 2018, 12:43 AM
yrouban added inline comments to D49412: Enrich inline messages.
Jul 18 2018, 12:31 AM

Jul 16 2018

yrouban removed a reviewer for D49412: Enrich inline messages: llvm-commits.
Jul 16 2018, 10:34 PM
yrouban added reviewers for D49412: Enrich inline messages: Eugene.Zelenko, tejohnson, dblaikie, sanjoy.
Jul 16 2018, 10:13 PM
yrouban created D49412: Enrich inline messages.
Jul 16 2018, 10:11 PM

Jun 25 2018

yrouban abandoned D47056: Removed analysis flag from SafepointIRVerifier pass.

the landed patch D47441 supersedes this one.

Jun 25 2018, 11:54 PM
yrouban added a comment to D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Spasibo, Artur.

Jun 25 2018, 10:07 PM

Jun 22 2018

yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Removed a separate analysis pass - CFGDeadness is made internal.

Jun 22 2018, 1:55 AM

Jun 19 2018

yrouban added a comment to D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

LLVM committers, this patch seems to be ready for landing, please.

Jun 19 2018, 3:34 AM

Jun 18 2018

yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Added Artur's comment.

Jun 18 2018, 6:30 AM

Jun 9 2018

yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

previous diff was incorrect, please ignore it.
In this diff I removed CFGDeadness::processInstruction() and changed to iterate over the block terminators.

Jun 9 2018, 5:05 AM
yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Removed CFGDeadness::processInstruction() and changed to iterate over the block terminators.

Jun 9 2018, 4:59 AM

Jun 8 2018

yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Addressed Anna's comments:

  1. changed INITIALIZE_PASS CFGDeadness CFG flag to false.
  2. The new method CFGDeadness::hasLiveIncomingEdge(Phi, Block) replaces CFGDeadness::getIncomingEdge(Phi, Block) that could not work with phi containing duplicate pairs of (value,block).
Jun 8 2018, 10:00 PM

Jun 5 2018

yrouban added inline comments to D47441: SafepointIRVerifier should ignore dead blocks and dead edges.
Jun 5 2018, 10:11 PM
yrouban added a comment to D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Please review the patch.
Anna, Daniil, you are the best candidates for reviewing the patch.

Jun 5 2018, 4:06 AM

Jun 4 2018

yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Added dead edge definition and appropriate assertions to the method isDeadEdge().
Inlined the method processFoldableCondBr() into processInstruction().

Jun 4 2018, 7:57 AM

Jun 1 2018

yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Addressed Anna's comments: extracted a separate analysis pass called CFG Deadness.

Jun 1 2018, 12:51 AM

May 29 2018

yrouban updated the diff for D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

Added test cases with a dead edge but without dead blocks.
Fixed the algorithm to ignore such dead edges.

May 29 2018, 8:20 AM

May 28 2018

yrouban planned changes to D47441: SafepointIRVerifier should ignore dead blocks and dead edges.
May 28 2018, 9:11 PM
yrouban added a comment to D47441: SafepointIRVerifier should ignore dead blocks and dead edges.

I realized that there is a case with a dead edge but without dead blocks. I will improve the patch and add a testcase.

May 28 2018, 9:11 PM
yrouban updated the summary of D47441: SafepointIRVerifier should ignore dead blocks and dead edges.
May 28 2018, 12:35 AM