Skip to content
  • Chris Lattner's avatar
    Teach CodeGenPrepare to look through Bitcast instructions when attempting to · a9ab165b
    Chris Lattner authored
    optimize addressing modes.  This allows us to optimize things like isel-sink2.ll
    into:
    
    	movl	4(%esp), %eax
    	cmpb	$0, 4(%eax)
    	jne	LBB1_2	## F
    LBB1_1:	## TB
    	movl	$4, %eax
    	ret
    LBB1_2:	## F
    	movzbl	7(%eax), %eax
    	ret
    
    instead of:
    
    _test:
    	movl	4(%esp), %eax
    	cmpb	$0, 4(%eax)
    	leal	4(%eax), %eax
    	jne	LBB1_2	## F
    LBB1_1:	## TB
    	movl	$4, %eax
    	ret
    LBB1_2:	## F
    	movzbl	3(%eax), %eax
    	ret
    
    This shrinks (e.g.) 403.gcc from 1133510 to 1128345 lines of .s.
    
    Note that the 2008-10-16-SpillerBug.ll testcase is dubious at best, I doubt
    it is really testing what it thinks it is.
    
    llvm-svn: 60068
    a9ab165b
Loading