Page MenuHomePhabricator

aditya_nandakumar (Aditya Nandakumar)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 17 2014, 4:45 PM (244 w, 4 d)

Recent Activity

Tue, Jun 18

aditya_nandakumar added a comment to D63496: [WIP] CodeGen: Prototype class for registers.

I did a quick glance and it seems reasonable.

Tue, Jun 18, 10:14 AM

Mon, Jun 17

aditya_nandakumar added a comment to D61321: [globalisel] Allow SrcOp to convert an APInt and render it as an immediate operand (MO.isImm() == true).

We could try to be heroic and use something stronger than unsigned for registers

Mon, Jun 17, 1:36 PM · Restricted Project
aditya_nandakumar added a comment to D61321: [globalisel] Allow SrcOp to convert an APInt and render it as an immediate operand (MO.isImm() == true).

How terrible would it be to use APInt as the interface type, but then store it as int64_t?

That seems like a good compromise to me.

I don't think I agree. APInt as an interface type won't really save any typing, so what advantage would this compromise have? It's about the same to write SrcOp(APInt(x)) vs SrcOp(int64_t(x)), but the APInt version is more expensive and if we're not actually handling arbitrary precision it's quite a bit more confusing.

Mon, Jun 17, 12:09 PM · Restricted Project
aditya_nandakumar added a comment to D61321: [globalisel] Allow SrcOp to convert an APInt and render it as an immediate operand (MO.isImm() == true).

How terrible would it be to use APInt as the interface type, but then store it as int64_t?

Mon, Jun 17, 11:33 AM · Restricted Project
aditya_nandakumar accepted D63422: GlobalISel: Verify intrinsics.

LGTM.

Mon, Jun 17, 7:10 AM

Fri, Jun 14

aditya_nandakumar closed D63302: [GISel]: Fix broken matcher for hasOneUse.

363424

Fri, Jun 14, 10:19 AM · Restricted Project
aditya_nandakumar committed rG5c7fcbdc4ba7: [GISel]: Fix pattern matcher for m_OneUse (authored by aditya_nandakumar).
[GISel]: Fix pattern matcher for m_OneUse
Fri, Jun 14, 10:17 AM
aditya_nandakumar committed rL363424: [GISel]: Fix pattern matcher for m_OneUse.
[GISel]: Fix pattern matcher for m_OneUse
Fri, Jun 14, 10:16 AM

Thu, Jun 13

aditya_nandakumar created D63302: [GISel]: Fix broken matcher for hasOneUse.
Thu, Jun 13, 3:24 PM · Restricted Project

May 16 2019

aditya_nandakumar accepted D62038: GlobalISel: Add fp<->int casts to MachineIRBuilder.
May 16 2019, 11:26 PM
aditya_nandakumar accepted D62037: GlobalISel: Add MIRBUilder wrappers for bitcount instructions.
May 16 2019, 11:25 PM

May 15 2019

aditya_nandakumar accepted D61980: GlobalISel: Add DstOp version of buildIntrinsic.

The patch looks good. One comment - does it make sense to have two functions or unify the implementation - make the non DstOp version forward to DstOp version?

It would require creating another vector constructing DstOps, which seems worse

May 15 2019, 8:45 PM
aditya_nandakumar accepted D61977: GlobalISel: Add G_FCOPYSIGN.
May 15 2019, 8:33 PM
aditya_nandakumar accepted D61978: GlobalISel: Add some FP instructions to MachineIRBuilder.
May 15 2019, 8:33 PM
aditya_nandakumar accepted D61979: GlobalISel: Add buildFConstant for APFloat.
May 15 2019, 8:30 PM
aditya_nandakumar accepted D61981: GlobalISel: Add buildXor/buildNot.
May 15 2019, 8:29 PM
aditya_nandakumar added a comment to D61980: GlobalISel: Add DstOp version of buildIntrinsic.

The patch looks good. One comment - does it make sense to have two functions or unify the implementation - make the non DstOp version forward to DstOp version?

May 15 2019, 8:28 PM

May 10 2019

aditya_nandakumar accepted D61813: [globalisel] Fix iterator invalidation in the extload combines.

Looks reasonable.

May 10 2019, 5:44 PM · Restricted Project

Apr 25 2019

aditya_nandakumar accepted D61157: [GlobalISel] Fix constrainOperandRegClass to insert copies in the right position for reg definitions.

LGTM. Thanks for fixing this.

Apr 25 2019, 7:21 PM · Restricted Project

Apr 17 2019

aditya_nandakumar committed rG92663376563d: [GISel]:IRTranslator: Prefer a buidInstr form that allows CSE of cast… (authored by aditya_nandakumar).
[GISel]:IRTranslator: Prefer a buidInstr form that allows CSE of cast…
Apr 17 2019, 7:18 PM
aditya_nandakumar closed D60844: [GISel]: IRTranslator: Prefer a buidInstr form that allows CSE of cast instructions.

r358637

Apr 17 2019, 7:18 PM · Restricted Project
aditya_nandakumar committed rL358637: [GISel]:IRTranslator: Prefer a buidInstr form that allows CSE of cast….
[GISel]:IRTranslator: Prefer a buidInstr form that allows CSE of cast…
Apr 17 2019, 7:17 PM
aditya_nandakumar created D60844: [GISel]: IRTranslator: Prefer a buidInstr form that allows CSE of cast instructions.
Apr 17 2019, 3:54 PM · Restricted Project

Apr 12 2019

aditya_nandakumar accepted D60580: [GlobalISel] Enable CSE in the IRTranslator & legalizer for -O0 with constants only.

LGTM. Thanks - please address the minor nit and proceed with two commits.

Apr 12 2019, 5:14 PM · Restricted Project
aditya_nandakumar added a comment to D60580: [GlobalISel] Enable CSE in the IRTranslator & legalizer for -O0 with constants only.

Looks reasonable. Could you please split out the CSEConfigBase into it's own commit?
Also I only see the includes for the CSEConfigBase.h but not the header file in this patch. Maybe you forgot to include it?

Apr 12 2019, 4:33 PM · Restricted Project

Apr 11 2019

aditya_nandakumar added inline comments to D60580: [GlobalISel] Enable CSE in the IRTranslator & legalizer for -O0 with constants only.
Apr 11 2019, 3:12 PM · Restricted Project
aditya_nandakumar added a comment to D60580: [GlobalISel] Enable CSE in the IRTranslator & legalizer for -O0 with constants only.

Looks mostly good - there are some minor comments from my side.

Apr 11 2019, 2:08 PM · Restricted Project
aditya_nandakumar accepted D60579: [AArch64][GlobalISel] Enable copy elision in the pre-legalizer combine and fix a crash.

Looks good to me.

Apr 11 2019, 1:55 PM · Restricted Project

Apr 3 2019

aditya_nandakumar accepted D60219: GlobalISel: Add another overload of buildUnmerge.

LGTM. Please add a test in MachineIRBuilderTest.cpp if possible.

Apr 3 2019, 10:54 AM

Mar 18 2019

aditya_nandakumar added a comment to D59444: [GlobalISel] Change MachineIRBuilder's SrcOp to contain subregister info.

In general I'm not too fond of building very target specific instructions involving subregs with the MachineIRBuilder (As these are only likely to be used in a few places in the selector). Specifically for this case of building a subreg, you can say

Builder.buildInstr(COPY, {Dst},{})
  .addReg(Src, 0, SubReg);

