Displaying 14 results from an estimated 14 matches for "ptr_rc".
2012 Sep 14
2
[LLVMdev] tablegen and ptr_rc: PointerLikeRegClass
Hi all,
I've been poking at AsmParser support for powerpc64
(ppc64-elf-linux-abi) and have run into some behavior I don't understand
with the ptr_rc references coming out of the PPC*.td files when
generating the asm-matcher files.
For instance :
$ ./build/bin/llvm-tblgen llvm/lib/Target/PowerPC/PPC.td -I
~/llvm-head/llvm/include -I ~/llvm-head/llvm/lib/Target/PowerPC/
-gen-asm-matcher
<...>
Included from llvm/lib/Target/PowerPC/PPC.t...
2012 Sep 19
0
[LLVMdev] "Unknown node flavor ..." Was: Re: tablegen and ptr_rc: PointerLikeRegClass
On Fri, 2012-09-14 at 13:10 -0500, Will Schmidt wrote:
> Hi all,
>
> I've been poking at AsmParser support for powerpc64
> (ppc64-elf-linux-abi) and have run into some behavior I don't understand
> with the ptr_rc references coming out of the PPC*.td files when
> generating the asm-matcher files.
>
> For instance :
> $ ./build/bin/llvm-tblgen llvm/lib/Target/PowerPC/PPC.td -I
> ~/llvm-head/llvm/include -I ~/llvm-head/llvm/lib/Target/PowerPC/
> -gen-asm-matcher
>
> <...>
>...
2009 Jul 10
2
[LLVMdev] Help: Instruction Pattern Matching question
...t; pattern>
Instruction
{
let Namespce = "MyNameSpace";
MyOpCode myop = op;
MySubOpcode mysubop = subop;
dag OutOprandList = outs;
dag InOprandList = ins;
let ASMString = asmstr;
let Pattern = pattern;
}
def My_ADDINST1: MyInst <MYADD1, NO_SUBOP,
(outs ptr_rc: $dest), (ins: $ptr_rc:$ptr1, Int32RC:$src)
"myadd1 $dst, $ptr1, $src1",
[(set $ptr_rc:$dst,(add $ptr_rc:ptr1, Int32RC:$src))]>;
it is giving me error like impossible to select.
Could anybody help me resolve this issue. Any example would be highly appreciated.
2012 Nov 15
3
[LLVMdev] Tablegen and ptr_rc: PointerLikeRegClass
...9 at 18:41 -0500, Will Schmidt wrote:
> On Fri, 2012-09-14 at 13:10 -0500, Will Schmidt wrote:
> > Hi all,
> >
> > I've been poking at AsmParser support for powerpc64
> > (ppc64-elf-linux-abi) and have run into some behavior I don't understand
> > with the ptr_rc references coming out of the PPC*.td files when
> > generating the asm-matcher files.
> >
> > For instance :
> > $ ./build/bin/llvm-tblgen llvm/lib/Target/PowerPC/PPC.td -I
> > ~/llvm-head/llvm/include -I ~/llvm-head/llvm/lib/Target/PowerPC/
> > -gen-asm-match...
2012 Nov 16
0
[LLVMdev] Tablegen and ptr_rc: PointerLikeRegClass
On Nov 15, 2012, at 2:54 PM, Will Schmidt <will_schmidt at vnet.ibm.com> wrote:
>
> Can anyone confirm or deny tablegen supporting PointerLikeRegClass?
X86 is using it. You could start by determining what PPC is doing differently.
/jakob
2007 Dec 05
1
[LLVMdev] Newbie: Basic stuff
What does MIOperandInfo exactly mean while defining an Operand class?
e.g. here
class X86MemOperand<string printMethod> : Operand<iPTR> {
let PrintMethod = printMethod;
let MIOperandInfo = (ops ptr_rc, i8imm, ptr_rc, i32imm);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071204/23db1ace/attachment.html>
2007 Oct 19
2
[LLVMdev] Adding address registers to back-end
...o my Sparc back-end.
1) I defined a new register call AddrRegs
2) I registered the class AddrRegs (addRegisterClass(MVT::iPTR, .. ))
3) I added method addPointerRegClass() to my InstrInfo class
The compiler generates the some code as before, but that seems to
be ok, because I haven't used ptr_rc yet.
4) I changed the address mode MEMri:
def MEMri : Operand<iPTR> {
let PrintMethod = "printMemOperand";
// was: let MIOperandInfo = (ops IntRegs, i32imm);
let MIOperandInfo = (ops ptr_rc, i32imm);
}
for the C code int c; void f(void) { c = 4711; } I get the error
me...
2016 Mar 18
2
Immediate operand for load instruction, in back end
...m";
}
class LD_D_DESC : LD_DESC_BASE<"ldvd", load, v32i16, MSA128DOpnd>;
I've tried to change mem_msa to hold only let MIOperandInfo = (ops simm10) but there
are problems it seems:
// MSA specific address operand
def mem_msa : mem_generic {
let MIOperandInfo = (ops ptr_rc, simm10);
let EncoderMethod = "getMSAMemEncoding";
}
Could you please tell me what is the simplest way to define in LD_DESC_BASE a $addrsrc
that is just an immediate value like i16 or i16imm?
Thank you very much,
Alex
2018 Sep 28
3
error: expected memory with 32-bit signed offset
...: error: expected memory with
32-bit signed offset
gslbx $2,0($3,$4)
^
I just copy-n-paste mem_generic and getMemEncoding:
def gs_mem : Operand<iPTR> {
let PrintMethod = "printMemOperand";
let MIOperandInfo = (ops ptr_rc, ptr_rc, simm16);
^-- for two registers
let EncoderMethod = "getGSMemEncoding";
^-- just encoding two
registers and one offset
let ParserMatchClass = MipsMemAsmOperand;
let OperandType = "OPERAND_MEMORY";
}
----- 8< --...
2007 Oct 19
0
[LLVMdev] Adding address registers to back-end
...1) I defined a new register call AddrRegs
> 2) I registered the class AddrRegs (addRegisterClass(MVT::iPTR, .. ))
> 3) I added method addPointerRegClass() to my InstrInfo class
>
> The compiler generates the some code as before, but that seems to
> be ok, because I haven't used ptr_rc yet.
>
> 4) I changed the address mode MEMri:
>
> def MEMri : Operand<iPTR> {
> let PrintMethod = "printMemOperand";
> // was: let MIOperandInfo = (ops IntRegs, i32imm);
> let MIOperandInfo = (ops ptr_rc, i32imm);
> }
>
> for the C code int c;...
2007 Sep 29
0
[LLVMdev] Q about instruction pattern matching
...has been selected as data register instructions).
Returning the data register class generates a bunch of illegal moves,
such as move.l 8(d0), d1. Here, d0 has to be an address register. The
root cause of this is instructions that get emitted with the
M_LOOK_UP_PTR_REG_CLASS flag, because I have a ptr_rc in my address
mode selection patterns for loads and stores.
Also, I'm uncertain as to how this custom DR->AR op replacer pass fits
into this whole soup and where it is supposed to happen, as I'm still
pretty clueless with llvm internals. :)
Thanks,
Andreas
2007 Sep 25
2
[LLVMdev] Q about instruction pattern matching
On Sep 24, 2007, at 1:12 AM, Andreas Fredriksson wrote:
> On 9/24/07, Evan Cheng <evan.cheng at apple.com> wrote:
>
>> I am going to suggest something shocking. :) Since you will end up
>> writing a
>> bunch of target specific code anyway, you might a well write a target
>> specific pass that change generic instructions into data register
>> variant
2016 Mar 22
0
Immediate operand for load instruction, in back end
...t;"ldvd", load, v32i16, MSA128DOpnd>;
>
>
> I've tried to change mem_msa to hold only let MIOperandInfo = (ops
> simm10) but there
> are problems it seems:
>
> // MSA specific address operand
> def mem_msa : mem_generic {
> let MIOperandInfo = (ops ptr_rc, simm10);
> let EncoderMethod = "getMSAMemEncoding";
> }
>
>
>
> Could you please tell me what is the simplest way to define in
> LD_DESC_BASE a $addrsrc
> that is just an immediate value like i16 or i16imm?
>
> Thank you very much,
> Alex...
2007 Sep 30
2
[LLVMdev] Q about instruction pattern matching
...ta register instructions).
>
> Returning the data register class generates a bunch of illegal moves,
> such as move.l 8(d0), d1. Here, d0 has to be an address register. The
> root cause of this is instructions that get emitted with the
> M_LOOK_UP_PTR_REG_CLASS flag, because I have a ptr_rc in my address
> mode selection patterns for loads and stores.
I think it should return DR register class. My theory is if all the
nodes are already fixed right after selection, scheduling and
allocation should just work.
>
>
> Also, I'm uncertain as to how this custom DR->A...