search for: gr0

Displaying 17 results from an estimated 17 matches for "gr0".

Did you mean: cr0
2004 Jun 22
3
[LLVMdev] Linearscan allocator bug?
...tion # Machine code for testBooleanNot(): <fi #-4> is 4 bytes fixed at location [SP-80] <fi #-3> is 4 bytes fixed at location [SP-76] <fi #-2> is 4 bytes fixed at location [SP-72] <fi #-1> is 4 bytes fixed at location [SP-68] entry (0x8065970, LLVM BB @0x805fde8): %gr0 = load <fi#-1> %gr1 = load <fi#-2> %gr2 = load <fi#-3> %gr3 = load <fi#-4> %gr4 = move 1 setcc %gr0, %gr4 if v< goto %disp(label entry.selecttrue) %gr0 = move 0 %gr0 = move %gr0 goto %disp(label entry.selectcont) entry.selecttrue (0x80659d0, LLVM BB @0x80639b0):...
2004 Jun 09
0
[LLVMdev] BranchInst problem
On Wed, 9 Jun 2004, Vladimir Prus wrote: > > I assume that the two unconditional gotos are just test code, right? If > > not, the second one is dead. > > Yes, in the final form there will be "iflt" instruction before the first goto, > making it conditional. Ah, ok :) > > > The code after "goto" is disturbing. It looks like spill code, but
2004 Jun 09
2
[LLVMdev] BranchInst problem
Chris Lattner wrote: > On Tue, 8 Jun 2004, Vladimir Prus wrote: > > While adding support for branch instructions in my backend, I run into a > > trouble. The code to handle branches looks like: > > The machine code after instruction selection is: > > > > entry (0x8681458): > > %reg1024 = load <fi#-1> > > %reg1025 = load
2004 Jun 09
2
[LLVMdev] BranchInst problem
...hine code for _Z3addii(). Code after register allocation # Machine code for _Z3addii(): <fi #-2> is 4 bytes fixed at location [SP-20] <fi #-1> is 4 bytes fixed at location [SP-16] <fi #0> is 4 bytes <fi #1> is 4 bytes <fi #2> is 4 bytes entry (0x8681458): %gr0 = load <fi#-1> %gr1 = load <fi#-2> setcc %gr0, %gr1 store <fi#0>, %gr0 store <fi#1>, %gr1 goto %disp(label then) goto %disp(label else) then (0x8681688): %gr0 = load <fi#1> %gr1 = load <fi#0> %gr0 = + %gr0, %gr1 %gr7 = move %gr0 return else (0x86815e...
2004 Nov 16
2
[LLVMdev] Target.td:Register changes
...any parameters. The change log is just: * Target.td: Revamp the Register class, and allow the use of the RegisterGroup class to specify aliases directly in register definitions. and I could not find any discussions in the archives. Why the change was necessary? Writing: def gr0 : Register<"gr0">; def gr1 : Register<"gr1">; def gr2 : Register<"gr2">; def gr3 : Register<"gr3">; def gr4 : Register<"gr4">; is a bit boring and it's very easy to make a mistake. How the names are used?...
2004 Nov 16
0
[LLVMdev] Target.td:Register changes
On Tue, 16 Nov 2004, Vladimir Prus wrote: > and I could not find any discussions in the archives. > > Why the change was necessary? Writing: > > def gr0 : Register<"gr0">; > def gr1 : Register<"gr1">; > def gr2 : Register<"gr2">; > def gr3 : Register<"gr3">; > def gr4 : Register<"gr4">; > > is a bit boring and it's very easy to make a mista...
2004 Jun 08
2
[LLVMdev] BranchInst problem
...then) goto %disp(label else) then (0x8681688): %reg1026 = + %reg1025, %reg1024 %gr7 = move %reg1026 return .... which looks ok, but after register allocation and prolog/epilogue insertion, I get this: entry (0x8681458): ..... setcc %gr0, %gr1 goto %disp(label then) goto %disp(label else) %ar6 = + %ar6, 1 store %ar6, %gr0 %ar6 = - %ar6, 1 %ar6 = + %ar6, 2 store %ar6, %gr1 %ar6 = - %ar6, 2 The code after "goto" is disturbing. It looks like spill code, but it&...
2004 Jun 09
2
[LLVMdev] Saving registers used by function
Hello! Is there an (semi)automatic way to save registers used by a function? For example, on my target I have to store ar0-ar4 and gr0-gr4, gr5, gr6. For now I just emit huge prologue code to push them all to stack -- even if they are not modified at all. Is there a way to tell LLVM which registers must be stored, and have it automatically issue pushes/pops? I can live with current design, just wondering. - Volodya
2004 Jun 08
0
[LLVMdev] BranchInst problem
...goto %disp(label else) I assume that the two unconditional gotos are just test code, right? If not, the second one is dead. > which looks ok, but after register allocation and prolog/epilogue insertion, I > get this: > > entry (0x8681458): > ..... > setcc %gr0, %gr1 > goto %disp(label then) > goto %disp(label else) > %ar6 = + %ar6, 1 > store %ar6, %gr0 > %ar6 = - %ar6, 1 > %ar6 = + %ar6, 2 > store %ar6, %gr1 > %ar6 = - %ar6, 2 > > The code after "goto"...
2004 Jun 09
0
[LLVMdev] Saving registers used by function
On Wed, 2004-06-09 at 04:56, Vladimir Prus wrote: > Hello! > Is there an (semi)automatic way to save registers used by a function? For > example, on my target I have to store ar0-ar4 and gr0-gr4, gr5, gr6. For now > I just emit huge prologue code to push them all to stack -- even if they are > not modified at all. > > Is there a way to tell LLVM which registers must be stored, and have it > automatically issue pushes/pops? I can live with current design, just > w...
2004 Jun 09
2
[LLVMdev] Saving registers used by function
Alkis Evlogimenos wrote: > On Wed, 2004-06-09 at 04:56, Vladimir Prus wrote: > > Hello! > > Is there an (semi)automatic way to save registers used by a function? For > > example, on my target I have to store ar0-ar4 and gr0-gr4, gr5, gr6. For > > now I just emit huge prologue code to push them all to stack -- even if > > they are not modified at all. > > > > Is there a way to tell LLVM which registers must be stored, and have it > > automatically issue pushes/pops? I can live with current...
2004 Jun 09
0
[LLVMdev] Saving registers used by function
...09 at 05:26, Vladimir Prus wrote: > Alkis Evlogimenos wrote: > > On Wed, 2004-06-09 at 04:56, Vladimir Prus wrote: > > > Hello! > > > Is there an (semi)automatic way to save registers used by a function? For > > > example, on my target I have to store ar0-ar4 and gr0-gr4, gr5, gr6. For > > > now I just emit huge prologue code to push them all to stack -- even if > > > they are not modified at all. > > > > > > Is there a way to tell LLVM which registers must be stored, and have it > > > automatically issue pushes/pops...
2006 Oct 10
0
[LLVMdev] FP emulation
...(for the future) and one for fp64. fp32 aliases the > integer register set. fp64 aliases the fp32 register set, but not the > integer register set explicitly. I thought that aliases are transitive? > Or do I have to mention all aliases explicitly, e.g. for %d0 I need to > say [%s0,%s1,%GR0,%GR1]? Depending on how you defined the aliases, they aren't necessarily transitive. I'd like at the <yourtarget>GenRegisterInfo.inc file, and see what it lists as the aliases for each reg. > But a more interesting question is this: The scheme above assumes that > there is...
2006 Oct 10
4
[LLVMdev] FP emulation
...r sets. One for fp32 (for the future) and one for fp64. fp32 aliases the integer register set. fp64 aliases the fp32 register set, but not the integer register set explicitly. I thought that aliases are transitive? Or do I have to mention all aliases explicitly, e.g. for %d0 I need to say [%s0,%s1,%GR0,%GR1]? But a more interesting question is this: The scheme above assumes that there is a "hardwired" mapping between FP registers and concerete pairs of integer registers. In many cases this is enough, since the emulated operations indeed expect parameters on predefined pairs of 32bit in...
2006 Oct 09
0
[LLVMdev] FP emulation
On Mon, 9 Oct 2006, Roman Levenstein wrote: > I'm now ready to implement the FP support for my embedded target. cool. > My target supports only f64 at the moment. > Question: How can I tell LLVM that float is the same as double on my > target? May be by assigning the same register class to both MVT::f32 > and MVT::f64? Just don't assign a register class for the f32 type.
2006 Oct 09
2
[LLVMdev] FP emulation
Hi, I'm now ready to implement the FP support for my embedded target. My target supports only f64 at the moment. Question: How can I tell LLVM that float is the same as double on my target? May be by assigning the same register class to both MVT::f32 and MVT::f64? But FP is supported only in the emulated mode, because the target does not have any hardware support for FP. Therefore each FP
2006 Oct 11
5
[LLVMdev] FP emulation
...aliases > the > > integer register set. fp64 aliases the fp32 register set, but not > the > > integer register set explicitly. I thought that aliases are > transitive? > > Or do I have to mention all aliases explicitly, e.g. for %d0 I need > to > > say [%s0,%s1,%GR0,%GR1]? > > Depending on how you defined the aliases, they aren't necessarily > transitive. I'd like at the <yourtarget>GenRegisterInfo.inc file, > and see > what it lists as the aliases for each reg. Done. And I looked into the tblgen code. Tarnsitivity is not ensu...