niravd (Nirav Dave)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 23 2015, 1:58 PM (138 w, 4 d)

Recent Activity

Yesterday

niravd committed rL337563: [DAG] Avoid Node Update assertion due to AND simplification.
[DAG] Avoid Node Update assertion due to AND simplification
Fri, Jul 20, 8:32 AM
niravd closed D49444: [DAG] Avoid Node Update assertion due to AND simplification.
Fri, Jul 20, 8:32 AM
niravd committed rL337560: [DAG] Fix Memory ordering check in ReduceLoadOpStore..
[DAG] Fix Memory ordering check in ReduceLoadOpStore.
Fri, Jul 20, 8:26 AM
niravd closed D49388: [DAG] Fix Memory ordering check in ReduceLoadOpStore..
Fri, Jul 20, 8:26 AM

Wed, Jul 18

niravd updated the diff for D49388: [DAG] Fix Memory ordering check in ReduceLoadOpStore..

Remove the expensive check in favor of more conservative check that LD's chain has one use.

Wed, Jul 18, 11:45 AM
niravd committed rL337414: [DAG] Add testcase..
[DAG] Add testcase.
Wed, Jul 18, 11:40 AM
niravd committed rL337409: [ScheduleDAG] Fix unfolding of SUnits to already existent nodes..
[ScheduleDAG] Fix unfolding of SUnits to already existent nodes.
Wed, Jul 18, 11:06 AM
niravd closed D48666: [ScheduleDAG] Fix unfolding of SUnits to already existent nodes..
Wed, Jul 18, 11:06 AM
niravd updated the diff for D49444: [DAG] Avoid Node Update assertion due to AND simplification.

Using a temporary node avoids the intermediate loop issue, though a better temp node structure would be preferable.
But you're correct that any simplification to the AND obviates the need for fixup so let's us that.

Wed, Jul 18, 9:43 AM
niravd committed rL337398: [MC] Fix nested macro body parsing.
[MC] Fix nested macro body parsing
Wed, Jul 18, 9:22 AM

Tue, Jul 17

niravd added a comment to D48666: [ScheduleDAG] Fix unfolding of SUnits to already existent nodes..

Ping

Tue, Jul 17, 12:05 PM
niravd created D49444: [DAG] Avoid Node Update assertion due to AND simplification.
Tue, Jul 17, 12:04 PM

Mon, Jul 16

niravd created D49388: [DAG] Fix Memory ordering check in ReduceLoadOpStore..
Mon, Jul 16, 10:32 AM

Wed, Jul 11

niravd created D49200: [DAGCombine] Improve Load-Store Forwarding.
Wed, Jul 11, 12:47 PM

Mon, Jul 9

niravd added a comment to D48666: [ScheduleDAG] Fix unfolding of SUnits to already existent nodes..

Ping

Mon, Jul 9, 9:16 AM

Fri, Jul 6

niravd added inline comments to D48789: [X86] Replace (32/64 - n) shift amounts with (neg n) since the shift amount is masked in hardware.
Fri, Jul 6, 11:11 AM

Mon, Jul 2

niravd added a comment to D48789: [X86] Replace (32/64 - n) shift amounts with (neg n) since the shift amount is masked in hardware.

@niravd would it be better to just do the full manual isel instead of trying to do it this way? Selecting the negate is easy. It just the variations of the shift that kind of ugly due to legacy vs BMI2 and BMI2 allowing load folding.

Mon, Jul 2, 12:32 PM
niravd added inline comments to D48789: [X86] Replace (32/64 - n) shift amounts with (neg n) since the shift amount is masked in hardware.
Mon, Jul 2, 10:42 AM

Wed, Jun 27

niravd committed rL335773: [DAGCombine] Disable TokenFactor simplifications when optnone..
[DAGCombine] Disable TokenFactor simplifications when optnone.
Wed, Jun 27, 12:46 PM
niravd created D48666: [ScheduleDAG] Fix unfolding of SUnits to already existent nodes..
Wed, Jun 27, 12:13 PM

