Skip to content
  • Chris Lattner's avatar
    Make simplifycfg reprocess newly formed "br (cond1 | cond2)" conditions · fbeb5584
    Chris Lattner authored
    when simplifying, allowing them to be eagerly turned into switches.  This
    is the last step required to get "Example 7" from this blog post:
    http://blog.regehr.org/archives/320
    
    On X86, we now generate this machine code, which (to my eye) seems better
    than the ICC generated code:
    
    _crud:                                  ## @crud
    ## BB#0:                                ## %entry
    	cmpb	$33, %dil
    	jb	LBB0_4
    ## BB#1:                                ## %switch.early.test
    	addb	$-34, %dil
    	cmpb	$58, %dil
    	ja	LBB0_3
    ## BB#2:                                ## %switch.early.test
    	movzbl	%dil, %eax
    	movabsq	$288230376537592865, %rcx ## imm = 0x400000017001421
    	btq	%rax, %rcx
    	jb	LBB0_4
    LBB0_3:                                 ## %lor.rhs
    	xorl	%eax, %eax
    	ret
    LBB0_4:                                 ## %lor.end
    	movl	$1, %eax
    	ret
    
    llvm-svn: 121690
    fbeb5584
Loading