Displaying 20 results from an estimated 400 matches similar to: "Does it make sense to upstream some MVT's?"
2018 Jan 17
0
Does it make sense to upstream some MVT's?
Hi Sean,
I had to add ‘v16f16’ to our out-of-tree target, and this was to primarily to allow me to express lowering for all the OpenCL types (well, except for the ‘v3T’ types).
The trend does seem to be towards larger bit-width SIMD registers, and as you say this will increase in time; but perhaps instead of using a discrete enumeration combined with additional entries in several
2018 Jan 17
1
Does it make sense to upstream some MVT's?
On Tue, Jan 16, 2018 at 11:13 PM, Martin J. O'Riordan <MartinO at theheart.ie>
wrote:
> Hi Sean,
>
>
>
> I had to add ‘v16f16’ to our out-of-tree target, and this was to
> primarily to allow me to express lowering for all the OpenCL types (well,
> except for the ‘v3T’ types).
>
>
>
> The trend does seem to be towards larger bit-width SIMD registers, and
2007 Jun 13
1
[LLVMdev] Status of pre-legalize vector changes
On Mon, Jun 11, 2007 at 03:39:40PM -0700, Chris Lattner wrote:
> On Mon, 11 Jun 2007, Dan Gohman wrote:
> > Also, CopyToReg and CopyFromReg lowering/legalization rely on being able to
> > create vector-of-vector types. For example, an <8 x double> vector is bitcasted
> > to (effectively) <4 x <2 x double>> for x86, allowing EXTRACT_ELEMENT to pull
> >
2017 Mar 07
2
[RFC][SVE] Extend vector types to support SVE registers.
Hi,
I would like to restart the conversation regarding adding SVE support to LLVM. This time I am framing things from the code generation point of view because our immediate priority is llvm-mc support rather than auto-vectorisation. Can you please review the following text outlining MVT changes we would like to make so SVE instructions can be added to the AArch64 Target.
My overriding
2008 Sep 26
2
[LLVMdev] Determining the register type of a MachineOperand
On Wednesday 24 September 2008 15:23, Mon Ping Wang wrote:
> To my knowledge, I don't think there is an easy way to get the MVT
> information from a MachineOperand. Why do you need it for? In my
See the thread I started on this very topic. Spilling is one place you'd like
to have this information.
> mind, the MachineInstr and its associated operands represent a
>
2008 Sep 24
2
[LLVMdev] Determining the register type of a MachineOperand
This only has the register class information, not the register type
information.
My register class has multiple register types and I need to know how to
differentiate which register type of my register class of the current
register.
The information in the MVT data type is what I need, i.e. the position
in the GPRVT array of each register.
Something equivalent to MVT getValueType() but for
2019 Jul 18
2
Question about TableGen RegisterClass definition
Hi All,
I have a question about TableGen RegisterClass definition.
I need to map different size of MVTs into a register class as below.
def TestReg : RegisterClass<"Test", [v8i32, v4i32], ...>
When I look at TableGen and CodeGen, it looks the types are used as following:
1. MCRegisterClass's RegSize and Alignment
2. SpillSize in TableGen
3. Type constraint for instruction
2008 Sep 24
0
[LLVMdev] Determining the register type of a MachineOperand
To my knowledge, I don't think there is an easy way to get the MVT
information from a MachineOperand. Why do you need it for? In my
mind, the MachineInstr and its associated operands represent a
physical machine instruction and I typically want to think of those as
machine opcodes and machine register files. I am typically interested
in the mapping of MVTs to register classes
2012 Dec 05
2
[LLVMdev] [RFC] Replacing EVT:s with MVT:s (when possible)
On 3 Dec 2012, at 23:45, Chris Lattner wrote:
> Please do. MVT is cheaper than EVT and conceptually cleaner when dealing with physical machine types. EVT should only be used in parts of the code generator that are "pre-legalization" because they can represent arbitrary IR types. Anything that takes a legal machine type should take an MVT.
A side issue of this is that it is
2008 Sep 26
0
[LLVMdev] Determining the register type of a MachineOperand
Yes,
Another reason this is useful is for register-type specific
representations of said register.
For example, all my registers are 128bit vector registers, however, if I
am only dealing with 32 bit vector registers, I can add write/read masks
that tell the underlying hardware not to work on the whole register, but
just a subset of the components.
32bit scalar mov: mov r1.x___, r0.x000
64bit
2010 Jun 16
0
[LLVMdev] Simpler subreg ops in machine code IR
> 1. copyRegToReg() won't be able to use register classes to pick a copy opcode. For instance, an XMM register will no longer be copied by MOVSS or MOVSD. Given just the physical register, MOVAPS will be used. Is that a problem?
I haven't had time to really look into it, but have been playing
around with the idea that instead of two register classes copyRegToReg
and some of the load
2012 May 02
2
[LLVMdev] structs get decomposed when shouldn't
On Wednesday 02 May 2012 09:12:16 Duncan Sands wrote:
> > As I can understand, LLVM is trying to decompose datatypes into smaller
> > components in some circumstances.
>
> Can you please explain more what you are referring to here. LLVM itself
> shouldn't be changing function parameters or return types unless the
> function has local (internal) linkage (since in that
2019 Aug 29
6
[SVE][AArch64] Codegen for a scalable vector splat
Hi,
During the discussion on introducing scalable vectors we established that we could use the canonical IR form for splats of scalable vector types (insert element into lane 0 of an undef vector, shuffle that with another undef vector of the same type and a zeroinitializer mask).
We do run into a problem for lowering to SelectionDAG however, since the canonical form there is a BUILD_VECTOR with
2015 Nov 18
3
[GlobalISel] A Proposal for global instruction selection
Hi David,
> On Nov 18, 2015, at 11:55 AM, David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:
>
> Hi Quentin,
>
> On 18 Nov 2015, at 19:26, Quentin Colombet via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>> In the section “Goals", I defined (repeated for people that saw the talk) the goals for the Global ISel design.
>> - Do you see
2012 Dec 05
0
[LLVMdev] [RFC] Replacing EVT:s with MVT:s (when possible)
On Dec 5, 2012, at 4:51 AM, David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:
> On 3 Dec 2012, at 23:45, Chris Lattner wrote:
>
>> Please do. MVT is cheaper than EVT and conceptually cleaner when dealing with physical machine types. EVT should only be used in parts of the code generator that are "pre-legalization" because they can represent arbitrary IR types.
2013 Apr 25
0
[LLVMdev] Proposal for new Legalization framework
On Apr 24, 2013, at 5:01 PM, Dan Gohman <dan433584 at gmail.com> wrote:
> In the spirit of the (long-term) intent to migrate away from the SelectionDAG framework, it is desirable to implement legalization passes as discrete passes. Attached is a patch which implements the beginning of a new type legalization pass, to help motivate discussion.
This is a great discussion to have.
> Is
2005 Jan 11
5
asterisk-oh323 and outgoing call
Hello.
I'm try to set up asterisk for making outgoing calls with oh323 channel
driver version 0.7.1 with Asterisk CVS-1-01/09/05-01:41:37.
Our provider uses Mera MVTS softswitch and supports only H.323.
We don't use gatekeeper for connection but provider requires SOURCE PHONE
NUMBER for route out calls and I don't know how I can specify this
number.
Call with this string
exten
2013 Mar 21
0
[LLVMdev] Simpler types in TableGen isel patterns
On Mar 21, 2013, at 11:26 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
> I think in most cases it would be much simpler and safer to specify pattern types directly:
>
> def : Pat<(and (not i32:$src1), i32:$src2),
> (ANDN32rr i32:$src1, i32:$src2)>;
> def : Pat<(and (not i64:$src1), i64:$src2),
> (ANDN64rr i64:$src1,
2012 May 02
1
[LLVMdev] structs get decomposed when shouldn't
Hi Duncan,
On Wednesday 02 May 2012 10:15:17 Duncan Sands wrote:
> yup, front-ends have to take care of more complicated ABI details. For
> example the front-end should currently use "byval" for any (parts of)
> structs that need to be passed on the stack, and explicit scalars for
> struct bits that should go in registers.
> > If this interface could be improved, I
2019 Mar 13
2
Scalable Vector Types in IR - Next Steps?
Disclaimer: I’m only speaking for myself, not Apple.
This is really disappointing. Resorting to multi-versioned fixed length vectorization isn’t a solution that’s competitive with the native VLA support, so it doesn’t look like a credible alternative suggestion (at least not without elaborating it on the mailing list). Without a practical alternative, it’s essentially saying “no” to a whole class