which is not too much larger than (and doesn't require making every SrcOp bigger).

Builder.buildInstr(COPY, {Dst}, {{Src, SubReg}});

While adding CSE support for COPYs with Subregs is great, I'm not sure how often it'll trigger and be useful (If it does occur then great). Also should we start adding support for building other kinds of target instructions - Adding immediate operands/target index nodes etc?
My approach for building non generic instructions have been with using the .addImm(..).addReg(...)... pattern - but if others strongly feel the need to add the ability to pass in all of the operands at once to the builder interfaces, and enabling CSE for them, then we can go ahead with this change.

Mar 18 2019, 10:48 AM · Restricted Project

Mar 13 2019

aditya_nandakumar added a comment to D58725: GlobalISel: Use multiple returns for intrinsic structs.

Looks reasonable to me but I'd like @volkan and @aditya_nandakumar to see how it impacts us.

Mar 13 2019, 1:56 PM

Mar 5 2019

aditya_nandakumar added a comment to D58419: [GISel]: Allow G_EXTRACT_VEC_ELT's result to be larger the source element type.

ping?

Mar 5 2019, 12:49 PM · Restricted Project

Feb 27 2019

aditya_nandakumar added a comment to D31359: [GlobalISel]: Allow backends to custom legalize Intrinsics.

I'm not sure I understand why this needs to be separate from legalizeCustom

Feb 27 2019, 5:32 PM · Restricted Project

Feb 26 2019

aditya_nandakumar updated the diff for D58419: [GISel]: Allow G_EXTRACT_VEC_ELT's result to be larger the source element type.

Missing braces.

Feb 26 2019, 5:42 PM · Restricted Project

Feb 20 2019

aditya_nandakumar added a comment to D58419: [GISel]: Allow G_EXTRACT_VEC_ELT's result to be larger the source element type.

I always thought this behavior in SelectionDAG was error prone.

Personally in an out of tree backend, I find BUILD_VEC_TRUNC to be very elegant when trying to legalize/optimize vector types whose scalar types are illegal in the architecture otherwise needing several unmerges + shifts + ands.
I'm fine with adding a separate opcode (say G_EXTRACT_VECTOR_ELT_ANYEXT - suggestions accepted).
We need to do something similar for INSERT_VEC_ELT which can implicitly truncate.

One question I've been thinking about is whether implicit extension is needed for G_INSERT/G_EXTRACT. I figured extract_vector_elt/insert_vector_elt with a constant could always be implemented as a G_EXTRACT/G_INSERT.

Feb 20 2019, 3:48 PM · Restricted Project
aditya_nandakumar added a comment to D58419: [GISel]: Allow G_EXTRACT_VEC_ELT's result to be larger the source element type.

I always thought this behavior in SelectionDAG was error prone.

Personally in an out of tree backend, I find BUILD_VEC_TRUNC to be very elegant when trying to legalize/optimize vector types whose scalar types are illegal in the architecture otherwise needing several unmerges + shifts + ands.
I'm fine with adding a separate opcode (say G_EXTRACT_VECTOR_ELT_ANYEXT - suggestions accepted).
We need to do something similar for INSERT_VEC_ELT which can implicitly truncate.

Feb 20 2019, 10:25 AM · Restricted Project

Feb 19 2019

aditya_nandakumar created D58419: [GISel]: Allow G_EXTRACT_VEC_ELT's result to be larger the source element type.
Feb 19 2019, 5:18 PM · Restricted Project

Feb 15 2019

aditya_nandakumar accepted D58261: GlobalISel: Fix inadequate verification of g_build_vector.
Feb 15 2019, 6:59 AM
aditya_nandakumar accepted D58256: Try to organize MachineVerifier tests.

LGTM. Thanks for this change.

Feb 15 2019, 6:58 AM

Feb 14 2019

aditya_nandakumar committed rG0e362ec19a7e: [GISel][NFC]: Add methods to speed up insertion into GISelWorklist (authored by aditya_nandakumar).
[GISel][NFC]: Add methods to speed up insertion into GISelWorklist
Feb 14 2019, 5:40 PM
aditya_nandakumar committed rL354093: [GISel][NFC]: Add methods to speed up insertion into GISelWorklist.
[GISel][NFC]: Add methods to speed up insertion into GISelWorklist
Feb 14 2019, 5:40 PM
aditya_nandakumar closed D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.

r354093

Feb 14 2019, 5:40 PM · Restricted Project

Feb 13 2019

aditya_nandakumar updated the diff for D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.

Addressed some formatting related feedback.

Feb 13 2019, 1:43 PM · Restricted Project
aditya_nandakumar added inline comments to D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.
Feb 13 2019, 1:43 PM · Restricted Project
aditya_nandakumar updated the diff for D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.

Removed redundant NDEBUG checks.

Feb 13 2019, 1:36 PM · Restricted Project
aditya_nandakumar updated the diff for D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.

Changed the strategy to fix problems of DenseMap migration as well as silly traversals of MachineFunction just to estimate the size.

Feb 13 2019, 1:09 PM · Restricted Project
aditya_nandakumar accepted D58150: [globalisel][combine] Split existing rules into a match and apply step.

Seems reasonable.

Feb 13 2019, 6:45 AM · Restricted Project

Feb 11 2019

aditya_nandakumar added inline comments to D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.
Feb 11 2019, 3:24 PM · Restricted Project
aditya_nandakumar added inline comments to D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.
Feb 11 2019, 2:15 PM · Restricted Project
aditya_nandakumar added inline comments to D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.
Feb 11 2019, 2:12 PM · Restricted Project
aditya_nandakumar created D58073: [GlobalISel][NFC]: Add interface to reserve memory in GISelWorklist.
Feb 11 2019, 1:22 PM · Restricted Project

Feb 9 2019

aditya_nandakumar accepted D57988: [GlobalISel] Regex the opcodes in unit test to fix non-deterministic ordering.

legalize-ext-csedebug-output.mir fails in a reverse iteration build because the OpcodeHitTable is a DenseMap and is iterated to print CSEInfo. We could have copied OpcodeHitTable to a vector and sorted it before iteration. Maybe that would be an overkill. I saw this comment in the test that we could regex the opcodes. Do we care about the order of the CSEInfo opcodes?

Feb 9 2019, 8:44 AM · Restricted Project

Feb 8 2019

aditya_nandakumar added inline comments to D57947: GlobalISel: Add G_FCANONICALIZE instruction.
Feb 8 2019, 1:52 PM
aditya_nandakumar accepted D57947: GlobalISel: Add G_FCANONICALIZE instruction.

LGTM. Minor comment that's not really concerning - but if you feel like it please fix that as well.

Feb 8 2019, 12:25 PM
aditya_nandakumar added inline comments to D57947: GlobalISel: Add G_FCANONICALIZE instruction.
Feb 8 2019, 11:50 AM
aditya_nandakumar committed rG01e818a97d6a: [GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder (authored by aditya_nandakumar).
[GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder
Feb 8 2019, 11:42 AM
aditya_nandakumar committed rL353553: [GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder.
[GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder
Feb 8 2019, 11:42 AM
aditya_nandakumar closed D57932: [GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder.

Thanks. r353553

Feb 8 2019, 11:41 AM · Restricted Project
aditya_nandakumar updated the diff for D57932: [GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder.

Added missing REQUIRES: asserts to the test.

Feb 8 2019, 11:25 AM · Restricted Project
aditya_nandakumar updated the diff for D57932: [GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder.

Updated to add test case for CSE debug output and standardize the debug printing format inside CSE.

Feb 8 2019, 11:14 AM · Restricted Project
aditya_nandakumar closed D57931: [GISel]: While constructing the GISelWorklist make sure we reserve at least the required size to the underlying dense map..
Feb 8 2019, 10:03 AM · Restricted Project

Feb 7 2019

aditya_nandakumar added a comment to D57931: [GISel]: While constructing the GISelWorklist make sure we reserve at least the required size to the underlying dense map..

Sorry - just realized that there was an LGTM, but was not accepted.

Feb 7 2019, 7:35 PM · Restricted Project
aditya_nandakumar committed rGc7716756881e: [GISel]: While constructing the GISelWorklist make sure we reserve at least the… (authored by aditya_nandakumar).
[GISel]: While constructing the GISelWorklist make sure we reserve at least the…
Feb 7 2019, 7:34 PM
aditya_nandakumar added a comment to D57931: [GISel]: While constructing the GISelWorklist make sure we reserve at least the required size to the underlying dense map..

r353498

Feb 7 2019, 7:34 PM · Restricted Project
aditya_nandakumar committed rL353498: [GISel]: While constructing the GISelWorklist make sure we reserve at least the….
[GISel]: While constructing the GISelWorklist make sure we reserve at least the…
Feb 7 2019, 7:32 PM
aditya_nandakumar added inline comments to D57931: [GISel]: While constructing the GISelWorklist make sure we reserve at least the required size to the underlying dense map..
Feb 7 2019, 5:07 PM · Restricted Project
aditya_nandakumar created D57932: [GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder.
Feb 7 2019, 4:55 PM · Restricted Project
aditya_nandakumar added inline comments to D57931: [GISel]: While constructing the GISelWorklist make sure we reserve at least the required size to the underlying dense map..
Feb 7 2019, 4:55 PM · Restricted Project
aditya_nandakumar created D57931: [GISel]: While constructing the GISelWorklist make sure we reserve at least the required size to the underlying dense map..
Feb 7 2019, 4:47 PM · Restricted Project

Feb 6 2019

aditya_nandakumar accepted D57630: Move IR flag handling directly into builder calls for cases translated from Instructions in GlobalIsel.

LGTM. Thanks

Feb 6 2019, 9:52 AM · Restricted Project

Feb 5 2019

aditya_nandakumar committed rGfef7619b0553: [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify… (authored by aditya_nandakumar).
[NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify…
Feb 5 2019, 2:15 PM
aditya_nandakumar committed rL353223: [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify….
[NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify…
Feb 5 2019, 2:15 PM
aditya_nandakumar closed D57608: [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify getOperand(i).getReg().

r353223

Feb 5 2019, 2:14 PM · Restricted Project
aditya_nandakumar accepted D57656: GlobalISel: Fix artifact combiner constant legality checks for vectors.

Thanks. LGTM.

Feb 5 2019, 7:55 AM

Feb 4 2019

aditya_nandakumar added inline comments to D57656: GlobalISel: Fix artifact combiner constant legality checks for vectors.
Feb 4 2019, 6:17 PM
aditya_nandakumar committed rG9b6b9a5791db: [Tablegen][DAG]: Fix build breakage when LLVM_ENABLE_DAGISEL_COV=1 (authored by aditya_nandakumar).
[Tablegen][DAG]: Fix build breakage when LLVM_ENABLE_DAGISEL_COV=1
Feb 4 2019, 1:08 PM
aditya_nandakumar committed rL353091: [Tablegen][DAG]: Fix build breakage when LLVM_ENABLE_DAGISEL_COV=1.
[Tablegen][DAG]: Fix build breakage when LLVM_ENABLE_DAGISEL_COV=1
Feb 4 2019, 1:06 PM
aditya_nandakumar updated the diff for D57608: [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify getOperand(i).getReg().

Updated to use shorter name.

Feb 4 2019, 11:27 AM · Restricted Project
aditya_nandakumar accepted D57650: GlobalISel: Enforce operand types for constants.

Looks great. Thanks for fixing this..

Feb 4 2019, 7:14 AM
aditya_nandakumar accepted D57651: GlobalISel: Fix CSE handling of buildConstant.

LGTM. Please move the EXPECT_EQ changes to the other commit.

Feb 4 2019, 7:11 AM
aditya_nandakumar added a comment to D57652: GlobalISel: Improve gtest usage.

Please include the changes to CSETest.cpp in https://reviews.llvm.org/D57651 here instead and commit. Thanks

Feb 4 2019, 7:09 AM
aditya_nandakumar accepted D57652: GlobalISel: Improve gtest usage.
Feb 4 2019, 6:56 AM
aditya_nandakumar accepted D57684: GlobalISel: Allow constructing SrcOp/DstOp from MachineOperand.

Please add a test case. LGTM.

Feb 4 2019, 6:44 AM

Feb 1 2019

aditya_nandakumar added a comment to D57608: [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify getOperand(i).getReg().

If we're going to add a helper to shave some characters off, we might as well go for something really short like getOpReg().

Feb 1 2019, 4:10 PM · Restricted Project
aditya_nandakumar added inline comments to D57608: [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify getOperand(i).getReg().
Feb 1 2019, 1:29 PM · Restricted Project
aditya_nandakumar created D57608: [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify getOperand(i).getReg().
Feb 1 2019, 11:56 AM · Restricted Project

Jan 29 2019

aditya_nandakumar abandoned D52131: [GISel][NFC]: Make MachineIRBuilder fully stateless.
Jan 29 2019, 9:21 AM

Jan 24 2019

aditya_nandakumar committed rL352126: [GISel]: Change how CSE is enabled by default for each pass.
[GISel]: Change how CSE is enabled by default for each pass
Jan 24 2019, 3:11 PM
aditya_nandakumar closed D57178: [GISel]: Change how CSE is enabled by default for each pass.

Thanks. Submitted in r352126.

Jan 24 2019, 3:11 PM
aditya_nandakumar updated the diff for D57178: [GISel]: Change how CSE is enabled by default for each pass.

Updated based on feedback.

Jan 24 2019, 1:37 PM
aditya_nandakumar created D57178: [GISel]: Change how CSE is enabled by default for each pass.
Jan 24 2019, 11:58 AM

Jan 22 2019

aditya_nandakumar accepted D56835: GlobalISel: Make buildConstant handle vectors.

Thanks. Looks good.

Jan 22 2019, 1:08 PM
aditya_nandakumar added a comment to D56835: GlobalISel: Make buildConstant handle vectors.

Could you please add a test case for the vector build constant case? I suspect unless there is already a target to use this, unit test might be the only way.

Jan 22 2019, 8:00 AM
aditya_nandakumar accepted D56833: GlobalISel: Disallow vectors for G_CONSTANT/G_FCONSTANT.
Jan 22 2019, 7:39 AM

Jan 18 2019

aditya_nandakumar accepted D56832: GlobalISel: Verify G_ICMP/G_FCMP vector types.
Jan 18 2019, 7:53 AM
aditya_nandakumar accepted D56893: GlobalISel: Fix out of bounds crashes in verifier.
Jan 18 2019, 7:49 AM
aditya_nandakumar accepted D56894: GlobalISel: Verify G_BITCAST.
Jan 18 2019, 7:35 AM

Jan 15 2019

aditya_nandakumar closed D52803: [GISel]: Add support for CSEing continuously during GISel passes.

Submitted in r351283.

Jan 15 2019, 4:46 PM
aditya_nandakumar committed rL351283: [GISel]: Add support for CSEing continuously during GISel passes..
[GISel]: Add support for CSEing continuously during GISel passes.
Jan 15 2019, 4:44 PM
aditya_nandakumar updated the diff for D52803: [GISel]: Add support for CSEing continuously during GISel passes.

Rebased, updated based on feedback.
With this change, now they're disabled by default (for O0).

Jan 15 2019, 4:08 PM