Displaying 5 results from an estimated 5 matches for "tcmpi8".
Did you mean:
cmpi
2018 Mar 23
1
ARM Backend BuildMI operand issues
...work.
After some research I found the following thread on the mailing list:
http://lists.llvm.org/pipermail/llvm-dev/2017-February/110086.html
With your help and the information about the condition codes I was able
to resolve the error:
BuildMI(BB, BB.end(), DL,
TII->get(ARM::tCMPi8)).addReg(ARM::R0).addImm(1).add(predOps(ARMCC::AL);
But how do I know how many and which condition codes each instruction
needs? [MOVi takes 3 operands relating to the condition code (all after
the immediate)]
There is no info about that in the ARMInstrThumb.td file.
-Julius
On 03/23/2018 12:1...
2018 Mar 22
0
ARM Backend BuildMI operand issues
...trInfo *TII = TM.getMCInstrInfo();
> DebugLoc DL;
> BuildMI(BB, BB.end(), DL, TII->get(ARM::B)).addMBB(trgBlock);
>
> these are working fine.
> When creating an compare instruction like cmp r0, 1 with:
>
> BuildMI(BB, BB.end(), DL, TII->get(ARM::tCMPi8),0).addImm(1);
>
> I get the following error:
>
> .../include/llvm/MC/MCInst.h:81: int64_t llvm::MCOperand::getImm() const: Assertion `isImm() && "This is not an immediate"' failed.
>
According to ARMInstrThumb.td, tCMPi8's source arguments are r...
2018 Mar 22
2
ARM Backend BuildMI operand issues
...etTarget();
const MCInstrInfo *TII = TM.getMCInstrInfo();
DebugLoc DL;
BuildMI(BB, BB.end(), DL, TII->get(ARM::B)).addMBB(trgBlock);
these are working fine.
When creating an compare instruction like cmp r0, 1 with:
BuildMI(BB, BB.end(), DL, TII->get(ARM::tCMPi8),0).addImm(1);
I get the following error:
.../include/llvm/MC/MCInst.h:81: int64_t
llvm::MCOperand::getImm() const: Assertion `isImm() && "This is not
an immediate"' failed.
Which even after hours I can't make sense why the operand kind is wrong.
Anoth...
2017 Nov 11
2
Update control flow graph when splitting a machine basic block?
...g-location !24
tBL 14, _, $__aeabi_d2iz, csr_aapcs, implicit-def dead %lr, implicit %sp, implicit %r0, implicit %r1, implicit-def %sp, implicit-def %r0, debug-location !25
DBG_VALUE 2, 0, !17, !18, debug-location !27
DBG_VALUE debug-use %r0, debug-use _, !16, !18, debug-location !26
tCMPi8 %r0, 2, 14, _, implicit-def %cpsr, debug-location !32
t2IT 11, 28, implicit-def %itstate
%r0 = tMOVi8 _, 1, 11, %cpsr, implicit %r0, implicit %itstate
tPOP_RET 11, %cpsr, def %r4, def %r6, def %r7, def %pc, implicit %r0, implicit %r4, implicit killed %itstate, debug-location !44
%r1...
2017 Nov 11
2
Update control flow graph when splitting a machine basic block?
> The right way to update the CFG very much depends on how you're
> transforming it.
I would like to export the CFG for control flow checking.
Theoretically, it should be possible for a compiler to know every target of every control flow instruction, except for computed targets that are not known at compile-time.
When a machine basic block is split between two branches, as shown below: