Displaying 20 results from an estimated 32 matches for "superregs".
Did you mean:
superreg
2012 May 14
0
[LLVMdev] Register coalescing (Subregs and SuperRegs)
Hi,
Consider this MI code from the hexagon backend.
------------------------------------------------------------------
16B %vreg0<def> = COPY %R0<kill>; IntRegs:%vreg0
32B %vreg1<def> = LDriw %vreg0, 0;
mem:LD4[%a],IntRegs:%vreg1,%vreg0
48B %vreg2<def> = LDriw_indexed %vreg0<kill>, 4;
mem:LD4[%add.ptr] IntRegs:%vreg2,%vreg0
64B
2012 May 14
0
[LLVMdev] Register coalescing (Subregs and SuperRegs)
On May 14, 2012, at 4:09 PM, "Pranav Bhandarkar" <pranavb at codeaurora.org> wrote:
> Hi,
>
> Consider this MI code from the hexagon backend.
> ------------------------------------------------------------------
> 16B %vreg0<def> = COPY %R0<kill>; IntRegs:%vreg0
> 32B %vreg1<def> = LDriw %vreg0, 0; mem:LD4[%a]
>
2012 May 11
2
[LLVMdev] overlaps generation, RA crasch
Hi,
Recently on trunk, the ovlaps list for a register got a dual entry on my target, which caused the RA to crash.
Reg
Subreg1
Subreg b
Subreg2
Subreg b
I have a register with two subregs that have subreg b in common. This causes the SuperReg to appear twice in the ovelaps list for Subreg b.
As this causes a register allocator to crasch (it evicts a register, and then inremenets
2009 Nov 24
2
[LLVMdev] Need Advice on AVX
Hello, David
> How does ${dst:subreg32} work?
This is just modifier provided to asmprinting code. Here, it seems, 16
bit register is passed to asmprinter, but it sees modifier and grabs
32-bit superreg.
> Can one do the same for sources?
Yes, this is just modifier for printing, nothing more...
> Is it preferable to use the source modifier or write an EXTRACT_SUBREG
> pattern
2008 Oct 02
2
[LLVMdev] INSERT_SUBREG node.
What's the value produced by an INSERT_SUBREG node? Is it a chain?
Can I use to set a superreg of i16 type with two i8 values, and use the
supperreg as an operand somewhere else?
- Sanjiv
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081002/f07bc88c/attachment.html>
2008 Oct 13
2
[LLVMdev] INSERT_SUBREG node.
On Thu, 2008-10-02 at 11:19 -0700, Evan Cheng wrote:
>
> On Oct 2, 2008, at 11:02 AM, Sanjiv.Gupta at microchip.com wrote:
>
> > What’s the value produced by an INSERT_SUBREG node? Is it a chain?
>
>
> No, insert_subreg returns a value:
>
>
> v1 = insert_subreg v2, v3, idx
>
>
> v1 and v2 will have the same type, e.g. i16, and v3 must have a
>
2009 Nov 24
0
[LLVMdev] Need Advice on AVX
On Tuesday 24 November 2009 14:12, Anton Korobeynikov wrote:
> Hello, David
>
> > How does ${dst:subreg32} work?
>
> This is just modifier provided to asmprinting code. Here, it seems, 16
> bit register is passed to asmprinter, but it sees modifier and grabs
> 32-bit superreg.
>
> > Can one do the same for sources?
>
> Yes, this is just modifier for printing,
2011 Apr 07
1
[LLVMdev] IMPLICIT_DEF?
Hi,
I have a MachineInstr that writes to a subreg, but clobbers the superreg.
How should I BuildMI this instruction?
I try to do a
IMPLICIT_DEF super_reg
and then write to a subreg of that super register
, but it gets DCE:ed.
Is there a way to express this clobbering of a superregister?
thanks,
Jonas
-------------- next part --------------
An HTML attachment was
2012 May 11
0
[LLVMdev] overlaps generation, RA crasch
On May 11, 2012, at 6:35 AM, Jonas Paulsson <jonas.paulsson at ericsson.com> wrote:
> Hi,
>
> Recently on trunk, the ovlaps list for a register got a dual entry on my target, which caused the RA to crash.
>
> Reg
> Subreg1
> Subreg b
> Subreg2
> Subreg b
>
> I have a register with two subregs that have subreg b in common. This causes the
2008 Oct 02
0
[LLVMdev] INSERT_SUBREG node.
On Oct 2, 2008, at 11:02 AM, Sanjiv.Gupta at microchip.com wrote:
> What’s the value produced by an INSERT_SUBREG node? Is it a chain?
No, insert_subreg returns a value:
v1 = insert_subreg v2, v3, idx
v1 and v2 will have the same type, e.g. i16, and v3 must have a sub-
register type, e.g. i8.
> Can I use to set a superreg of i16 type with two i8 values, and use
> the supperreg as
2008 Oct 14
0
[LLVMdev] INSERT_SUBREG node.
You need to specify sub-register == super-register, idx relationship.
See X86RegisterInfo.td:
def x86_subreg_8bit : PatLeaf<(i32 1)>;
def x86_subreg_16bit : PatLeaf<(i32 2)>;
def x86_subreg_32bit : PatLeaf<(i32 3)>;
def : SubRegSet<1, [AX, CX, DX, BX, SP, BP, SI, DI,
R8W, R9W, R10W, R11W, R12W, R13W, R14W, R15W],
[AL, CL,
2011 Jul 01
2
[LLVMdev] (no subject)
I'm trying to debug a problem with our custom backend with using a tiered register allocation setup.
Just a little background. My target uses vec4 32bit registers and I want to have three levels of registers setup.
Each vec4 register can have two sub-regs of size vec2 32bit, and each sub-reg, has its own two sub-regs of 32bit each.
So it looks like this, xyzw -> {xy, zw} -> {x, y, z,
2018 Jan 30
3
Disable spilling sub-registers in LLVM
Hi Quentin,
Let me clarify if I understood this correctly.
If the accesses (writes and reads) to sub-registers are expressed always
as sub-registers of the super-register register class (e.g.,
SuperReg.sub1;), then the spilling decision is for the super register.
But, if the accesses are in terms of the register class of the
sub-registers directly (SubReg;), then the spilling decision will
2008 Oct 15
2
[LLVMdev] INSERT_SUBREG node.
On Tue, 2008-10-14 at 10:19 -0700, Evan Cheng wrote:
> You need to specify sub-register == super-register, idx relationship.
> See X86RegisterInfo.td:
>
> def x86_subreg_8bit : PatLeaf<(i32 1)>;
> def x86_subreg_16bit : PatLeaf<(i32 2)>;
> def x86_subreg_32bit : PatLeaf<(i32 3)>;
>
> def : SubRegSet<1, [AX, CX, DX, BX, SP, BP, SI, DI,
>
2011 Jul 01
0
[LLVMdev] (no subject)
On Jul 1, 2011, at 12:16 PM, Villmow, Micah wrote:
> I'm trying to debug a problem with our custom backend with using a tiered register allocation setup.
>
> Just a little background. My target uses vec4 32bit registers and I want to have three levels of registers setup.
> Each vec4 register can have two sub-regs of size vec2 32bit, and each sub-reg, has its own two sub-regs of
2018 Jan 30
3
Disable spilling sub-registers in LLVM
Right Matthias, I am aware that an implementation for
storeRegToStackSlot()/loadRegFromStackSlot() is necessary. But these
functions receive the physical register that need to be spilled, they
might receive the sub-register. In this case, using the super-register
naively is unsafe (e.g., one might overwrite parts of it). Thus, I think
the register allocator/spillar need to be aware of the
2018 Jan 30
0
Disable spilling sub-registers in LLVM
To make my point clear, I believe an implementation of
storeRegToStackSlot()/loadRegFromStackSlot() is not sufficient (as it
received the physical register already). Does this make sense?
On 2018-01-30 13:33, ahmede wrote:
> Right Matthias, I am aware that an implementation for
> storeRegToStackSlot()/loadRegFromStackSlot() is necessary. But these
> functions receive the physical
2011 Jul 01
1
[LLVMdev] (no subject)
From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk]
Sent: Friday, July 01, 2011 2:56 PM
To: Villmow, Micah
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] (no subject)
On Jul 1, 2011, at 12:16 PM, Villmow, Micah wrote:
I'm trying to debug a problem with our custom backend with using a tiered register allocation setup.
Just a little background. My target uses vec4 32bit registers and
2018 Jan 30
0
Disable spilling sub-registers in LLVM
I still think my answer applies that you have to modify storeRegToStackSlot()/loadRegFromStackSlot(). They decide how registers are spilled and reloaded. Nobody is stopping you from using super registers spills/reloads to implement spilling/reloading smaller registers there.
- Matthias
> On Jan 30, 2018, at 10:21 AM, ahmede <ahmede at ece.ubc.ca> wrote:
>
> Hi Quentin,
>
>
2008 Oct 15
0
[LLVMdev] INSERT_SUBREG node.
On Oct 15, 2008, at 5:29 AM, sanjiv gupta wrote:
> On Tue, 2008-10-14 at 10:19 -0700, Evan Cheng wrote:
>> You need to specify sub-register == super-register, idx relationship.
>> See X86RegisterInfo.td:
>>
>> def x86_subreg_8bit : PatLeaf<(i32 1)>;
>> def x86_subreg_16bit : PatLeaf<(i32 2)>;
>> def x86_subreg_32bit : PatLeaf<(i32