Jun 20 2018

niravd committed rL335137: [DAG] Fix and-mask folding when narrowing loads..
[DAG] Fix and-mask folding when narrowing loads.
Jun 20 2018, 8:41 AM
niravd closed D48335: [DAG] Fix and-mask folding when narrowing loads..
Jun 20 2018, 8:41 AM
niravd accepted D48364: [DAG] Don't map a TableId to itself in the ReplacedValues map.

LGTM. Thanks!

Jun 20 2018, 8:27 AM

Jun 19 2018

niravd created D48335: [DAG] Fix and-mask folding when narrowing loads..
Jun 19 2018, 2:04 PM

Jun 18 2018

niravd committed rL334959: Fix typoed cast to avoid assertion in MCFragment::dump..
Fix typoed cast to avoid assertion in MCFragment::dump.
Jun 18 2018, 9:30 AM

Jun 15 2018

niravd added a comment to rL334729: [DAG] Avoid needing to walk out legalization tables. NFCI..

Thanks. I was unavoidably AFK for most of today. Relanded with fix in
334880.

Jun 15 2018, 7:58 PM
niravd committed rL334880: Avoid needing to walk out legalization tables. NFCI..
Avoid needing to walk out legalization tables. NFCI.
Jun 15 2018, 7:56 PM

Jun 14 2018

niravd committed rL334731: Avoid unused variable in non-assert builds..
Avoid unused variable in non-assert builds.
Jun 14 2018, 8:59 AM
niravd committed rL334729: [DAG] Avoid needing to walk out legalization tables. NFCI..
[DAG] Avoid needing to walk out legalization tables. NFCI.
Jun 14 2018, 8:50 AM
niravd closed D47959: [DAG] Avoid needing to walk out legalization tables. NFCI..
Jun 14 2018, 8:50 AM

Jun 13 2018

niravd added a comment to D47959: [DAG] Avoid needing to walk out legalization tables. NFCI..

Ping?

Jun 13 2018, 8:08 AM

Jun 11 2018

niravd updated the diff for D47959: [DAG] Avoid needing to walk out legalization tables. NFCI..

Minor clean up and address Noel's comments.

Jun 11 2018, 11:01 AM

Jun 8 2018

niravd created D47959: [DAG] Avoid needing to walk out legalization tables. NFCI..
Jun 8 2018, 1:40 PM

Jun 7 2018

niravd accepted D47878: [DAGCombiner] Fix for PR37667.

LGTM.

Jun 7 2018, 8:40 AM
niravd added a comment to D47878: [DAGCombiner] Fix for PR37667.

This also makes sense to me. Just to build on Sanjays comment, I think recasting DataValues as boolean is nicer.

Jun 7 2018, 8:22 AM

Jun 5 2018

niravd committed rL334022: [MC][X86] Allow assembler variable assignment to register name..
[MC][X86] Allow assembler variable assignment to register name.
Jun 5 2018, 8:18 AM
niravd closed D47545: [MC][X86] Allow assembler variable assignment to register name..
Jun 5 2018, 8:17 AM

Jun 4 2018

niravd committed rL333981: [RegAllocGreedy] Use simpler map class for EvicteeInfo. NFCI..
[RegAllocGreedy] Use simpler map class for EvicteeInfo. NFCI.
Jun 4 2018, 8:20 PM
niravd added inline comments to D47545: [MC][X86] Allow assembler variable assignment to register name..
Jun 4 2018, 11:30 AM
niravd added a comment to D47545: [MC][X86] Allow assembler variable assignment to register name..

Since we've only found 2 cases needing this extension and none requiring us to accept a larger set of expressions, I think we should defer any more work until we find such a case in the wild.

Jun 4 2018, 8:31 AM

Jun 1 2018

