[PATCH][SelectionDAG] Added BuildVectorSDNode::isSplat() and used it to implement build_vector for MIPS MSA

Daniel Sanders Daniel.Sanders at imgtec.com
Mon Sep 23 03:57:46 PDT 2013


Hi,

I've revised this patch into a MSA-specific patch (attached) by moving the new BuildVectorSDNode::isSplat() function into a static function in MipsSEISelLowering.cpp named isSplatVector(). This changes the patch so that it only affects areas I that I have contributed and I intend to commit to the MIPS backend and be post-commit reviewed on that basis. This will unblock the bottleneck that is preventing my next 18 MSA-specific patches from being committed.

I plan to follow-up with a (less urgent) patch that merges the MIPS and X86 implementations of isSplatVector (these implementations are near identical) into a common function named BuildVectorSDNode::isSplat(). This planned patch will go through the pre-commit review process.

From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Daniel Sanders
Sent: 18 September 2013 15:18
To: llvm-commits at cs.uiuc.edu
Subject: [PATCH][SelectionDAG] Added BuildVectorSDNode::isSplat() and used it to implement build_vector for MIPS MSA

Hi,

I previously submitted this patch with the subject '[PATCH] [mips][msa] Implemented build_vector' but I failed to attract any reviewers for the change to the common code. Following a suggestion from a colleague that the subject sounded like it was MIPS specific, I've changed the subject to make it clearer that the patch affects the common BuildVectorSDNode class.

This patch implements support for ISD::BUILD_VECTOR to MIPS MSA. As part of this, it makes a small addition to the target-independent code. It adds BuildVectorSDNode::isSplat() which returns true if the BuildVectorSDNode can be trivially determined to be a (possibly non-constant) splat.

This patch is blocking a large number of my MSA-specific patches from being submitted so my current plan is to give this a couple more days to be reviewed, but failing that I'll have to revise the patch by replacing BuildVectorSDNode::isSplat() with an equivalent function in the MIPS backend.

From: Daniel Sanders
Sent: 16 September 2013 10:34
To: Daniel Sanders; Jack Carter
Cc: llvm-commits at cs.uiuc.edu
Subject: RE: [PATCH] [mips][msa] Implemented build_vector.

Hi,

Sorry to ping this after only a couple days but can someone review the target-independent part of the patch (the addition of BuildVectorSDNode::isSplat() to SelectionDAGNodes.h and SelectionDAG.cpp)?

The reason I'm pinging this so soon is that I've got quite a few MIPS MSA patches (18 at the time of writing) queued up behind this one.

From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Daniel Sanders
Sent: 12 September 2013 13:28
To: Jack Carter
Cc: llvm-commits at cs.uiuc.edu
Subject: [PATCH] [mips][msa] Implemented build_vector.

Hi,

This patch implements support for ISD::BUILD_VECTOR to MIPS MSA. As part of this, it makes a small addition to the target-independent code. It adds BuildVectorSDNode::isSplat() which returns true if the BuildVectorSDNode can be trivially determined to be a (possibly non-constant) splat.

Daniel Sanders
Leading Software Design Engineer, MIPS Processor IP
Imagination Technologies Limited
www.imgtec.com<http://www.imgtec.com/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130923/c4da0820/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-mips-msa-Implemented-build_vector-using-ldi-fill-and.patch
Type: application/octet-stream
Size: 21086 bytes
Desc: 0008-mips-msa-Implemented-build_vector-using-ldi-fill-and.patch
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130923/c4da0820/attachment.obj>


More information about the llvm-commits mailing list