search for: iscompare

Displaying 13 results from an estimated 13 matches for "iscompare".

2010 Sep 14
2
[LLVMdev] Thumb categorizing TST wrongly
I see strangeness on Thumb TST (tTST) predicate 'isCompare' It is true for regular ARM, false for Thumb: (gdb) p MI->dump() TSTri %reg16397, 3, pred:14, pred:%reg0, %CPSR<imp-def>; GPR:% reg16397 $24 = void (gdb) p MI->getDesc().isCompare() $25 = true (gdb) p MI->dump() tTST %reg16396, %reg16397, pred:14, pred:%reg0, %CPSR<...
2010 Sep 14
0
[LLVMdev] Thumb categorizing TST wrongly
On Sep 14, 2010, at 12:09 PM, Gabor Greif wrote: > I see strangeness on Thumb TST (tTST) predicate 'isCompare' > > It is true for regular ARM, false for Thumb: > > (gdb) p MI->dump() > TSTri %reg16397, 3, pred:14, pred:%reg0, %CPSR<imp-def>; GPR:% > reg16397 > $24 = void > (gdb) p MI->getDesc().isCompare() > $25 = true > > > (gdb) p MI->dump() &...
2014 Apr 22
2
[LLVMdev] where is F7 opcode for TEST instruction on X86?
...n __TEXT,__text,regular,pure_instructions testl $570425344, %eax ## imm = 0x22000000 however, i cannot find anywhere this F7 opcode is defined in lib/Target/X86/X86InstrArithmetic.td. we only have TEST defined with F6 & other opcode like below. any hint please? thanks. let isCompare = 1 in { let Defs = [EFLAGS] in { let isCommutable = 1 in { def TEST8rr : BinOpRR_F<0x84, "test", Xi8 , X86testpat, MRMSrcReg>; def TEST16rr : BinOpRR_F<0x84, "test", Xi16, X86testpat, MRMSrcReg>; def TEST32rr : BinOpRR_F<0x84, "test&...
2010 Sep 15
0
[LLVMdev] LLVMdev Digest, Vol 75, Issue 32
...gorizing TST wrongly > To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> > Message-ID: <7EABAC00-FD22-4757-8F8B-9FFEF5AD5767 at mac.com> > Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed > > I see strangeness on Thumb TST (tTST) predicate 'isCompare' > > It is true for regular ARM, false for Thumb: > > (gdb) p MI->dump() > TSTri %reg16397, 3, pred:14, pred:%reg0, %CPSR<imp-def>; GPR:% > reg16397 > $24 = void > (gdb) p MI->getDesc().isCompare() > $25 = true > > > (gdb) p MI->dump() >...
2016 Mar 09
2
[CodeGen] PeepholeOptimizer: optimizing condition dependent instrunctions
Hi, I find it's quite strange how condition dependent instructions are processed in PeepholeOptimizer::runOnMachineFunction: 01577 if ((isUncoalescableCopy(*MI) && 01578 optimizeUncoalescableCopy(MI, LocalMIs)) || 01579 (MI->isCompare() && optimizeCmpInstr(MI, &MBB)) || 01580 (MI->isSelect() && optimizeSelect(MI, LocalMIs))) { 01581 // MI is deleted. 01582 LocalMIs.erase(MI); 01583 Changed = true; 01584 continue; 01585 } 01586 01587 if (MI->isConditi...
2018 Jul 10
2
Stuck with instruction in tablegen
...nfo.td, in the following section of "BinOp8RF", which is used by the "defm" line that generates the "add" instruction pattern: multiclass BinOp8RF<Prefix prefix, bits<3> opcode, string mnemonic, bit compare = 0> { let isCompare = compare, Defs = [A, F], Uses = [A] in { def 8ap : I8 <prefix, {0b10, opcode, 0b110}, mnemonic, "\ta, $src", "", (outs), (ins ptr:$src), [(set A, F, (Z80add_flag...
2016 Mar 10
2
[CodeGen] PeepholeOptimizer: optimizing condition dependent instrunctions
...lists.llvm.org>> wrote: Hi, I find it's quite strange how condition dependent instructions are processed in PeepholeOptimizer::runOnMachineFunction: 01577 if ((isUncoalescableCopy(*MI) && 01578 optimizeUncoalescableCopy(MI, LocalMIs)) || 01579 (MI->isCompare() && optimizeCmpInstr(MI, &MBB)) || 01580 (MI->isSelect() && optimizeSelect(MI, LocalMIs))) { 01581 // MI is deleted. 01582 LocalMIs.erase(MI); 01583 Changed = true; 01584 continue; 01585 } 01586 01587 if (MI->isConditi...
2018 Jul 10
2
Stuck with instruction in tablegen
2012 Jan 27
3
[LLVMdev] How to get the string value?
Thanks Duncan, Yes, it is a ConstantExpr! Thank you! Now trying to find a clue in ConstantExpr's functions to get that string :-) Regards, Welson On Thu, Jan 26, 2012 at 9:04 PM, Duncan Sands <baldrick at free.fr> wrote: > Hi Welson Sun, > > > Hi, if I have some LLVM code like this: > > > > @.str = private unnamed_addr constant [7 x i8]
2012 Apr 19
0
[LLVMdev] Target Dependent Hexagon Packetizer patch
...// The implemented patterns are: EQ/GT/GTU. >> // Missing patterns are: GE/GEU/LT/LTU/LE/LEU. >> >> +// Following instruction is not being extended as it results into the >> +// incorrect code for negative numbers. >> // Pd=cmpb.eq(Rs,#u8) >> + >> let isCompare = 1 in >> def CMPbEQri_V4 : MInst<(outs PredRegs:$dst), >> (ins IntRegs:$src1, u8Imm:$src2), >> "$dst = cmpb.eq($src1, #$src2)", >> - [(set PredRegs:$dst, (seteq (and IntRegs:$src1, 255), >> -...
2013 Oct 29
5
[LLVMdev] [Propose] Add address-taken bit to GlobalVariable for disambiguation purpose
Hi, There: I'd like to add bit, called "addr_not_taken", to GlobalVariable in order to indicate if a GlobalVariable doesn't has its address taken or not. 1.The motivation =============== The motivation can be explained by the following example. In this example, variable x does not have its address taken, therefore, it cannot be indirectly access. So, we can prove
2014 Sep 19
2
[LLVMdev] More careful treatment of floating point exceptions
Hi Sanjay, Thanks, I saw this flag and it's definitely should be considered, but it appeared to me to be static characteristic of target platform. I'm not sure how appropriate it would be to change its value from a front-end. It says "Has", while optional flag would rather say "Uses" meaning that implementation cares about floating point exceptions. Regards, Sergey
2014 Sep 25
2
[LLVMdev] More careful treatment of floating point exceptions
...NewC = ConstantFoldConstantExpressionImpl(NewCE, TD, TLI, FoldedOps, + HonorFPExceptions); } Ops.push_back(NewC); } @@ -984,7 +989,8 @@ ConstantFoldConstantExpressionImpl(const ConstantExpr *CE, const DataLayout *TD, if (CE->isCompare()) return ConstantFoldCompareInstOperands(CE->getPredicate(), Ops[0], Ops[1], TD, TLI); - return ConstantFoldInstOperands(CE->getOpcode(), CE->getType(), Ops, TD, TLI); + return ConstantFoldInstOperands(CE->getOpcode(), CE->getType()...