Skip to content
  1. Dec 18, 2010
  2. Dec 17, 2010
  3. Dec 16, 2010
  4. Dec 15, 2010
  5. Dec 14, 2010
  6. Dec 13, 2010
    • Chris Lattner's avatar
      Add a couple dag combines to transform mulhi/mullo into a wider multiply · 10bd29f1
      Chris Lattner authored
      when the wider type is legal.  This allows us to compile:
      
      define zeroext i16 @test1(i16 zeroext %x) nounwind {
      entry:
      	%div = udiv i16 %x, 33
      	ret i16 %div
      }
      
      into:
      
      test1:                                  # @test1
      	movzwl	4(%esp), %eax
      	imull	$63551, %eax, %eax      # imm = 0xF83F
      	shrl	$21, %eax
      	ret
      
      instead of:
      
      test1:                                  # @test1
              movw    $-1985, %ax             # imm = 0xFFFFFFFFFFFFF83F
              mulw    4(%esp)
              andl    $65504, %edx            # imm = 0xFFE0
              movl    %edx, %eax
              shrl    $5, %eax
              ret
      
      Implementing rdar://8760399 and example #4 from:
      http://blog.regehr.org/archives/320
      
      We should implement the same thing for [su]mul_hilo, but I don't
      have immediate plans to do this.
      
      llvm-svn: 121696
      10bd29f1
    • Chris Lattner's avatar
      remove the verbose-asm "constant pool double" comments that we were printing · f8d180b8
      Chris Lattner authored
      for each constant pool entry.  Using WriteTypeSymbolic here takes time
      proportional to the size of the module, for each constant pool entry.
      
      This speeds up -verbose-asm llc on 252.eon (a random testcase at my disposal)
      from 4.4s to 2.137s.  llc takes 2.11s with asm-verbose off, so this is now a
      pretty reasonable cost for verbose comments.
      
      llvm-svn: 121691
      f8d180b8
Loading