search for: i32rc

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,