niravd committed rL333766: [DAG] Avoid checking for consecutive stores in store merge. NFCI..
[DAG] Avoid checking for consecutive stores in store merge. NFCI.
Jun 1 2018, 8:10 AM
niravd committed rL333765: [DAG] Simplify Expression. NFC..
[DAG] Simplify Expression. NFC.
Jun 1 2018, 8:09 AM
niravd committed rL333764: [DAG] Remove untriggerable check. NFCI..
[DAG] Remove untriggerable check. NFCI.
Jun 1 2018, 8:09 AM
niravd committed rL333763: [DAG] Prune store merge legal store check to stop invalid size. NFCI..
[DAG] Prune store merge legal store check to stop invalid size. NFCI.
Jun 1 2018, 8:09 AM

May 31 2018

niravd added inline comments to D47545: [MC][X86] Allow assembler variable assignment to register name..
May 31 2018, 7:55 AM

May 30 2018

niravd updated the diff for D47545: [MC][X86] Allow assembler variable assignment to register name..

Address Nick's comments and restrict this to change to V = E statements

May 30 2018, 2:03 PM
niravd added a comment to D47545: [MC][X86] Allow assembler variable assignment to register name..
In D47545#1116590, @rnk wrote:

This breaks the invariant that an MCSymbol is always a relocatable symbol. I wonder if the better way to do this would be to pretend what we actually saw was a macro definition when the RHS of an assignment doesn't parse as an MCExpr, which is basically a language for relocatable expressions.

May 30 2018, 12:20 PM
niravd created D47545: [MC][X86] Allow assembler variable assignment to register name..
May 30 2018, 11:08 AM

May 18 2018

niravd committed rL332741: [MC] Relax .fill size requirements.
[MC] Relax .fill size requirements
May 18 2018, 10:49 AM
niravd closed D46703: [MC] Relax .fill size requirements.
May 18 2018, 10:49 AM

May 17 2018

niravd updated the diff for D46703: [MC] Relax .fill size requirements.

Fix typo. Add big-endian ARM test that avoids llvm-objdump big-endian thumb issues.

May 17 2018, 9:21 AM

May 16 2018

niravd added inline comments to D46703: [MC] Relax .fill size requirements.
May 16 2018, 1:45 PM
niravd updated the diff for D46703: [MC] Relax .fill size requirements.

Address comments. The only pending comment is regards a big-endian example.

May 16 2018, 1:34 PM
niravd committed rL332490: [DAG] Prune cycle check in store merge..
[DAG] Prune cycle check in store merge.
May 16 2018, 9:52 AM
niravd closed D46955: [DAG] Prune cycle check in store merge..
May 16 2018, 9:52 AM
niravd committed rL332489: [DAG] Defer merge store cycle checking to just before merge. NFCI..
[DAG] Defer merge store cycle checking to just before merge. NFCI.
May 16 2018, 9:51 AM
niravd created D46955: [DAG] Prune cycle check in store merge..
May 16 2018, 8:37 AM

May 15 2018

niravd committed rL332392: [DAGCombine] Move load checks on store of loads into candidate.
[DAGCombine] Move load checks on store of loads into candidate
May 15 2018, 1:35 PM

May 14 2018

niravd updated the diff for D46703: [MC] Relax .fill size requirements.

Generalize to non-byte fills as well.

May 14 2018, 11:42 AM

May 13 2018

niravd accepted D46802: The return value of a comparison operator is -1 if true and 0 if false.

LGTM.

May 13 2018, 8:12 PM
niravd added inline comments to D46802: The return value of a comparison operator is -1 if true and 0 if false.
May 13 2018, 3:02 AM

May 10 2018

niravd created D46703: [MC] Relax .fill size requirements.
May 10 2018, 9:40 AM
niravd committed rL331985: [DAG] Avoid using deleted node in rebuildSetCC.
[DAG] Avoid using deleted node in rebuildSetCC
May 10 2018, 7:32 AM
niravd closed D46404: [DAG] Avoid using deleted node in rebuildSetCC.
May 10 2018, 7:32 AM

