Page MenuHomePhabricator

kmitropoulou (Konstantina Mitropoulou)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 11 2022, 3:17 PM (72 w, 2 d)

Recent Activity

Mar 15 2023

kmitropoulou committed rG6bc5aa592ad9: [AMDGPU] Update mul.ll with auto-generated checks (authored by kmitropoulou).
[AMDGPU] Update mul.ll with auto-generated checks
Mar 15 2023, 8:17 AM · Restricted Project, Restricted Project
kmitropoulou closed D145990: [AMDGPU] Update mul.ll with auto-generated checks.
Mar 15 2023, 8:17 AM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D145990: [AMDGPU] Update mul.ll with auto-generated checks.

Updating D145990: [AMDGPU] Update mul.ll with auto-generated checks

Mar 15 2023, 8:12 AM · Restricted Project, Restricted Project

Mar 14 2023

kmitropoulou updated the diff for D145990: [AMDGPU] Update mul.ll with auto-generated checks.

Updating D145990: [AMDGPU] Update mul.ll with auto-generated checks

Mar 14 2023, 2:59 PM · Restricted Project, Restricted Project

Mar 13 2023

kmitropoulou updated the diff for D145990: [AMDGPU] Update mul.ll with auto-generated checks.

Updating D145990: [AMDGPU] Update mul.ll with auto-generated checks

Mar 13 2023, 8:12 PM · Restricted Project, Restricted Project
kmitropoulou added reviewers for D145990: [AMDGPU] Update mul.ll with auto-generated checks: foad, rampitec, dstuttard.
Mar 13 2023, 3:01 PM · Restricted Project, Restricted Project
kmitropoulou requested review of D145990: [AMDGPU] Update mul.ll with auto-generated checks.
Mar 13 2023, 2:59 PM · Restricted Project, Restricted Project

Feb 22 2023

