Displaying 8 results from an estimated 8 matches for "i32rc".
Did you mean:
p32rc
2009 Jul 07
1
[LLVMdev] LLVM code target dependent generator question
...R1029, R1024, R1028 // incrementing the src pointer
load R1030, R1029
add_pointer R1031, R1025,R1028 // calculating the dst address
store R1030, R1031
mov R1031, 4
add R1032, R1026, R1031 //scalar addition
ret
Currently my ADD instruction is defined in the InstrInfo.td file as following:
def I32RC : RegisterClass<"MyMachine", [i32], 32, [DefReg]>;
def P32RC : RegisterClass<"MyMachine", [iPTR], 32, [DefReg]>; -> I get error from tablegen if I use iPTR
def MyAdd : MyInst
<
myadd,
nosubop,
(outs I32RC:$dst),
(ins I32RC:$src1, I32RC:$src2),
“add $dst,...
2012 Feb 10
1
[LLVMdev] Prevent DAG combiner from changing "store ConstFP, addr" to integer store
...ter promote the store to a MOV (in a custom lowering step),
and this code above is changing the register class, such that it won't
coalesce. The debug output looks like this (%Xn are phys regs in F32RC
regclass)
--------------
BB#0: derived from LLVM BB %entry
%vreg0<def> = MOV_I32_RI 1; I32RC:%vreg0
%X0<def> = COPY %vreg0; I32RC:%vreg0
%vreg1<def> = MOV_I32_RI 0; I32RC:%vreg1
%X1<def> = COPY %vreg1; I32RC:%vreg1
%X2<def> = COPY %vreg1; I32RC:%vreg1
RET
# End machine code for function foo
********** SIMPLE REGISTER COALESCING **********
********** Function: foo...
2009 Jul 04
2
[LLVMdev] Help on DAG pattern matching string
...rs which aren't naturally exposed
in LLVM. Here's what I've done to add pointer support for an instruction
called PADD that takes a pointers and an offset and returns the new
pointer value:
def DefReg : Register<"r">;
def PtrReg : Register<"ptr">;
def I32RC : RegisterClass<"BE", [i32], 32, [DefReg]>;
def P32RC : RegisterClass<"BE", [i32], 32, [PtrReg]>;
def BEInst<bits<8> op, dag outs, dag ins, string asmstr, list<dag>
pattern> : Instruction { /* assign arguments to class members */ }
def BE_PADD : BE...
2009 Jul 04
0
[LLVMdev] Help on DAG pattern matching string
...> in LLVM. Here's what I've done to add pointer support for an
> instruction
> called PADD that takes a pointers and an offset and returns the new
> pointer value:
>
> def DefReg : Register<"r">;
> def PtrReg : Register<"ptr">;
> def I32RC : RegisterClass<"BE", [i32], 32, [DefReg]>;
> def P32RC : RegisterClass<"BE", [i32], 32, [PtrReg]>;
> def BEInst<bits<8> op, dag outs, dag ins, string asmstr, list<dag>
> pattern> : Instruction { /* assign arguments to class members */ }
&g...
2009 Jul 07
0
[LLVMdev] LLVM code target dependent generator question
...R1029, R1024, R1028 // incrementing the src pointer
load R1030, R1029
add_pointer R1031, R1025,R1028 // calculating the dst address
store R1030, R1031
mov R1031, 4
add R1032, R1026, R1031 //scalar addition
ret
Currently my ADD instruction is defined in the InstrInfo.td file as following:
def I32RC : RegisterClass<"MyMachine", [i32], 32, [DefReg]>;
def P32RC : RegisterClass<"MyMachine", [iPTR], 32, [DefReg]>; -> I get error from tablegen if I use iPTR
def MyAdd : MyInst
<
myadd,
nosubop,
(outs I32RC:$dst),
(ins I32RC:$src1, I32RC:$src2),
“add $dst, $s...
2009 Jul 06
2
[LLVMdev] Help on DAG pattern matching string
...hat I've done to add pointer support for an
>> instruction
>> called PADD that takes a pointers and an offset and returns the new
>> pointer value:
>>
>> def DefReg : Register<"r">;
>> def PtrReg : Register<"ptr">;
>> def I32RC : RegisterClass<"BE", [i32], 32, [DefReg]>;
>> def P32RC : RegisterClass<"BE", [i32], 32, [PtrReg]>;
>> def BEInst<bits<8> op, dag outs, dag ins, string asmstr, list<dag>
>> pattern> : Instruction { /* assign arguments to class m...
2009 Jul 06
0
[LLVMdev] Help on DAG pattern matching string
...nter support for an
>>> instruction
>>> called PADD that takes a pointers and an offset and returns the new
>>> pointer value:
>>>
>>> def DefReg : Register<"r">;
>>> def PtrReg : Register<"ptr">;
>>> def I32RC : RegisterClass<"BE", [i32], 32, [DefReg]>;
>>> def P32RC : RegisterClass<"BE", [i32], 32, [PtrReg]>;
>>> def BEInst<bits<8> op, dag outs, dag ins, string asmstr, list<dag>
>>> pattern> : Instruction { /* assign arguments...
2009 Jul 06
1
[LLVMdev] Help on DAG pattern matching string
Hello, Everyone
> TargetSelectoinDAG.td and then why the two versions are "identical" in
> TableGen's mind.
That's correct. The patterns are identical since the types of operands
involved are the same. DAG pattern matching is done before regalloc,
there are not regclasses actually at that point, thus both patterns
tries to select the same thing...
--
With best regards,