Displaying 5 results from an estimated 5 matches for "ctrrc8".
2012 Jun 08
2
[LLVMdev] Strong vs. default phi elimination and single-reg classes
...;def> = LI 2048; GPRC:%vreg4
%vreg3<def> = OR8To4 %vreg2<kill>, %vreg2; GPRC:%vreg3 G8RC:%vreg2
%vreg9<def> = COPY %vreg4<kill>; GPRC:%vreg9,%vreg4
%vreg10<def> = RLDICL %vreg9<kill>, 0, 32; GPRC:%vreg10,%vreg9
%vreg11<def> = MTCTR8r %vreg10<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>...
2012 Jun 08
0
[LLVMdev] Strong vs. default phi elimination and single-reg classes
On Jun 7, 2012, at 7:31 PM, Hal Finkel wrote:
> 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
> %vreg13<def> = COPY %vreg12<kill>; CTRRC8:%vreg13,%vreg12
> %vreg13<def> = BDNZ8 %vreg13, <BB#1>; CTRRC8:%vreg13
> B <BB#2>
> Successors according to CFG: BB#2 BB#1
Phi-elim works by inserting copies in the PHI predece...
2012 Jun 08
2
[LLVMdev] Strong vs. default phi elimination and single-reg classes
...dk> wrote:
>
> On Jun 7, 2012, at 7:31 PM, Hal Finkel wrote:
>
> > 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 %vreg13<def> = COPY
> > %vreg12<kill>; CTRRC8:%vreg13,%vreg12 %vreg13<def> = BDNZ8 %vreg13,
> > <BB#1>; CTRRC8:%vreg13 B <BB#2>
> > Successors according to CFG: BB#2 BB#1
>
>
> Phi-elim works by inserting...
2012 Jun 08
0
[LLVMdev] Strong vs. default phi elimination and single-reg classes
...in another).
- Reserved registers can do whatever you want, but defs are treated as having side effects, blocking certain optimizations like dead code elimination. (You don't want to DCE a stack pointer update).
In this case, the problem is that CTR and CTR8 are allocatable because CTRRC and CTRRC8 are allocatable. You can set 'isAllocatable = 0' in those register classes.
Unfortunately, that breaks your TCRETURNri instructions. Sorry!
Singleton register classes are dangerous because it is so easy to extend the live range of virtual registers without checking for interference. If yo...
2012 Jun 08
2
[LLVMdev] Strong vs. default phi elimination and single-reg classes
...registers can do whatever you want, but defs are treated
> as having side effects, blocking certain optimizations like dead code
> elimination. (You don't want to DCE a stack pointer update).
>
> In this case, the problem is that CTR and CTR8 are allocatable
> because CTRRC and CTRRC8 are allocatable. You can set 'isAllocatable
> = 0' in those register classes.
Thanks for explaining! [We should add this to the docs somewhere].
>
> Unfortunately, that breaks your TCRETURNri instructions. Sorry!
I'm guessing that I can rewrite TCRETURN to reference CTR/CTR...