search for: v4r0

Displaying 8 results from an estimated 8 matches for "v4r0".

Did you mean: v4.0
2007 Mar 25
2
[LLVMdev] Live intervals and aliasing registers problem
...beginning to add vector registers to a back end I came across the following problem: as soon as I define two sets of registers that have a many-to-one mapping the live interval pass appears to double- kill the mapped-onto register. I have the following excerpts from my RegisterInfo.td. def V4R0 : R4v<0 , "V4R0 ", []>, DwarfRegNum<0>; def R0 : Rg<0 , "R0", [V4R0]>, DwarfRegNum<0>; def R1 : Rg<1 , "R1", [V4R0]>, DwarfRegNum<1>; when trying to compile: define void @_Z3fooii(i32 %a, i32 %b) { entry: %retval =...
2007 Mar 27
0
[LLVMdev] Live intervals and aliasing registers problem
...sters to a back end I came across > the following problem: as soon as I define two sets of registers > that have a many-to-one mapping the live interval pass appears to > double-kill the mapped-onto register. I have the following excerpts > from my RegisterInfo.td. > > def V4R0 : R4v<0 , "V4R0 ", []>, DwarfRegNum<0>; > > def R0 : Rg<0 , "R0", [V4R0]>, DwarfRegNum<0>; > def R1 : Rg<1 , "R1", [V4R0]>, DwarfRegNum<1>; How are R4v and Rg defined? > > when trying to compile: > > defi...
2007 Apr 03
2
[LLVMdev] Live intervals and aliasing registers problem
...me >> across the following problem: as soon as I define two sets of >> registers that have a many-to-one mapping the live interval pass >> appears to double-kill the mapped-onto register. I have the >> following excerpts from my RegisterInfo.td. >> >> def V4R0 : R4v<0 , "V4R0 ", []>, DwarfRegNum<0>; >> >> def R0 : Rg<0 , "R0", [V4R0]>, DwarfRegNum<0>; >> def R1 : Rg<1 , "R1", [V4R0]>, DwarfRegNum<1>; > > How are R4v and Rg defined? class Rg<bits<6> n...
2007 Apr 04
0
[LLVMdev] Live intervals and aliasing registers problem
On Apr 3, 2007, at 3:45 PM, Christopher Lamb wrote: > >> Can you dump out the machine basic block? It should have an >> implicit use of V4R0 at first ORI but it should not be marked kill. >> If it is marked kill, then you need to walk LiveVariables.cpp to >> find out why. > > Here is the beginning of the BB dump. > > entry (0x8503c80, LLVM BB @0x8501af0, ID#0): > Live Ins: %R0 %R1 > %reg1024 = ORI %R0<k...
2007 Apr 23
0
[LLVMdev] Register based vector insert/extract
...it's simply based on using subregister operands in > subsequent/preliminary instructions. At the pointer of custom > lowering register allocation has not yet been done, so I don't have > a way to communicate the dependency. > An example is in order: If I have a register v4r0 with subregisters {r0, r1, r2, r3} and a DAG that looks like load v4si <- extract_element 2 <- add -> load i32 I'd like to be able to generate load v4r0 load r10 add r11, r10, r2 <== subregister 2 of v4r0 -- Christopher Lamb
2007 Apr 23
2
[LLVMdev] Register based vector insert/extract
On Apr 23, 2007, at 12:31 PM, Chris Lattner wrote: > On Mon, 23 Apr 2007, Christopher Lamb wrote: >> How can one let the back end know how to insert and extract >> elements of >> a vector through sub-register copies? I'm at a loss how to do this... > > You probably want to custom lower the insertelement/extractelement > operations for the cases you support.
2007 Apr 23
2
[LLVMdev] Register based vector insert/extract
...bregister >> operands in subsequent/preliminary instructions. At the pointer of >> custom lowering register allocation has not yet been done, so I >> don't have a way to communicate the dependency. >> > > An example is in order: > > If I have a register v4r0 with subregisters {r0, r1, r2, r3} and a > DAG that looks like > > load v4si <- extract_element 2 <- add -> load i32 > > I'd like to be able to generate > > load v4r0 > load r10 > add r11, r10, r2 <== subregister 2 of v4r0 I see that Evan has added getS...
2007 Apr 23
0
[LLVMdev] Register based vector insert/extract
...t's simply based on using subregister >>> operands in subsequent/preliminary instructions. At the pointer of >>> custom lowering register allocation has not yet been done, so I >>> don't have a way to communicate the dependency. Ok. >> If I have a register v4r0 with subregisters {r0, r1, r2, r3} and a >> DAG that looks like >> >> load v4si <- extract_element 2 <- add -> load i32 >> >> I'd like to be able to generate >> >> load v4r0 >> load r10 >> add r11, r10, r2 <== subregister 2 of v4...