search for: ccop

Displaying 6 results from an estimated 6 matches for "ccop".

Did you mean: cop
2008 Sep 12
2
[LLVMdev] Selection Condition Codes
...let Pattern = pattern; let AsmString = asmstr; } def SDTGenTernaryOp : SDTypeProfile<1, 3, [ SDTCisSameAs<0, 1>,SDTCisSameAs<0, 2>, SDTCisSameAs<0, 3> ]>; def cmov_logical : SDNode<"INSTISD::CMOVLOG", SDTGenTernaryOp>; let PrintMethod = "printCCOperand" in def CCOp : Operand<i32>; def CMOVLOG : InstFormat<(outs GPR:$dst), (ins GPR:$LHS, GPR:$RHS, GPR:$TVAL, GPR:$FVAL, CCOp:$cond), "$cond $LHS, $LHS, $RHS\ncmov_logical $dst, $LHS, $TVAL, $FVAL",...
2008 Sep 12
0
[LLVMdev] Selection Condition Codes
...ve. "setOperationAction(ISD::SELECT_CC , MVT::Other, Expand);" should do the trick; that will prevent SELECT_CC instructions from being introduced. This one is easy to miss. > def CMOVLOG : InstFormat<(outs GPR:$dst), (ins GPR:$LHS, GPR:$RHS, > GPR:$TVAL, GPR:$FVAL, CCOp:$cond), The condition isn't properly an input... this seems likely to confuse ISel. I'm not sure, though; I'm not really an expert on patterns, and they can mess up in non-obvious ways. > Maybe I'm approaching this from the wrong way, but I don't think this > transforma...
2008 Sep 12
2
[LLVMdev] Selection Condition Codes
...ve. "setOperationAction(ISD::SELECT_CC , MVT::Other, Expand);" should do the trick; that will prevent SELECT_CC instructions from being introduced. This one is easy to miss. > def CMOVLOG : InstFormat<(outs GPR:$dst), (ins GPR:$LHS, GPR:$RHS, > GPR:$TVAL, GPR:$FVAL, CCOp:$cond), The condition isn't properly an input... this seems likely to confuse ISel. I'm not sure, though; I'm not really an expert on patterns, and they can mess up in non-obvious ways. > Maybe I'm approaching this from the wrong way, but I don't think this > transforma...
2010 Dec 15
0
[LLVMdev] Optimization passes break machine instructions on new backend
Hello Per, > The CMPrr instruction is moved down to after the PHI node. My guess is that > the 'dead' in CFR<imp-def,dead> is to blame, but I can't see what I'm doing > differently from MSP430/sparc that makes this not work. Any help GREATLY > appreciated! It seems like no use of CFR after CMP, indeed. How condbranches on your platform look like (patterns, etc.)
2010 Dec 15
2
[LLVMdev] Optimization passes break machine instructions on new backend
...MPrr : InstCS<(outs IntRegs:$dst), (ins IntRegs:$b, IntRegs:$c), "cmp $c, $dst", [(set IntRegs:$dst, (cmpcc IntRegs:$b, IntRegs:$c)), (implicit CFR)]>; } let Uses = [CFR], isBranch = 1, isTerminator = 1 in def SKIPCOND : InstCS<(outs), (ins CCOp:$cc), "s$cc", [(skipcc imm:$cc)]>; On Wed, Dec 15, 2010 at 10:02 AM, Anton Korobeynikov < anton at korobeynikov.info> wrote: > Hello Per, > > > The CMPrr instruction is moved down to after the PHI node. My guess is &g...
2010 Dec 15
2
[LLVMdev] Optimization passes break machine instructions on new backend
Hello! I'm working on a new back-end and have hit a bit of a snag. I'm working on getting selectcc working and have followed the MSP430 model of emitting a custom CMP and SELECT_CC node and matching that with a pseudo-instruction that has useCustomEmitter=1. However, my output ends up very wrong, despite the Machine code being initially correct: # Machine code for function func: Function