[LLVMdev] missing blocks

llvmjp jpbonn-keyword-llvm.7c175e at corniceresearch.com
Mon Oct 4 09:51:07 PDT 2010


  I suspect this is a straight forward problem so I thought I'd ask.  
I'm developing a new backend.  I recently updated from the LLVM 
repository and now my output assembly is branching to labels/blocks that 
have been removed.  It had been working fine two weeks ago.  What looks 
suspicious is the following message:

    TryTailMergeBlocks: BB#1, BB#3, BB#4
    Looking for common tails of at least 3 instructions
    *** Tail-duplicating BB#1
    *** Tail-duplicating BB#3

because the missing labels are .LBB0_1 and .LBB0_3.  both of branches to 
those labels were unconditional branches.  The conditional branch labels 
are fine.  Anyone have any idea what I may have done wrong?



         .file   "/tmp/20000112-1.bc"
         .text
         .globl  main
         .align  4
         .type   main, at function
main:                                   # @main
# BB#0:                                 # %entry
         addi %r1, %r1, -32
         st %r31, %r1,28
         st %r12, %r1,24
         addi %r12, %r0, 0
         st %r12, %r1,20
         addi %r2, %r0, 1
         call special_format
         oris r0,r0,0
         subc r0, %r2, %r12
         beq .LBB0_2
         oris r0,r0,0
         b .LBB0_1
         oris r0,r0,0
# BB#1:                                 # %if.then
         call abort
         oris r0,r0,0
.LBB0_2:                                # %if.end
         addi %r12, %r0, 0
         addi %r2, %r12, 0
         call special_format
         oris r0,r0,0
         subc r0, %r2, %r12
         bne .LBB0_4
         oris r0,r0,0
         b .LBB0_3
         oris r0,r0,0
# BB#3:                                 # %if.then3
         call abort
         oris r0,r0,0
.LBB0_4:                                # %if.end4
         addi %r2, %r0, 0
         call exit
         oris r0,r0,0
.Ltmp0:
         .size   main, .Ltmp0-main



More information about the llvm-dev mailing list