May 9 2018

niravd updated the diff for D46404: [DAG] Avoid using deleted node in rebuildSetCC.

Add some explanatory text. Minor cleanup reducing number of handle construction/destructions.

May 9 2018, 10:15 AM

May 8 2018

niravd added a comment to D46581: [DAGCombine] Change store merge candidates check cut off to 1024.

Unfortunately I can't share the test case, but something is definitely not O(N).

May 8 2018, 10:59 AM
niravd resigned from D31914: [DAGCombine]: Fix for regression I brought up in D31068.

I suspect the underlying issue is no longer important, but for reference D31068 is a cleaned up version of this.

May 8 2018, 8:53 AM
niravd added a comment to D44633: missing FILE symbol for .(s|S) files.

Robert, it looks like the state of the assembler file handling has shifted. Is the underlying issue still valid?

May 8 2018, 8:46 AM
niravd accepted D46581: [DAGCombine] Change store merge candidates check cut off to 1024.

I think pruning this back is reasonable. The choice of 8192 was arbitrary. Have you checked larger sizes than 1024? Given it's a 5x increase (presumably) of the total runtime and the algorithm is O(N) I would expect to only need a 5x reduction and 2048 would be roughly equivalent.

May 8 2018, 8:42 AM

May 7 2018

niravd created D46534: [MC] Update Rootfile in AsmStreamer.
May 7 2018, 9:54 AM

May 3 2018

niravd created D46404: [DAG] Avoid using deleted node in rebuildSetCC.
May 3 2018, 12:35 PM

Apr 30 2018

niravd committed rL331218: [MC] Change AsmParser to leverage Assembler during evaluation.
[MC] Change AsmParser to leverage Assembler during evaluation
Apr 30 2018, 12:26 PM
niravd committed rC331218: [MC] Change AsmParser to leverage Assembler during evaluation.
[MC] Change AsmParser to leverage Assembler during evaluation
Apr 30 2018, 12:26 PM
niravd closed D45164: [MC] Change AsmParser to leverage Assembler during evaluation.
Apr 30 2018, 12:26 PM
niravd accepted D46216: [DAGCombiner] Set the right SDLoc on extended SETCC uses.

This patch looks fine modulo the comment made but that can be pushed into another patch.

Apr 30 2018, 7:54 AM

Apr 27 2018

niravd committed rL331055: [MC] Undo spurious commit added into r331052..
[MC] Undo spurious commit added into r331052.
Apr 27 2018, 9:20 AM
niravd committed rC331055: [MC] Undo spurious commit added into r331052..
[MC] Undo spurious commit added into r331052.
Apr 27 2018, 9:20 AM
niravd committed rC331052: [MC] Provide default value for IsResolved..
[MC] Provide default value for IsResolved.
Apr 27 2018, 9:15 AM
niravd committed rL331052: [MC] Provide default value for IsResolved..
[MC] Provide default value for IsResolved.
Apr 27 2018, 9:15 AM
niravd committed rC331048: [MC] Modify MCAsmStreamer to always build MCAssembler. NFCI..
[MC] Modify MCAsmStreamer to always build MCAssembler. NFCI.
Apr 27 2018, 8:49 AM
niravd committed rL331048: [MC] Modify MCAsmStreamer to always build MCAssembler. NFCI..
[MC] Modify MCAsmStreamer to always build MCAssembler. NFCI.
Apr 27 2018, 8:49 AM
niravd committed rL331047: [MC] Allow MCAssembler to be constructed without all subcomponents. NFCI..
[MC] Allow MCAssembler to be constructed without all subcomponents. NFCI.
Apr 27 2018, 8:49 AM

Apr 26 2018

niravd added a comment to D46158: [DAGCombiner] Set the right SDLoc on a newly-created sextload.

