search for: iselector

Displaying 7 results from an estimated 7 matches for "iselector".

Did you mean: selector
2012 Mar 07
2
[LLVMdev] Data/Address registers
...cs (like comparisons which are not supported for address regs). Is it still possible to get ride of this with register classes ? I can make a pass before ISel to annotate the code identifying those registers which are only used for addressing (by doing a simple data-flow analysis), can it help ISelector later ? Because I could not find how to get metadata from the DAG to drive matching rules or lowering phases, is it possible ? How is metadata transferred to the DAG, where should I look for it ? Ivan >> Moreover, the standard pointer arithmetic is not >> enough for us (we need to s...
2012 Mar 07
0
[LLVMdev] Data/Address registers
...t either register class should have a variant for each. ISel will choose the appropriate one based on the rest of the operands. > I can make a pass before ISel to annotate the code identifying those registers which are only used for addressing (by doing a simple data-flow analysis), can it help ISelector later ? > Because I could not find how to get metadata from the DAG to drive matching rules or lowering phases, is it possible ? How is metadata transferred to the DAG, where should I look for it ? > Metadata should not be necessary for this. In general, metadata should never be used for an...
2012 Mar 14
2
[LLVMdev] Data/Address registers
...OPC_EmitConvertToTarget, 1, /*3307*/ OPC_EmitNodeXForm, 0, 3, // XLoadImm ... AADDMri supersedes DADDri (the same checks are performed). It's worth to note that the result is used by another instruction which has LSubRegs as its source operand and I got copy instructions added by the iselector to meet this requirement. I really would like to know why this is happening. It's like tblgen is not taking into account the register class assignations of both instructions :-/. Ivan >> I can make a pass before ISel to annotate the code identifying those registers which are only use...
2012 Mar 14
0
[LLVMdev] Data/Address registers
...ngs sane. > /*3307*/ OPC_EmitNodeXForm, 0, 3, // XLoadImm > ... > > AADDMri supersedes DADDri (the same checks are performed). It's worth to note that the result is used by another instruction which has LSubRegs as its source operand and I got copy instructions added by the iselector to meet this requirement. Hmm.. OK. So it's correctly understanding the class requirements of the instruction, just not doing what we want in order to meet them. I'm suspecting TableGen isn't as ambitious as one would hope in this regard. That is, defining separate instructions w/ the...
2011 Dec 02
0
[LLVMdev] Error: Type constraint application shouldn't fail!
...IntRegs:$b), "muladd $a, $b, $dst", [(set (i32 IntRegs:$dst), (mula_pat (v2i16 IntRegs:$a), (v2i16 IntRegs:$b)))]>; IntRegs is class with a type list of [i32, v2i16] But I get the following error when llvm building system try to generate the ISelector llvm[3]: Building Sparc.td DAG instruction selector implementation with tblgen vtInt: (vt:Other)<<P:Predicate_vtInt>> Type constraint application shouldn't fail!0 llvm-tblgen 0x081d6de7 1 llvm-tblgen 0x081d6b74 2 0x4001d400 __kernel_sigreturn + 0 3 libc.so.6...
2012 Mar 06
0
[LLVMdev] Data/Address registers
Hi Ivan, On Mar 3, 2012, at 4:48 AM, Ivan Llopard <ivanllopard at gmail.com> wrote: > Hi, > > I'm facing a problem in llvm while porting it to a new target and I'll > need some support. > We have 2 kind of register, one for general purposes (i.e. arithmetic, > comparisons, etc.) and the other for memory addressing. OK. Separate register classes should be able
2012 Mar 03
2
[LLVMdev] Data/Address registers
Hi, I'm facing a problem in llvm while porting it to a new target and I'll need some support. We have 2 kind of register, one for general purposes (i.e. arithmetic, comparisons, etc.) and the other for memory addressing. Cross copies are not allowed (no data path). We use clang 3.0 to produce assembler code. Because both registers have the same size and type (i16), I don't know