Page MenuHomePhabricator

kachkov98 (Sergei Kachkov)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 28 2018, 11:44 AM (225 w, 1 d)

Recent Activity

Wed, Mar 1

kachkov98 planned changes to D142705: [GVN] Support address translation through select instructions.
Wed, Mar 1, 12:44 AM · Restricted Project, Restricted Project
kachkov98 reopened D142705: [GVN] Support address translation through select instructions.

Patch was reverted due to issue witch cached MemDep result. There is a code like this:

%arrayidx248 = getelementptr inbounds [0 x i8], ptr @zz_lengths, i64 0, i64 %idxprom247
%cond.in.in = select i1 %switch8091, ptr %orec_size, ptr %arrayidx248
%cond.in = load i8, ptr %cond.in.in, align 1, !tbaa !5

And on second iteration of processBlock() %switch8091 value is proved to be false, so select is removed and replaced with %arrayidx248, but we didn't invalidate already cached SelectDep entry of load from first GVN iteration - need to figure out how to add this logic into MemoryDependenceResults::removeInstruction method.

Wed, Mar 1, 12:43 AM · Restricted Project, Restricted Project

Mon, Feb 27

kachkov98 added a reverting change for rGb5bf6f6392a3: [GVN] Support address translation through select instructions: rG1aece0e5edf8: Revert "[GVN] Support address translation through select instructions".
Mon, Feb 27, 1:58 AM · Restricted Project, Restricted Project
kachkov98 committed rG1aece0e5edf8: Revert "[GVN] Support address translation through select instructions" (authored by kachkov98).
Revert "[GVN] Support address translation through select instructions"
Mon, Feb 27, 1:58 AM · Restricted Project, Restricted Project
kachkov98 added a reverting change for D142705: [GVN] Support address translation through select instructions: rG1aece0e5edf8: Revert "[GVN] Support address translation through select instructions".
Mon, Feb 27, 1:58 AM · Restricted Project, Restricted Project
kachkov98 committed rGb5bf6f6392a3: [GVN] Support address translation through select instructions (authored by kachkov98).
[GVN] Support address translation through select instructions
Mon, Feb 27, 1:09 AM · Restricted Project, Restricted Project
kachkov98 closed D142705: [GVN] Support address translation through select instructions.
Mon, Feb 27, 1:08 AM · Restricted Project, Restricted Project

Feb 20 2023

kachkov98 added a comment to D142705: [GVN] Support address translation through select instructions.

Thank you for the review! I will wait some time in case of other reviewers' objections and then merge it.

Feb 20 2023, 11:50 PM · Restricted Project, Restricted Project

Feb 10 2023

kachkov98 added a comment to D142705: [GVN] Support address translation through select instructions.

