[PATCH] D13532: [CGP] widen switch condition and case constants to target's register width

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 7 14:12:30 PDT 2015


spatel added a comment.

Phab formatting was thrown off by '#' on the BB's. Removed below:

Before:

   BB#0:
    mr 4, 3
    extsh. 3, 4
    ble 0, .LBB0_5
   BB#1: 
    cmpwi	 3, 99
    bgt	 0, .LBB0_9
   BB#2:            
    rlwinm 4, 4, 0, 16, 31      <--- 32-bit mask/extend
    li 3, 0
    cmplwi	 4, 1
    beqlr 0
   BB#3:            
    cmplwi	 4, 10
    bne	 0, .LBB0_12
   BB#4:                      
    li 3, 1
    blr
  .LBB0_5:                             
    rlwinm 3, 4, 0, 16, 31         <--- 32-bit mask/extend
    cmplwi	 3, 65436
    beq	 0, .LBB0_13
   BB#6:                            
    cmplwi	 3, 65526
    beq	 0, .LBB0_15
   BB#7:                       
    cmplwi	 3, 65535
    bne	 0, .LBB0_12
   BB#8:                       
    li 3, 4
    blr
  .LBB0_9:                       
    rlwinm 3, 4, 0, 16, 31      <--- 32-bit mask/extend
    cmplwi	 3, 100
    beq	 0, .LBB0_14
  ...

After:

   BB#0:        
    rlwinm 4, 3, 0, 16, 31   <--- mask/extend to 32-bit and then use that for comparisons
    cmpwi	 4, 999
    ble 0, .LBB0_5
   BB#1:          
    lis 3, 0
    ori 3, 3, 65525
    cmpw	 4, 3
    bgt	 0, .LBB0_9
   BB#2:         
    cmplwi	 4, 1000
    beq	 0, .LBB0_14
   BB#3:    
    cmplwi	 4, 65436
    bne	 0, .LBB0_13
   BB#4:       
    li 3, 6
    blr
  .LBB0_5:   
    li 3, 0
    cmplwi	 4, 1
    beqlr 0
   BB#6: 
    cmplwi	 4, 10
    beq	 0, .LBB0_12
   BB#7:             
    cmplwi	 4, 100
    bne	 0, .LBB0_13
   BB#8:             
    li 3, 2
    blr
  .LBB0_9:       
    cmplwi	 4, 65526
    beq	 0, .LBB0_15
   BB#10:      
    cmplwi	 4, 65535
    bne	 0, .LBB0_13
  ...


http://reviews.llvm.org/D13532





More information about the llvm-commits mailing list