Skip to content
  • Chris Lattner's avatar
    This commit changes: · 1ea55cf8
    Chris Lattner authored
    1. Legalize now always promotes truncstore of i1 to i8. 
    2. Remove patterns and gunk related to truncstore i1 from targets.
    3. Rename the StoreXAction stuff to TruncStoreAction in TLI.
    4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions.
    5. Mark a wide variety of invalid truncstores as such in various targets, e.g.
       X86 currently doesn't support truncstore of any of its integer types.
    6. Add legalize support for truncstores with invalid value input types.
    7. Add a dag combine transform to turn store(truncate) into truncstore when
       safe.
    
    The later allows us to compile CodeGen/X86/storetrunc-fp.ll to:
    
    _foo:
    	fldt	20(%esp)
    	fldt	4(%esp)
    	faddp	%st(1)
    	movl	36(%esp), %eax
    	fstps	(%eax)
    	ret
    
    instead of:
    
    _foo:
    	subl	$4, %esp
    	fldt	24(%esp)
    	fldt	8(%esp)
    	faddp	%st(1)
    	fstps	(%esp)
    	movl	40(%esp), %eax
    	movss	(%esp), %xmm0
    	movss	%xmm0, (%eax)
    	addl	$4, %esp
    	ret
    
    llvm-svn: 46140
    1ea55cf8
Loading