(we need only its condition and position to insert materialized value, so reporting select i1 %cond, i32 undef, i32 undef is ok: we don't care about its true and false values, addresses for %cond = true and %cond = false will be passed separately).

Then why can't you just always insert it on this block's terminator? Why iterate through its instructions and try to find this garbage?

Feb 10 2023, 4:19 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D142705: [GVN] Support address translation through select instructions.

Insert select before predecessor's terminator to simplify clobbers search

Feb 10 2023, 4:15 AM · Restricted Project, Restricted Project

Feb 7 2023

kachkov98 added a comment to D142705: [GVN] Support address translation through select instructions.

I want to put more context for this change that may cover some questions regarding the algorithm and its limitations. Let's consider the following simple case:

  BB1
  / |
BB2 |
  \ |
  BB3
Feb 7 2023, 2:11 AM · Restricted Project, Restricted Project
kachkov98 committed rG203cc665cf01: [PHITransAddr] Simplify casts in PHITransAddr (authored by kachkov98).
[PHITransAddr] Simplify casts in PHITransAddr
Feb 7 2023, 1:44 AM · Restricted Project, Restricted Project
kachkov98 committed rG2c8362b2a220: [NFC] Add pre-commit test for simplifyCastInst in PHITransAddr (authored by kachkov98).
[NFC] Add pre-commit test for simplifyCastInst in PHITransAddr
Feb 7 2023, 1:43 AM · Restricted Project, Restricted Project
kachkov98 closed D143167: [PHITransAddr] Simplify casts in PHITransAddr.
Feb 7 2023, 1:43 AM · Restricted Project, Restricted Project

Feb 6 2023

kachkov98 added inline comments to D142705: [GVN] Support address translation through select instructions.
Feb 6 2023, 4:59 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D142705: [GVN] Support address translation through select instructions.

Address review comments

Feb 6 2023, 4:49 AM · Restricted Project, Restricted Project

Feb 3 2023

kachkov98 added a comment to D143167: [PHITransAddr] Simplify casts in PHITransAddr.

Looks reasonable. I'm not familiar with this code part in general, so please wait some time in case if someone has concerns, but looks pretty straightforward.

Feb 3 2023, 4:14 AM · Restricted Project, Restricted Project
kachkov98 committed rGca49d6bc88ce: [NFC] PHITransAddr refactoring - use range-based loops and standard algorithms (authored by kachkov98).
[NFC] PHITransAddr refactoring - use range-based loops and standard algorithms
Feb 3 2023, 4:11 AM · Restricted Project, Restricted Project
kachkov98 closed D143179: [NFC] PHITransAddr refactoring - use range-based loops and standard algorithms.
Feb 3 2023, 4:11 AM · Restricted Project, Restricted Project
kachkov98 committed rG4e37f068dcf4: [NFC] Remove isSafeToSpeculativelyExecute checks for casts (authored by kachkov98).
[NFC] Remove isSafeToSpeculativelyExecute checks for casts
Feb 3 2023, 2:39 AM · Restricted Project, Restricted Project
kachkov98 closed D143255: [NFC] Remove isSafeToSpeculativelyExecute checks for casts.
Feb 3 2023, 2:39 AM · Restricted Project, Restricted Project
kachkov98 added a reviewer for D143179: [NFC] PHITransAddr refactoring - use range-based loops and standard algorithms: mkazantsev.
Feb 3 2023, 2:31 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D143179: [NFC] PHITransAddr refactoring - use range-based loops and standard algorithms.

Update patch

Feb 3 2023, 2:31 AM · Restricted Project, Restricted Project
kachkov98 added a comment to D143167: [PHITransAddr] Simplify casts in PHITransAddr.

Separate patch for removing isSafeToSpeculativelyExecute() checks: https://reviews.llvm.org/D143255

Feb 3 2023, 2:30 AM · Restricted Project, Restricted Project
kachkov98 added a reviewer for D143255: [NFC] Remove isSafeToSpeculativelyExecute checks for casts: mkazantsev.
Feb 3 2023, 2:29 AM · Restricted Project, Restricted Project
kachkov98 requested review of D143255: [NFC] Remove isSafeToSpeculativelyExecute checks for casts.
Feb 3 2023, 2:29 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D143167: [PHITransAddr] Simplify casts in PHITransAddr.

Added synthetic test for simplifyCastInst

Feb 3 2023, 2:27 AM · Restricted Project, Restricted Project
kachkov98 committed rG1fc18272e609: [NFC] PHITransAddr refactoring - return translated value directly or nullptr on (authored by kachkov98).
[NFC] PHITransAddr refactoring - return translated value directly or nullptr on
Feb 3 2023, 1:09 AM · Restricted Project, Restricted Project
kachkov98 closed D143171: [NFC] PHITransAddr refactoring - change translateValue interface.
Feb 3 2023, 1:09 AM · Restricted Project, Restricted Project

Feb 2 2023

kachkov98 requested review of D143179: [NFC] PHITransAddr refactoring - use range-based loops and standard algorithms.
Feb 2 2023, 6:50 AM · Restricted Project, Restricted Project
kachkov98 retitled D143171: [NFC] PHITransAddr refactoring - change translateValue interface from [NFC] PHITransAddr refactoring to [NFC] PHITransAddr refactoring - change translateValue interface.
Feb 2 2023, 6:41 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D143171: [NFC] PHITransAddr refactoring - change translateValue interface.

Split patches

Feb 2 2023, 6:39 AM · Restricted Project, Restricted Project
kachkov98 committed rG6f9e3f3b339e: [NFC] Fix function naming conventions in PHITransAddr methods (authored by kachkov98).
[NFC] Fix function naming conventions in PHITransAddr methods
Feb 2 2023, 5:39 AM · Restricted Project, Restricted Project
kachkov98 closed D143166: [NFC] PHITransAddr refactoring.
Feb 2 2023, 5:39 AM · Restricted Project, Restricted Project
kachkov98 retitled D143167: [PHITransAddr] Simplify casts in PHITransAddr from [NFCI] Cleanup processing of casts in PHITransAddr to [PHITransAddr] Simplify casts in PHITransAddr.
Feb 2 2023, 5:20 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D143167: [PHITransAddr] Simplify casts in PHITransAddr.

Split patch

Feb 2 2023, 5:19 AM · Restricted Project, Restricted Project
kachkov98 updated the summary of D143166: [NFC] PHITransAddr refactoring.
Feb 2 2023, 5:13 AM · Restricted Project, Restricted Project
kachkov98 added reviewers for D143171: [NFC] PHITransAddr refactoring - change translateValue interface: mkazantsev, nikic.
Feb 2 2023, 5:13 AM · Restricted Project, Restricted Project
kachkov98 updated the summary of D143171: [NFC] PHITransAddr refactoring - change translateValue interface.
Feb 2 2023, 5:12 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D143171: [NFC] PHITransAddr refactoring - change translateValue interface.

Remove isSafeToSpeculativelyExecute() checks

Feb 2 2023, 5:10 AM · Restricted Project, Restricted Project
kachkov98 added a comment to D143166: [NFC] PHITransAddr refactoring.

Separate patch with code changes: https://reviews.llvm.org/D143171

Feb 2 2023, 4:54 AM · Restricted Project, Restricted Project
kachkov98 requested review of D143171: [NFC] PHITransAddr refactoring - change translateValue interface.
Feb 2 2023, 4:53 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D143166: [NFC] PHITransAddr refactoring.

Split renaming and code changes

Feb 2 2023, 4:42 AM · Restricted Project, Restricted Project
kachkov98 added inline comments to D143167: [PHITransAddr] Simplify casts in PHITransAddr.
Feb 2 2023, 4:21 AM · Restricted Project, Restricted Project
kachkov98 added reviewers for D143167: [PHITransAddr] Simplify casts in PHITransAddr: mkazantsev, nikic.
Feb 2 2023, 4:10 AM · Restricted Project, Restricted Project
kachkov98 added reviewers for D143166: [NFC] PHITransAddr refactoring: mkazantsev, nikic.
Feb 2 2023, 4:09 AM · Restricted Project, Restricted Project
kachkov98 added inline comments to D142705: [GVN] Support address translation through select instructions.
Feb 2 2023, 4:09 AM · Restricted Project, Restricted Project
kachkov98 added a comment to D142705: [GVN] Support address translation through select instructions.

Since naming conventions are indeed broken across many PHITransAddr methods, maybe it's worth to clean up them first.

Feb 2 2023, 3:53 AM · Restricted Project, Restricted Project
kachkov98 requested review of D143167: [PHITransAddr] Simplify casts in PHITransAddr.
Feb 2 2023, 3:50 AM · Restricted Project, Restricted Project
kachkov98 requested review of D143166: [NFC] PHITransAddr refactoring.
Feb 2 2023, 3:49 AM · Restricted Project, Restricted Project

Feb 1 2023

kachkov98 committed rGfdeafafe4900: [GVN] Add pre-commit tests for address translation through select (D142705) (authored by kachkov98).
[GVN] Add pre-commit tests for address translation through select (D142705)
Feb 1 2023, 5:27 AM · Restricted Project, Restricted Project
kachkov98 closed D142706: [GVN] Add pre-commit tests for address translation through select (D142705).
Feb 1 2023, 5:27 AM · Restricted Project, Restricted Project

Jan 27 2023

kachkov98 updated the summary of D142705: [GVN] Support address translation through select instructions.
Jan 27 2023, 5:03 AM · Restricted Project, Restricted Project
kachkov98 updated the summary of D142705: [GVN] Support address translation through select instructions.
Jan 27 2023, 5:02 AM · Restricted Project, Restricted Project
kachkov98 requested review of D142706: [GVN] Add pre-commit tests for address translation through select (D142705).
Jan 27 2023, 4:54 AM · Restricted Project, Restricted Project
kachkov98 requested review of D142705: [GVN] Support address translation through select instructions.
Jan 27 2023, 4:54 AM · Restricted Project, Restricted Project

Jan 20 2023

kachkov98 added a comment to D141680: [GVN] Refactor findDominatingLoad function.

Thank you for the reviews!

Jan 20 2023, 12:58 AM · Restricted Project, Restricted Project
kachkov98 committed rGe1a702db2fcd: [GVN] Refactor findDominatingLoad function (authored by kachkov98).
[GVN] Refactor findDominatingLoad function
Jan 20 2023, 12:55 AM · Restricted Project, Restricted Project
kachkov98 closed D141680: [GVN] Refactor findDominatingLoad function.
Jan 20 2023, 12:54 AM · Restricted Project, Restricted Project

Jan 18 2023

kachkov98 added a comment to D141712: [GVN] Improve PRE on load instructions.

I have a question regarding code example: it looks like a case of load hoisting from SuccBB and basic block after splitting of (PredBB, LoadBB) critical edge. If so, the same result can be achieved by:

  1. running SimplifyCFGOpt::HoistThenElseCodeToIf after GVN. Its implementation is very constrained (can hoist only first N exactly the same instructions from ThenBB and ElseBB, so very sensitive to instruction order)
  2. Run GVNHoist pass after GVN -- the most general solution. Unfortunately it's disabled by default and placed before GVN in pass pipeline (although GVN exposes lots of hoisting opportunities, and its authors advise to run it before and after GVN-PRE).
Jan 18 2023, 8:29 AM · Restricted Project, Restricted Project
kachkov98 committed rGb06fd14359fd: [GVN][NFC] Add pre-commit tests for non-local load cases (D141680) (authored by kachkov98).
[GVN][NFC] Add pre-commit tests for non-local load cases (D141680)
Jan 18 2023, 12:51 AM · Restricted Project, Restricted Project

Jan 17 2023

kachkov98 added inline comments to D141680: [GVN] Refactor findDominatingLoad function.
Jan 17 2023, 9:01 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D141680: [GVN] Refactor findDominatingLoad function.

Check that load types are matched (add negative test for that)

Jan 17 2023, 8:54 AM · Restricted Project, Restricted Project
kachkov98 committed rGbfd2dd49ffc6: [GVN] Refactor handling of pointer-select in GVN pass (authored by kachkov98).
[GVN] Refactor handling of pointer-select in GVN pass
Jan 17 2023, 12:35 AM · Restricted Project, Restricted Project
kachkov98 closed D141619: [GVN] Refactor handling of pointer-select in GVN pass.
Jan 17 2023, 12:34 AM · Restricted Project, Restricted Project
kachkov98 updated the summary of D141619: [GVN] Refactor handling of pointer-select in GVN pass.
Jan 17 2023, 12:34 AM · Restricted Project, Restricted Project

Jan 16 2023

kachkov98 updated the diff for D141680: [GVN] Refactor findDominatingLoad function.

Rebase
Split pre-commit test

Jan 16 2023, 6:50 AM · Restricted Project, Restricted Project
kachkov98 requested review of D141619: [GVN] Refactor handling of pointer-select in GVN pass.
Jan 16 2023, 5:59 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D141619: [GVN] Refactor handling of pointer-select in GVN pass.

Treat select as Def dependency

Jan 16 2023, 5:57 AM · Restricted Project, Restricted Project
kachkov98 reopened D141619: [GVN] Refactor handling of pointer-select in GVN pass.

Since extending MemDepResult looks not feasable (and replacing it to tag-pointer pair also looks bad because it frequently passed by value), I think we can treat select dependency as Def. It also fits naturally into existing GVN infra, and the meaning of Def dependency is already overloaded (it can be other load/store/alloca/memory intrinsic/etc.)

Jan 16 2023, 5:56 AM · Restricted Project, Restricted Project
kachkov98 added a reverting change for rGfc7cdaa37330: [GVN] Refactor handling of pointer-select in GVN pass: rG868abc471d10: Revert "[GVN] Refactor handling of pointer-select in GVN pass".
Jan 16 2023, 4:14 AM · Restricted Project, Restricted Project
kachkov98 committed rG868abc471d10: Revert "[GVN] Refactor handling of pointer-select in GVN pass" (authored by kachkov98).
Revert "[GVN] Refactor handling of pointer-select in GVN pass"
Jan 16 2023, 4:14 AM · Restricted Project, Restricted Project
kachkov98 added a reverting change for D141619: [GVN] Refactor handling of pointer-select in GVN pass: rG868abc471d10: Revert "[GVN] Refactor handling of pointer-select in GVN pass".
Jan 16 2023, 4:14 AM · Restricted Project, Restricted Project
kachkov98 committed rGfc7cdaa37330: [GVN] Refactor handling of pointer-select in GVN pass (authored by kachkov98).
[GVN] Refactor handling of pointer-select in GVN pass
Jan 16 2023, 3:13 AM · Restricted Project, Restricted Project
kachkov98 closed D141619: [GVN] Refactor handling of pointer-select in GVN pass.
Jan 16 2023, 3:13 AM · Restricted Project, Restricted Project

Jan 13 2023

kachkov98 added reviewers for D141680: [GVN] Refactor findDominatingLoad function: nikic, fhahn, reames.
Jan 13 2023, 5:24 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D141619: [GVN] Refactor handling of pointer-select in GVN pass.

Split findDominatingLoad() rework into separate patch

Jan 13 2023, 5:23 AM · Restricted Project, Restricted Project
kachkov98 requested review of D141680: [GVN] Refactor findDominatingLoad function.
Jan 13 2023, 5:21 AM · Restricted Project, Restricted Project
kachkov98 committed rGfc9b92e14f88: [GVN][NFC] Refactor GVN::AnalyzeLoadAvailability method (authored by kachkov98).
[GVN][NFC] Refactor GVN::AnalyzeLoadAvailability method
Jan 13 2023, 1:26 AM · Restricted Project, Restricted Project
kachkov98 closed D141664: [GVN][NFC] Refactor GVN::AnalyzeLoadAvailability method.
Jan 13 2023, 1:25 AM · Restricted Project, Restricted Project
kachkov98 updated the summary of D141619: [GVN] Refactor handling of pointer-select in GVN pass.
Jan 13 2023, 12:49 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D141619: [GVN] Refactor handling of pointer-select in GVN pass.

Split AnalyzeLoadAvailability refactoring into separate patch: https://reviews.llvm.org/D141664

Jan 13 2023, 12:41 AM · Restricted Project, Restricted Project
kachkov98 added a reviewer for D141664: [GVN][NFC] Refactor GVN::AnalyzeLoadAvailability method: nikic.
Jan 13 2023, 12:39 AM · Restricted Project, Restricted Project
kachkov98 requested review of D141664: [GVN][NFC] Refactor GVN::AnalyzeLoadAvailability method.
Jan 13 2023, 12:38 AM · Restricted Project, Restricted Project

Jan 12 2023

kachkov98 updated the summary of D141619: [GVN] Refactor handling of pointer-select in GVN pass.
Jan 12 2023, 8:58 AM · Restricted Project, Restricted Project
kachkov98 requested review of D141619: [GVN] Refactor handling of pointer-select in GVN pass.
Jan 12 2023, 8:48 AM · Restricted Project, Restricted Project

Dec 28 2022

kachkov98 added a comment to D132208: [LoopIntWrapPredication] Loop Integer Wrapping Predication Pass.

Ping (this pass is mostly profitable for RISC-V target, because zext on this target has non-zero cost, and the intention is to report Coremark results for RISC-V with this optimization enabled, like with DFA jump threading)

Dec 28 2022, 5:36 AM · Restricted Project, Restricted Project

Dec 23 2022

kachkov98 committed rG550d93ab1d2e: [RISCV] Combine comparison and logic ops (authored by iabg-sc).
[RISCV] Combine comparison and logic ops
Dec 23 2022, 6:11 AM · Restricted Project, Restricted Project
kachkov98 closed D134277: [RISCV] Combine comparison and logic ops..
Dec 23 2022, 6:11 AM · Restricted Project, Restricted Project
kachkov98 committed rG7b9b81a24582: [RISCV][test] Combine comparison and logic ops (authored by iabg-sc).
[RISCV][test] Combine comparison and logic ops
Dec 23 2022, 6:11 AM · Restricted Project, Restricted Project

Dec 8 2022

kachkov98 added a comment to D132208: [LoopIntWrapPredication] Loop Integer Wrapping Predication Pass.

Compile-time results on llvm-test-suite + SPEC2006 + SPEC2017:

Program                                                                         loop-int-wrap-predication.NumPredicatedChains
Dec 8 2022, 1:17 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D132208: [LoopIntWrapPredication] Loop Integer Wrapping Predication Pass.

Rebased on ToT
Add predication on separate conditions
Add simple cost model (do not predicate big loops)

Dec 8 2022, 1:04 AM · Restricted Project, Restricted Project

Dec 6 2022

kachkov98 committed rG132dc442ba3c: [RISCV] Generate .cfi_def_cfa_expression for RVV stack adjustment (authored by kachkov98).
[RISCV] Generate .cfi_def_cfa_expression for RVV stack adjustment
Dec 6 2022, 1:47 AM · Restricted Project, Restricted Project
kachkov98 closed D136263: [RISCV] Generate .cfi_def_cfa_expression for RVV stack adjustment.
Dec 6 2022, 1:46 AM · Restricted Project, Restricted Project
kachkov98 committed rGca0b4d58eaad: [libunwind][RISCV] Support reading of VLENB CSR register (authored by kachkov98).
[libunwind][RISCV] Support reading of VLENB CSR register
Dec 6 2022, 12:50 AM · Restricted Project
kachkov98 closed D136264: [libunwind][RISCV] Support reading of VLENB CSR register.
Dec 6 2022, 12:50 AM · Restricted Project, Restricted Project, Restricted Project

Dec 5 2022

kachkov98 updated the diff for D136264: [libunwind][RISCV] Support reading of VLENB CSR register.

Fix diff

Dec 5 2022, 6:27 AM · Restricted Project, Restricted Project, Restricted Project
kachkov98 updated the diff for D136264: [libunwind][RISCV] Support reading of VLENB CSR register.

Addressing review comments

Dec 5 2022, 6:25 AM · Restricted Project, Restricted Project, Restricted Project
kachkov98 added inline comments to D139109: [LoopUnswitch] Perform loop unswitching on select instructions.
Dec 5 2022, 5:59 AM · Restricted Project, Restricted Project
kachkov98 updated the diff for D139109: [LoopUnswitch] Perform loop unswitching on select instructions.

Insert freeze of select condition

Dec 5 2022, 5:54 AM · Restricted Project, Restricted Project