Displaying 20 results from an estimated 75 matches for "vreg5".
Did you mean:
vreg
2011 Mar 26
2
[LLVMdev] Possible missed optimization?
...OPY %R25R24<kill>; DREGS:%vreg0
Considering merging %vreg0 with physreg %R25R24
RHS = %vreg0 = [16d,96d:0) 0 at 16d
LHS = %R25R24,inf = [0L,16d:0) 0 at 0L-phidef
updated: 96L %vreg8<def> = COPY %R25R24<kill>; PTRREGS:%vreg8
updated: 32L %vreg5<def> = COPY %R25R24; PTRREGS:%vreg5
Joined. Result = %R25R24,inf = [0L,96d:0) 0 at 0L-phidef
32L %vreg5<def> = COPY %R25R24; PTRREGS:%vreg5
Not coalescable.
64L %vreg6<def> = COPY %vreg4<kill>; DLDREGS:%vreg6,%vreg4
Considering merging %vreg4 with %vreg6 t...
2015 Jun 16
2
[LLVMdev] Replacing a Reg MachineOperand with a non-Reg MachineOperand?
...> I added another param (int64_t Offset) and am adding that, this should
> preserve the orginial offset of the GA.
>
> Sorry, I put the above response in the wrong thread.
>
> Also, when I try to use this new function to do the same thing on it's
> uses, I get an error that vreg5 is somehow not a register?
>
> So, the MI looks like this:
>
> vreg5 = MOV <ga:@a>
> vreg2 = ABS vreg5
> ...
> ...
> vreg9 = SUB vreg7, vreg5
>
> In this case, I want to eliminate vreg5 and replace it with <ga:@a>, the
> ChangeToGlobalAddress is working...
2012 Oct 20
2
[LLVMdev] RegisterCoalescing pass crashes with ImplicitDef registers
...%T1_X
%vreg3<def> = COPY %T1_X; R600_TReg32:%vreg3
%vreg2<def> = COPY %T1_Y; R600_TReg32:%vreg2
%vreg1<def> = COPY %T1_Z; R600_TReg32:%vreg1
%vreg0<def> = COPY %T1_W; R600_TReg32:%vreg0
RESERVE_REG 0
%vreg4<def> = FNEG_R600 %vreg3; R600_Reg32:%vreg4 R600_TReg32:%vreg3
%vreg5<def> = MOV_IMM_F32 0.000000e+00; R600_Reg32:%vreg5
%vreg6<def> = ADD 0, 0, 1, 0, 0, 0, %vreg4<kill>, 0, 0, 0, %vreg5, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg6,%vreg4,%vreg5
%vreg7<def> = FNEG_R600 %vreg2; R600_Reg32:%vreg7 R600_TReg32:%vreg2
%vreg8<def> = A...
2011 Mar 28
0
[LLVMdev] Possible missed optimization?
...DREGS:%vreg0
> Considering merging %vreg0 with physreg %R25R24
> RHS = %vreg0 = [16d,96d:0) 0 at 16d
> LHS = %R25R24,inf = [0L,16d:0) 0 at 0L-phidef
> updated: 96L %vreg8<def> = COPY %R25R24<kill>; PTRREGS:%vreg8
> updated: 32L %vreg5<def> = COPY %R25R24; PTRREGS:%vreg5
> Joined. Result = %R25R24,inf = [0L,96d:0) 0 at 0L-phidef
> 32L %vreg5<def> = COPY %R25R24; PTRREGS:%vreg5
> Not coalescable.
> 64L %vreg6<def> = COPY %vreg4<kill>; DLDREGS:%vreg6,%vreg4
> Considering mer...
2011 Mar 26
0
[LLVMdev] Possible missed optimization?
On Mar 26, 2011, at 1:04 PM, Borja Ferrer wrote:
> Hello Jakob, thanks for the reply. The three regclasses involved here are all subsets from each other and aren't disjoint. These are the basic descriptions of the regclasses involved to show what i mean:
>
> DREGS: R31R30, R29R28 down to R1R0 (16 regs)
> DLDREGS: R31R30, R29R28 down to R17R16 (8 regs)
> PTRREGS:
2016 Feb 18
3
How to interpret Selection DAG error output
...> LLVM ERROR: Cannot select: 0x3284268: glue = EsenciaISD::SET_FLAG
>> 0x3283608, 0x3283710, 0x3283e48 [ORD=3] [ID=11]
>> 0x3283608: i32,ch = CopyFromReg 0x3257980, 0x3283500 [ORD=1]
>> [ID=9]
>> 0x3283500: i32 = Register %vreg5 [ID=1]
>> 0x3283710: i32 = Constant<3> [ID=2]
>> 0x3283e48: i32 = Constant<20> [ID=8]
>> In function: fib
>>
>> As far as I can understand LLVM cannot select it because the
>> pattern is
>>...
2011 Mar 26
2
[LLVMdev] Possible missed optimization?
Hello Jakob, thanks for the reply. The three regclasses involved here are
all subsets from each other and aren't disjoint. These are the basic
descriptions of the regclasses involved to show what i mean:
DREGS: R31R30, R29R28 down to R1R0 (16 regs)
DLDREGS: R31R30, R29R28 down to R17R16 (8 regs)
PTRREGS: R31R30, R29R28, R27R26 (3 regs)
All classes intersect each other
2016 Feb 18
3
How to interpret Selection DAG error output
...l Shafigulin via llvm-dev wrote:
>
>>
>> LLVM ERROR: Cannot select: 0x3284268: glue = EsenciaISD::SET_FLAG
>> 0x3283608, 0x3283710, 0x3283e48 [ORD=3] [ID=11]
>> 0x3283608: i32,ch = CopyFromReg 0x3257980, 0x3283500 [ORD=1] [ID=9]
>> 0x3283500: i32 = Register %vreg5 [ID=1]
>> 0x3283710: i32 = Constant<3> [ID=2]
>> 0x3283e48: i32 = Constant<20> [ID=8]
>> In function: fib
>>
>> As far as I can understand LLVM cannot select it because the pattern is
>> not specified. Unfortunately for me, I can't understan...
2018 Apr 23
2
pre-RA scheduling/live register analysis optimization (handle move) forcing spill of registers
...8; FPUaOffsetClass:%vreg2
48B %vreg3<def> = FMUL_A_oo %vreg0, %vreg2, %RFLAGA<imp-def,dead>; FPUaROUTMULRegisterClass:%vreg3 FPUaOffsetClass:%vreg0,%vreg2
64B %vreg4<def> = COPY %vreg3; FPUaOffsetClass:%vreg4 FPUaROUTMULRegisterClass:%vreg3
80B %vreg5<def> = MOVSUTO_A_iSLo 1056964608; FPUaOffsetClass:%vreg5
96B %vreg6<def> = FMUL_A_oo %vreg0, %vreg5, %RFLAGA<imp-def,dead>; FPUaROUTMULRegisterClass:%vreg6 FPUaOffsetClass:%vreg0,%vreg5
112B %vreg7<def> = COPY %vreg6; FPUaOffsetClass:%vreg7 FPUaROUTMUL...
2014 Oct 27
4
[LLVMdev] Problem in X86 backend
Hi,
I'm having some trouble wirting an instruction in the X86 backend.
I made a new intrinsic and I wrote a custom inserter for my intrinsic in the X86 backend.
Everything works fine, except for one instruction that I can't find how to write.
I want to add this instruction in one of my machine basic block: mov [rdi], 0
How can I achieve that with the LLVM api? I tried several
2015 Jun 16
2
[LLVMdev] Replacing a Reg MachineOperand with a non-Reg MachineOperand?
Hey Ryan,
You end with a large constant immediate offset value because the register
operand stores the register id in a union together with the offset that's
used by the global address operand.
Just add 'setOffset(0)' to your change method and that should solve your
problem.
2015-06-16 9:15 GMT-07:00 Ryan Taylor <ryta1203 at gmail.com>:
> So I have this for
2014 Oct 28
2
[LLVMdev] Problem in X86 backend (again)
...2 <ga:@puts>, <regmask>, %RSP<imp-use>, %RDI<imp-use>, %RSP<imp-def>, %EAX<imp-def>
ADJCALLSTACKUP64 0, 0, %RSP<imp-def,dead>, %EFLAGS<imp-def,dead>, %RSP<imp-use>
%vreg4<def> = COPY %EAX; GR32:%vreg4
BURNSTACK %EFLAGS<imp-def,dead>
%vreg5<def> = MOV32r0 %EFLAGS<imp-def,dead>; GR32:%vreg5
%EAX<def> = COPY %vreg5; GR32:%vreg5
RETQ %EAX
# End machine code for function main.
Here is the dump after my custom inserter (with the stacktrace):
# Machine code for function main: SSA
BB#0: derived from LLVM BB %entry
ADJCAL...
2016 Feb 18
2
How to interpret Selection DAG error output
...eaurora.org> wrote:
> On 2/18/2016 1:32 PM, Rail Shafigulin wrote:
>
>> I think this is where I'm loosing the "thread". Based on what I'm seeing
>> SET_FLAG has three operands, the first of which is a CopyFromReg. So how
>> come the pattern is SET_FLAG %vreg5, 3, 20 and not SET_FLAG CopyFromReg,
>> 3, 20? In other words how do we go from CopyFromReg to %vreg5?
>>
>
> CopyFromReg is a "helper" instruction meaning "use the value from this
> vreg". Values that are live across basic blocks are remembered in vregs,
&...
2012 Jun 13
2
[LLVMdev] Assert in live update from MI scheduler.
...t;
> You are probably right here β look at this β before phi elimination this code looks much more sane:
>
> # *** IR Dump After Live Variable Analysis ***:
> # Machine code for function push: SSA
> Function Live Outs: %R0
>
> BB#0: derived from LLVM BB %entry
> %vreg5<def> = IMPLICIT_DEF; IntRegs:%vreg5
> %vreg4<def> = TFRI_V4 <ga:@xx_stack>; IntRegs:%vreg4
> Successors according to CFG: BB#1
>
> BB#1: derived from LLVM BB %for.cond
> Predecessors according to CFG: BB#0 BB#1
> %vreg0<def> = PHI %vreg4,...
2013 May 13
1
[LLVMdev] Tracking down a SELECT expansion to predicated moves
...gt;; GR:%vreg0
%vreg1<def> = LDSHri %vreg0<kill>, 0; mem:LD4[@b] GR:%vreg1,%vreg0
%vreg2<def> = MOVIMM21 0; GR:%vreg2
%vreg3<def> = CMPGT %vreg1<kill>, %vreg2; PR:%vreg3 GR:%vreg1,%vreg2
%vreg4<def> = MOVIMM21 8; GR:%vreg4
%vreg5<def> = MOV %vreg4<kill>; GR:%vreg5,%vreg4
%vreg6<def> = MOVIMM21 23; GR:%vreg6
%vreg7<def,tied1> = CMOV %vreg5<tied0>, %vreg6<kill>, %vreg3<kill>;
GR:%vreg7,%vreg5,%vreg6 PR:%vreg3
%vreg8<def> = MOVL_GA <ga:@a>; GR:%vreg8...
2012 Jun 13
0
[LLVMdev] Assert in live update from MI scheduler.
...;next)
top = stack;
yy_instr = top->first;
}
If the loop never iterates, "top" will have garbage in it. If it iterates
even once, it will presumably have valid pointer. Bad, but perfectly valid
code.
In SSA it looked like this:
BB#0: derived from LLVM BB %entry
%vreg5<def> = IMPLICIT_DEF; IntRegs:%vreg5
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Dummy def.
%vreg4<def> = TFRI_V4 <ga:@xx_stack>; IntRegs:%vreg4
Successors according to CFG: BB#1
BB#1: derived...
2012 Jun 08
2
[LLVMdev] Strong vs. default phi elimination and single-reg classes
...kill>; CTRRC8:%vreg11 GPRC:%vreg10
Successors according to CFG: BB#1
112B BB#1: derived from LLVM BB %for.body, ADDRESS TAKEN
Predecessors according to CFG: BB#0 BB#1
%vreg12<def> = PHI %vreg13, <BB#1>, %vreg11,
<BB#0>;CTRRC8:%vreg12,%vreg13,%vreg11
%vreg5<def> = LDtoc <ga:@a>, %X2; G8RC:%vreg5
%vreg6<def> = LWZ 0, %vreg5; mem:Volatile LD4[@a](tbaa=!"int")
GPRC:%vreg6 G8RC:%vreg5
%vreg7<def> = ADD4 %vreg6<kill>, %vreg3; GPRC:%vreg7,%vreg6,%vreg3
STW %vreg7<kill>, 0, %vreg5<kill>; mem:Volatile ST4[@a...
2012 Jun 14
1
[LLVMdev] Assert in live update from MI scheduler.
...ck;
> yy_instr = top->first;
> }
>
> If the loop never iterates, βtopβ will have garbage in it. If it iterates even once, it will presumably have valid pointer. Bad, but perfectly valid code.
>
> In SSA it looked like this:
> BB#0: derived from LLVM BB %entry
> %vreg5<def> = IMPLICIT_DEF; IntRegs:%vreg5 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Dummy def.
> %vreg4<def> = TFRI_V4 <ga:@xx_stack>; IntRegs:%vreg4
> Successors according to CFG: BB#1
>
&g...
2014 Oct 24
2
[LLVMdev] Virtual register def doesn't dominate all uses
...= COPY %vreg3; SRegs:%vreg6,%vreg3
BR_cc <BB#2>, 20, %FLAG<imp-use,kill>
BR <BB#1>
Successors according to CFG: BB#1(20) BB#2(12)
BB#1: derived from LLVM BB %for.cond.for.end_crit_edge
Predecessors according to CFG: BB#0
%vreg4<def> = MV %vreg4; IntRegs:%vreg4
%vreg5<def> = ADD %vreg4<kill>, -1; IntRegs:%vreg5,%vreg4
%vreg0<def> = COPY %vreg5<kill>; SRegs:%vreg0 IntRegs:%vreg5
%vreg6<def> = COPY %vreg0; SRegs:%vreg6,%vreg0
Successors according to CFG: BB#2
BB#2: derived from LLVM BB %for.end
Predecessors according to CFG...
2016 Feb 18
4
How to interpret Selection DAG error output
...ements and
specifies them, naturally I got an error. Here it is
Here is the error:
LLVM ERROR: Cannot select: 0x3284268: glue = EsenciaISD::SET_FLAG
0x3283608, 0x3283710, 0x3283e48 [ORD=3] [ID=11]
0x3283608: i32,ch = CopyFromReg 0x3257980, 0x3283500 [ORD=1] [ID=9]
0x3283500: i32 = Register %vreg5 [ID=1]
0x3283710: i32 = Constant<3> [ID=2]
0x3283e48: i32 = Constant<20> [ID=8]
In function: fib
As far as I can understand LLVM cannot select it because the pattern is not
specified. Unfortunately for me, I can't understand how to interpret this
output. Would anybody be able t...