search for: lbb0_33

Displaying 2 results from an estimated 2 matches for "lbb0_33".

Did you mean: lbb0_3
2013 Sep 18
2
[LLVMdev] How basic block layout is determined during scheduling?
Hi, guys, I compiled a subroutine with -O2, and llvm backend produced codes like: ################################################################## LBB0_32: ... R31 = -1 R20 = R31 * R20; .... bnz R2, LBB0_34 LBB0_31: ... b LBB0_34 LBB0_33: # weird basic block? R20 = R5 LBB0_34: .... ################################################################## Wrong answer is produced when executing bove codes. LBB0_33 is not used as destination basic block for any branch instruction, so its a dead basic block. Origina...
2013 Sep 18
0
[LLVMdev] How basic block layout is determined during scheduling?
...bnz R2, LBB0_34 > > I do not have any clue what happens when compiling with -O2. > Can someone make a suggestion? Is the "bnz" instruction marked "isBarrier" in your TableGen files? If so, that would mean LLVM considers fallthrough impossible and decides it can move LBB0_33 around at will. It's still very odd that it thinks it can put it directly before LBB0_34 though. It would be interesting to see the blocks before and after the "Basic block placement" pass. Running llc with -print-after-all and/or -debug might well shed some light on what's happe...