kmitropoulou committed rG944f429b210d: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and… (authored by kmitropoulou).
[AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and…
Feb 22 2023, 9:02 AM · Restricted Project, Restricted Project
kmitropoulou closed D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.
Feb 22 2023, 9:02 AM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.

Updating D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics

Feb 22 2023, 9:00 AM · Restricted Project, Restricted Project

Feb 21 2023

kmitropoulou updated the diff for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.

Updating D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics

Feb 21 2023, 12:55 PM · Restricted Project, Restricted Project

Feb 20 2023

kmitropoulou committed rGa0e258da1944: [AMDGPU] Add tests for future commit (authored by kmitropoulou).
[AMDGPU] Add tests for future commit
Feb 20 2023, 9:39 PM · Restricted Project, Restricted Project
kmitropoulou closed D144312: [AMDGPU] Add tests for future commit.
Feb 20 2023, 9:39 PM · Restricted Project, Restricted Project
kmitropoulou added a reviewer for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics: arsenm.
Feb 20 2023, 7:46 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D144312: [AMDGPU] Add tests for future commit.

Updating D144312: [AMDGPU] Add tests for future commit

Feb 20 2023, 7:38 PM · Restricted Project, Restricted Project
kmitropoulou added inline comments to D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.
Feb 20 2023, 7:34 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.

Updating D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics

Feb 20 2023, 7:17 PM · Restricted Project, Restricted Project

Feb 17 2023

kmitropoulou updated the diff for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.

Updating D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics

Feb 17 2023, 6:14 PM · Restricted Project, Restricted Project
kmitropoulou retitled D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics from [AMDGPU] Improve the lowering of buffer_load_{u8, u16} intrinsics. to [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.
Feb 17 2023, 6:14 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.

Updating D144313: [AMDGPU] Improve the lowering of buffer_load_{u8, u16} intrinsics.

Feb 17 2023, 6:12 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.

Updating D144313: [AMDGPU] Improve the lowering of buffer_load_{u8, u16} intrinsics.

Feb 17 2023, 6:06 PM · Restricted Project, Restricted Project
kmitropoulou added reviewers for D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics: foad, rampitec.
Feb 17 2023, 6:05 PM · Restricted Project, Restricted Project
kmitropoulou added reviewers for D144312: [AMDGPU] Add tests for future commit: foad, rampitec.
Feb 17 2023, 6:04 PM · Restricted Project, Restricted Project
kmitropoulou requested review of D144313: [AMDGPU] Improve the lowering of raw_buffer_load_{i8,i16} and struct_buffer_load_{i8,i16} intrinsics.
Feb 17 2023, 6:03 PM · Restricted Project, Restricted Project
kmitropoulou requested review of D144312: [AMDGPU] Add tests for future commit.
Feb 17 2023, 5:46 PM · Restricted Project, Restricted Project

Jan 23 2023

kmitropoulou added a comment to D103016: NewGVN: Relax assertion about number of times a value is seen.

We can revisit this patch if the problem shows up again.

Jan 23 2023, 2:41 PM · Restricted Project, Restricted Project
kmitropoulou added a comment to D103016: NewGVN: Relax assertion about number of times a value is seen.

I cannot reproduce the bug. I had to decrease the counter down to 6 in order to activate the assertion. This is normal. The counter is updated after value numbering. An instruction will be processed again if one of its operands is added in a different congruence class. Do you remember which was the problem?

Jan 23 2023, 1:12 PM · Restricted Project, Restricted Project

Dec 9 2022

kmitropoulou removed a reviewer for D83089: DomTree: Extract (mostly) read-only logic into type-erased base classes: kmitropoulou.
Dec 9 2022, 8:59 PM · Restricted Project, Restricted Project
kmitropoulou removed a reviewer for D137338: Fix dupe word typos: kmitropoulou.
Dec 9 2022, 8:58 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project

Oct 25 2022

kmitropoulou resigned from D136164: [MemorySSA] Use BatchAA for clobber walker.
Oct 25 2022, 2:57 PM · Restricted Project, Restricted Project
Herald added a reviewer for D136164: [MemorySSA] Use BatchAA for clobber walker: kmitropoulou.

Ping :)

e.g. for NewGVN I think we should be able to use a single BatchAA instance for all queries.

@kmitropoulou it sounds like this could help with NewGVN compile time.

Without looking too deeply into it, it's likely that the changes proposed by @kmitropoulou would actually prevent sharing BatchAA for all queries, because they introduce IR changes to the analysis phase, while NewGVN is generally designed to separate analysis and transformation.

Oct 25 2022, 2:55 PM · Restricted Project, Restricted Project

Sep 22 2022

kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block.

Sep 22 2022, 3:50 PM · Restricted Project, Restricted Project

Sep 21 2022

kmitropoulou committed rG80d3ed6fb154: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper() (authored by kmitropoulou).
[NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper()
Sep 21 2022, 9:27 AM · Restricted Project, Restricted Project
kmitropoulou closed D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().
Sep 21 2022, 9:27 AM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Updating D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper()

Sep 21 2022, 9:24 AM · Restricted Project, Restricted Project

Sep 20 2022

kmitropoulou updated the diff for D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Updating D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper()

Sep 20 2022, 2:26 PM · Restricted Project, Restricted Project
kmitropoulou added a comment to D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Can you rebase the patch on ToT then?

Sep 20 2022, 2:14 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Updating D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper()

Sep 20 2022, 2:14 PM · Restricted Project, Restricted Project
kmitropoulou added inline comments to D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().
Sep 20 2022, 1:59 PM · Restricted Project, Restricted Project
kmitropoulou added inline comments to D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().
Sep 20 2022, 1:34 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Updating D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper()

Sep 20 2022, 1:23 PM · Restricted Project, Restricted Project

Sep 16 2022

kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block.

Sep 16 2022, 3:54 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions..

Updating D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions.

Sep 16 2022, 2:30 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions.

Updating D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions

Sep 16 2022, 2:29 PM · Restricted Project, Restricted Project

Sep 15 2022

kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block.

Sep 15 2022, 11:10 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block.

Sep 15 2022, 10:55 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions..

Updating D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions.

Sep 15 2022, 10:54 PM · Restricted Project, Restricted Project
kmitropoulou updated the summary of D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions.
Sep 15 2022, 10:49 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions.

Updating D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions

Sep 15 2022, 10:48 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block.

Sep 15 2022, 10:44 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions..

Updating D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions.

Sep 15 2022, 10:41 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions.

Updating D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions

Sep 15 2022, 10:40 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124069: [NFC][NewGVN] Add updateDFSNumbers()..

Updating D124069: [NFC][NewGVN] Add updateDFSNumbers().

Sep 15 2022, 10:38 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit.

Updating D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit

Sep 15 2022, 10:35 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit.

Updating D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit

Sep 15 2022, 10:33 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124069: [NFC][NewGVN] Add updateDFSNumbers()..

Updating D124069: [NFC][NewGVN] Add updateDFSNumbers().

Sep 15 2022, 10:30 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124068: [NFC][NewGVN][LoadCoercion] Add tests for future commit..

Updating D124068: [NFC][NewGVN][LoadCoercion] Add tests for future commit.

Sep 15 2022, 10:28 PM · Restricted Project, Restricted Project
kmitropoulou retitled D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block. from [NewGVN][LoadCoercion][3/3] Replace load with a phi node to [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..
Sep 15 2022, 10:21 PM · Restricted Project, Restricted Project
kmitropoulou added inline comments to D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..
Sep 15 2022, 10:20 PM · Restricted Project, Restricted Project
kmitropoulou added a comment to D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

In example 2 you insert a new instruction %V1 = load i32, i32* %P at the end of BB2. I'm not sure this is safe in general. For example, if BB2 has other successors:

BB1     BB2
   \   /   \
    BB3     BB4

then the new load instruction will be executed even if BB2 is going to branch to BB4, and in that case the load might trap.

Sep 15 2022, 10:16 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Replace load with a phi node

Sep 15 2022, 10:10 PM · Restricted Project, Restricted Project

Aug 24 2022

kmitropoulou added inline comments to D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().
Aug 24 2022, 3:16 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Updating D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper()

Aug 24 2022, 2:47 PM · Restricted Project, Restricted Project

Aug 18 2022

kmitropoulou added a comment to D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Could you elaborate on the motivation for removing the helper?

Aug 18 2022, 9:41 AM · Restricted Project, Restricted Project

Aug 17 2022

kmitropoulou committed rG5bc87911872d: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not… (authored by kmitropoulou).
[NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not…
Aug 17 2022, 6:58 PM · Restricted Project, Restricted Project
kmitropoulou closed D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..
Aug 17 2022, 6:58 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..

Updating D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block.

Aug 17 2022, 5:59 PM · Restricted Project, Restricted Project
kmitropoulou added a comment to D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

ping

Aug 17 2022, 3:43 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..

Updating D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block.

Aug 17 2022, 2:37 PM · Restricted Project, Restricted Project
kmitropoulou abandoned D132072: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..
Aug 17 2022, 2:36 PM · Restricted Project, Restricted Project
kmitropoulou requested review of D132072: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..
Aug 17 2022, 2:35 PM · Restricted Project, Restricted Project

Aug 9 2022

kmitropoulou added a comment to D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

ping

Aug 9 2022, 11:22 AM · Restricted Project, Restricted Project
kmitropoulou added a comment to D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..

ping

Aug 9 2022, 11:22 AM · Restricted Project, Restricted Project

Aug 2 2022

kmitropoulou added a comment to D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..

I am not too familiar with NewGVN, but wouldn't it be simpler and safer to clear OpSafeForPHIOfOps in verifyIterationSettled()? It is inside #ifndef NDEBUG so it doesn't matter too much if it's a bit slower.

Aug 2 2022, 1:50 PM · Restricted Project, Restricted Project
kmitropoulou retitled D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block. from [NewGVN][PHIOFOPS] Bail-out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block. to [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..
Aug 2 2022, 1:49 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..

Updating D130910: [NewGVN][PHIOFOPS] Bail-out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block.

Aug 2 2022, 1:49 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().

Updating D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper()

Aug 2 2022, 10:24 AM · Restricted Project, Restricted Project

Aug 1 2022

kmitropoulou added reviewers for D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper(): asbirlea, fhahn.
Aug 1 2022, 4:24 PM · Restricted Project, Restricted Project
kmitropoulou requested review of D130949: [NFC][NewGVN] Remove OpIsSafeForPHIOfOpsHelper().
Aug 1 2022, 4:19 PM · Restricted Project, Restricted Project
kmitropoulou added a reviewer for D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block.: nikic.
Aug 1 2022, 1:19 PM · Restricted Project, Restricted Project
kmitropoulou updated the summary of D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..
Aug 1 2022, 8:50 AM · Restricted Project, Restricted Project
kmitropoulou requested review of D130910: [NewGVN][PHIOFOPS] Bail out if an operand is in OpSafeForPHIOfOps but it is not safe for the current basic block..
Aug 1 2022, 8:37 AM · Restricted Project, Restricted Project

Jul 12 2022

kmitropoulou added a comment to D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

ping

Jul 12 2022, 9:34 AM · Restricted Project, Restricted Project
kmitropoulou added a comment to D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions..

ping

Jul 12 2022, 9:33 AM · Restricted Project, Restricted Project
kmitropoulou added a comment to D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions.

ping

Jul 12 2022, 9:33 AM · Restricted Project, Restricted Project

Jun 22 2022

kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Replace load with a phi node

Jun 22 2022, 4:39 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit.

Updating D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit

Jun 22 2022, 3:09 PM · Restricted Project, Restricted Project

Jun 17 2022

kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Replace load with a phi node

Jun 17 2022, 9:27 PM · Restricted Project, Restricted Project

Jun 16 2022

kmitropoulou updated the diff for D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit.

Updating D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit

Jun 16 2022, 2:30 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit.

Updating D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit

Jun 16 2022, 2:28 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124068: [NFC][NewGVN][LoadCoercion] Add tests for future commit..

Updating D124068: [NFC][NewGVN][LoadCoercion] Add tests for future commit.

Jun 16 2022, 2:26 PM · Restricted Project, Restricted Project

Jun 15 2022

kmitropoulou updated the diff for D127628: [NewGVN][LoadCoercion][3/3] Partial redundant load elimination for load instructions that are dependent on a MemoryPhi or another load instruction in a predecessor basic block..

Updating D127628: [NewGVN][LoadCoercion][3/3] Replace load with a phi node

Jun 15 2022, 1:31 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions..

Updating D124230: [NewGVN][LoadCoercion][2/3] Add support for load coercion between load instructions.

Jun 15 2022, 1:16 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions.

Updating D124071: [NewGVN][LoadCoercion][1/3] Add support for load coercion between store and load instructions

Jun 15 2022, 1:05 PM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit.

Updating D127627: [NFC][NewGVN][LoadCoercion] Add tests for future commit

Jun 15 2022, 9:46 AM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124068: [NFC][NewGVN][LoadCoercion] Add tests for future commit..

[NFC][NewGVN][LoadCoercion] Add tests for future commit.

Jun 15 2022, 8:49 AM · Restricted Project, Restricted Project
kmitropoulou added a comment to D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit.

LGTM. Could also use a common "GVN" prefix if you want (and if there are any tests at all where old and new gvn produce the same result).

I am not sure what you mean. The old and new GVN might not have exactly the same output for load coercion e.g. in https://reviews.llvm.org/D124230 - test5, test 6 and test8 .

I mean if you write the RUN lines like this then update_test_checks is clever enough to use the GVN prefix if both passes produce identical results for a particular function, or separate OLDGVN and NEWGVN and prefixes if they produce different results:

; RUN: opt -S -gvn < %s | FileCheck %s -check-prefixes=GVN,OLDGVN
; RUN: opt -S -newgvn < %s | FileCheck %s -check-prefixes=GVN,NEWGVN

For example, at the moment I get different results on test1:

define i8 @test1(i32* %P1) {
; OLDGVN-LABEL: @test1(
; OLDGVN-NEXT:    [[V1:%.*]] = load i32, i32* [[P1:%.*]], align 4
; OLDGVN-NEXT:    [[P2:%.*]] = bitcast i32* [[P1]] to i8*
; OLDGVN-NEXT:    [[TMP1:%.*]] = trunc i32 [[V1]] to i8
; OLDGVN-NEXT:    [[V4:%.*]] = add i8 [[TMP1]], [[TMP1]]
; OLDGVN-NEXT:    ret i8 [[V4]]
;
; NEWGVN-LABEL: @test1(
; NEWGVN-NEXT:    [[V1:%.*]] = load i32, i32* [[P1:%.*]], align 4
; NEWGVN-NEXT:    [[P2:%.*]] = bitcast i32* [[P1]] to i8*
; NEWGVN-NEXT:    [[V2:%.*]] = load i8, i8* [[P2]], align 1
; NEWGVN-NEXT:    [[V3:%.*]] = trunc i32 [[V1]] to i8
; NEWGVN-NEXT:    [[V4:%.*]] = add i8 [[V2]], [[V3]]
; NEWGVN-NEXT:    ret i8 [[V4]]
;
  %V1 = load i32, i32* %P1
  %P2 = bitcast i32* %P1 to i8*
  %V2 = load i8, i8* %P2
  %V3 = trunc i32 %V1 to i8
  %V4 = add i8 %V2, %V3
  ret i8 %V4
}

but identical results on test4:

define <{<2 x i32>, i32}> @test4(i8* %P) {
; GVN-LABEL: @test4(
; GVN-NEXT:  Entry:
; GVN-NEXT:    [[P2:%.*]] = bitcast i8* [[P:%.*]] to i32*
; GVN-NEXT:    [[V2:%.*]] = load i32, i32* [[P2]], align 4
; GVN-NEXT:    [[P1:%.*]] = bitcast i8* [[P]] to <2 x i32>*
; GVN-NEXT:    [[V1:%.*]] = load <2 x i32>, <2 x i32>* [[P1]], align 8
; GVN-NEXT:    [[I1:%.*]] = insertvalue <{ <2 x i32>, i32 }> poison, <2 x i32> [[V1]], 0
; GVN-NEXT:    [[I2:%.*]] = insertvalue <{ <2 x i32>, i32 }> [[I1]], i32 [[V2]], 1
; GVN-NEXT:    ret <{ <2 x i32>, i32 }> [[I2]]
;
Entry:
  %P2 = bitcast i8* %P to i32*
  %V2 = load i32, i32* %P2
  %P1 = bitcast i8* %P to <2 x i32>*
  %V1 = load <2 x i32>, <2 x i32>* %P1
  %I1 = insertvalue <{<2 x i32>, i32}> poison, <2 x i32> %V1, 0
  %I2 = insertvalue <{<2 x i32>, i32}> %I1, i32 %V2, 1
  ret <{<2 x i32>, i32}> %I2
}

I think this is nice because it is really easy to see where the remaining differences are.

Jun 15 2022, 8:40 AM · Restricted Project, Restricted Project
kmitropoulou updated the diff for D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit.

Updating D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit

Jun 15 2022, 8:39 AM · Restricted Project, Restricted Project

Jun 14 2022

kmitropoulou added a comment to D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit.

LGTM. Could also use a common "GVN" prefix if you want (and if there are any tests at all where old and new gvn produce the same result).

Jun 14 2022, 7:19 PM · Restricted Project, Restricted Project
kmitropoulou added a comment to D124228: [NFC][NewGVN][LoadCoercion] Add new tests for future commit.

There's no tradition in sharing tests between GVN & NewGVN. Are you going to implement the functionality in both new & old GVN?

Plus, we would appreciate if you used poison instead of undef. Thank you!

Jun 14 2022, 5:29 PM · Restricted Project, Restricted Project