Skip to content
  1. Mar 08, 2009
    • Chris Lattner's avatar
      use MemTransferInst. · fee0a55c
      Chris Lattner authored
      llvm-svn: 66362
      fee0a55c
    • Chris Lattner's avatar
      Introduce a new MemTransferInst pseudo class, which is a common · 334268a2
      Chris Lattner authored
      parent between MemCpyInst and MemMoveInst, simplify some code to
      use it.
      
      llvm-svn: 66361
      334268a2
    • Chris Lattner's avatar
      add a note. · 393ac628
      Chris Lattner authored
      llvm-svn: 66360
      393ac628
    • Chris Lattner's avatar
      add a note. · cfd1f7aa
      Chris Lattner authored
      llvm-svn: 66359
      cfd1f7aa
    • Chris Lattner's avatar
      implement an optimization to codegen c ? 1.0 : 2.0 as load { 2.0, 1.0 } + c*4. · ab5a4431
      Chris Lattner authored
      For 2009-03-07-FPConstSelect.ll we now produce:
      
      _f:
      	xorl	%eax, %eax
      	testl	%edi, %edi
      	movl	$4, %ecx
      	cmovne	%rax, %rcx
      	leaq	LCPI1_0(%rip), %rax
      	movss	(%rcx,%rax), %xmm0
      	ret
      
      previously we produced:
      
      _f:
      	subl	$4, %esp
      	cmpl	$0, 8(%esp)
      	movss	LCPI1_0, %xmm0
      	je	LBB1_2	## entry
      LBB1_1:	## entry
      	movss	LCPI1_1, %xmm0
      LBB1_2:	## entry
      	movss	%xmm0, (%esp)
      	flds	(%esp)
      	addl	$4, %esp
      	ret
      
      on PPC the code also improves to:
      
      _f:
      	cntlzw r2, r3
      	srwi r2, r2, 5
      	li r3, lo16(LCPI1_0)
      	slwi r2, r2, 2
      	addis r3, r3, ha16(LCPI1_0)
      	lfsx f1, r3, r2
      	blr 
      
      from:
      
      _f:
      	li r2, lo16(LCPI1_1)
      	cmplwi cr0, r3, 0
      	addis r2, r2, ha16(LCPI1_1)
      	beq cr0, LBB1_2	; entry
      LBB1_1:	; entry
      	li r2, lo16(LCPI1_0)
      	addis r2, r2, ha16(LCPI1_0)
      LBB1_2:	; entry
      	lfs f1, 0(r2)
      	blr 
      
      This also improves the existing pic-cpool case from:
      
      foo:
      	subl	$12, %esp
      	call	.Lllvm$1.$piclabel
      .Lllvm$1.$piclabel:
      	popl	%eax
      	addl	$_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax
      	cmpl	$0, 16(%esp)
      	movsd	.LCPI1_0@GOTOFF(%eax), %xmm0
      	je	.LBB1_2	# entry
      .LBB1_1:	# entry
      	movsd	.LCPI1_1@GOTOFF(%eax), %xmm0
      .LBB1_2:	# entry
      	movsd	%xmm0, (%esp)
      	fldl	(%esp)
      	addl	$12, %esp
      	ret
      
      to:
      
      foo:
      	call	.Lllvm$1.$piclabel
      .Lllvm$1.$piclabel:
      	popl	%eax
      	addl	$_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax
      	xorl	%ecx, %ecx
      	cmpl	$0, 4(%esp)
      	movl	$8, %edx
      	cmovne	%ecx, %edx
      	fldl	.LCPI1_0@GOTOFF(%eax,%edx)
      	ret
      
      This triggers a few dozen times in spec FP 2000.
      
      llvm-svn: 66358
      ab5a4431
    • Chris Lattner's avatar
      random cleanups. · 21cf4bf2
      Chris Lattner authored
      llvm-svn: 66357
      21cf4bf2
    • Chris Lattner's avatar
      add rdar# · c0452e40
      Chris Lattner authored
      llvm-svn: 66356
      c0452e40
    • Nick Lewycky's avatar
      Fix misaligned whitespace. No functionality change. · add31939
      Nick Lewycky authored
      llvm-svn: 66355
      add31939
    • Anders Carlsson's avatar
      Make mangling work with anonymous tag types. Doug, please review · 4ed74dd6
      Anders Carlsson authored
      llvm-svn: 66353
      4ed74dd6
    • Chris Lattner's avatar
      fix test · c808fc34
      Chris Lattner authored
      llvm-svn: 66352
      c808fc34
    • Chris Lattner's avatar
      fix a serious pessimization that Tron on IRC pointed out where we would · e3132831
      Chris Lattner authored
      "boolify" pointers, generating really awful code because getting the pointer
      value requires a load itself.  Before:
      
      _foo:
      	movb	$1, _X.b
      	ret
      _get:
      	xorl	%ecx, %ecx
      	movb	_X.b, %al
      	testb	%al, %al
      	movl	$_Y, %eax
      	cmove	%ecx, %eax
      	ret
      
      With the xform disabled:
      
      _foo:
      	movl	$_Y, _X
      	ret
      _get:
      	movl	_X, %eax
      	ret
      
      llvm-svn: 66351
      e3132831
  2. Mar 07, 2009
Loading