The additional register pressure is unfortunate but is unrelated. Before I LGTM, I just wanted an additional agreement that the regression is vector-shuffle-variable tests isn't justification to delay.

Apr 26 2018, 7:17 PM
niravd added reviewers for D46158: [DAGCombiner] Set the right SDLoc on a newly-created sextload: RKSimon, efriedma.
Apr 26 2018, 7:11 PM
niravd added a reviewer for D46158: [DAGCombiner] Set the right SDLoc on a newly-created sextload: craig.topper.
Apr 26 2018, 7:01 PM
niravd accepted D46156: [DAGCombiner] Change the SDLoc on split extloads (2/N).

LGTM.

Apr 26 2018, 6:46 PM
niravd added a comment to D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

Ping? I think we've a positive consesus. Anyone want to LGTM?

Apr 26 2018, 9:31 AM

Apr 23 2018

niravd added inline comments to D45995: [DAGCombiner] Set the right SDLoc on a newly-created zextload (1/N).
Apr 23 2018, 8:27 PM
niravd added a comment to D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

Ping. Just a recap out the state of this patch:

Apr 23 2018, 8:26 AM

Apr 19 2018

niravd updated the diff for D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

Disable assembler-information for parsing of inline assembly to maintain equivalence of object and assembly generation from llvm ir paths.

Apr 19 2018, 10:57 AM

Apr 18 2018

niravd updated the diff for D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

Add tests to verify failure when layout-dependant cases happen.

Apr 18 2018, 12:08 PM

Apr 11 2018

niravd added a comment to D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

That said, modulo the extra bookkeeping costs for textual assembly additional checks for incomplete assemblers, there's no real reason why MCAsmStreamer and MCObjectStreamer are separate structures and it would be good to eventually merge them.

Why? What would you replace the MCStreamer interface virtual dispatch with? Would MCStreamer become the main implementation, with every method checking if (emitTextualAssembly) OS << ".foo";? That doesn't seem like a clear win.

Apr 11 2018, 1:33 PM
niravd added a comment to D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

It's documented that we output (.s) and I believe this is specifically so we are compatible with assemblers without sufficient preprocessor support. It may be reasonable to add a (.S) output but as it's been pointed out the textual semantics of the preprocessor are not suited for this and
error/warnings quality would almost certainly degrade.

Apr 11 2018, 9:30 AM

Apr 3 2018

niravd added a comment to D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

As a result the textual output may fail where the equivalent object generation would pass.

I don't think that is OK.

Apr 3 2018, 8:49 AM

Apr 2 2018

niravd added reviewers for D45164: [MC] Change AsmParser to leverage Assembler during evaluation: echristo, rnk, probinson.
Apr 2 2018, 7:56 AM
niravd added a comment to D45164: [MC] Change AsmParser to leverage Assembler during evaluation.

For ease of reviewing the history reflects 3 stages of patches:

Apr 2 2018, 7:54 AM
niravd retitled D45164: [MC] Change AsmParser to leverage Assembler during evaluation from [MC] Allow MCAssembler to be constructed without all subcomponents. NFCI. to [MC] Change AsmParser to leverage Assembler during evaluation.
Apr 2 2018, 7:49 AM
niravd updated the diff for D45164: [MC] Change AsmParser to leverage Assembler during evaluation.
  • [MC] Change AsmParser to leverage Assembler during evaluation.
Apr 2 2018, 7:39 AM
niravd created D45164: [MC] Change AsmParser to leverage Assembler during evaluation.
Apr 2 2018, 7:39 AM
niravd updated the diff for D45164: [MC] Change AsmParser to leverage Assembler during evaluation.
  • [MC] Allow MCAssembler to be constructed without all subcomponents. NFCI.
  • [MC] Modify MCAsmStreamer to always build MCAssembler. NFCI.
Apr 2 2018, 7:39 AM