search for: bfinwrapper

Displaying 3 results from an estimated 3 matches for "bfinwrapper".

2009 Apr 20
2
[LLVMdev] A few questions from a newbie
...MOVE_ADDR : MYInst<(outs Int32Regs:$dst), (ins i32mem:$a), "move $dst, $a;", [(set Int32Regs:$dst, (Wrapper tglobaladdr:$a))]>; I don't quite understand what the semantics of Pat in general. Could you please explain what def : Pat<(BfinWrapper (i32 tglobaladdr:$addr)), (LOAD32imm tglobaladdr:$addr)>; means? And I totally agree it would be better if someone can explain why the Wrapper is needed here. Regards, P.B. On Sun, Apr 19, 2009 at 11:01 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote: > > On 20/0...
2009 Apr 20
0
[LLVMdev] A few questions from a newbie
...r', one is hard-coded in by tblgen and the > other is generated by tbglen following the pattern I specified. The > compilation fails because of the two duplicated and conflicting cases. This happened to me too. I stole a solution from the other targets - create a wrapper node: def BfinWrapper: SDNode<"BfinISD::Wrapper", SDTIntUnaryOp>; Then custom lower ISD::GlobalAddress, converting it to a wrapped TargetGlobalAddress: SDValue BlackfinTargetLowering::LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) { DebugLoc DL = Op.getDebugLoc(); GlobalValue *GV = cas...
2009 Apr 20
2
[LLVMdev] A few questions from a newbie
Hello, I am learning to write a new backend for LLVM and have a few simple questions. 1) What are the differences between 'constant' and 'targetconstant', 'globaladdress' and 'targetglobaladdress'? It is not clear from the document when and which should be used. 2) On the processor I am working on, there is a 'move reg, mem_addr' instruction. When I try