Skip to content
  1. Oct 24, 2009
  2. Oct 23, 2009
    • Chris Lattner's avatar
      teach libanalysis to simplify vector loads with bitcast sources. This · ccf1e847
      Chris Lattner authored
      implements something out of Target/README.txt producing:
      
      _foo:                                                       ## @foo
      	movl	4(%esp), %eax
      	movapd	LCPI1_0, %xmm0
      	movapd	%xmm0, (%eax)
      	ret	$4
      
      instead of:
      
      _foo:                                                       ## @foo
      	movl	4(%esp), %eax
      	movapd	_b, %xmm0
      	mulpd	LCPI1_0, %xmm0
      	addpd	_a, %xmm0
      	movapd	%xmm0, (%eax)
      	ret	$4
      
      llvm-svn: 84942
      ccf1e847
    • Chris Lattner's avatar
      enhance FoldReinterpretLoadFromConstPtr to handle loads of up to 32 · 59f94c01
      Chris Lattner authored
      bytes (i256).
      
      llvm-svn: 84941
      59f94c01
    • Chris Lattner's avatar
      teach libanalysis to fold int and fp loads from almost arbitrary · ed00b80b
      Chris Lattner authored
      non-type-safe constant initializers.  This sort of thing happens
      quite a bit for 4-byte loads out of string constants, unions, 
      bitfields, and an interesting endianness check from sqlite, which
      is something like this:
      
      const int sqlite3one = 1;
      # define SQLITE_BIGENDIAN    (*(char *)(&sqlite3one)==0)
      # define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1)
      # define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
      
      all of these macros now constant fold away.
      
      This implements PR3152 and is based on a patch started by Eli, but heavily
      modified and extended.
      
      llvm-svn: 84936
      ed00b80b
  3. Oct 22, 2009
  4. Oct 06, 2009
  5. Oct 05, 2009
  6. Sep 16, 2009
  7. Sep 11, 2009
  8. Sep 04, 2009
    • Dan Gohman's avatar
      Revert 80959. It isn't sufficient to solve the full problem. And it · e4ca02da
      Dan Gohman authored
      introduced regressions in the Ocaml bindings tests.
      
      llvm-svn: 80969
      e4ca02da
    • Dan Gohman's avatar
      Remove the API for creating ConstantExprs with the nsw, nuw, inbounds, · 2a53b30f
      Dan Gohman authored
      and exact flags. Because ConstantExprs are uniqued, creating an
      expression with this flag causes all expressions with the same operands
      to have the same flag, which may not be safe. Add, sub, mul, and sdiv
      ConstantExprs are usually folded anyway, so the main interesting flag
      here is inbounds, and the constant folder already knows how to set the
      inbounds flag automatically in most cases, so there isn't an urgent need
      for the API support.
      
      This can be reconsidered in the future, but for now just removing these
      API bits eliminates a source of potential trouble with little downside.
      
      llvm-svn: 80959
      2a53b30f
  9. Sep 02, 2009
  10. Aug 21, 2009
  11. Aug 20, 2009
  12. Aug 19, 2009
  13. Aug 13, 2009
  14. Jul 31, 2009
  15. Jul 30, 2009
  16. Jul 29, 2009
  17. Jul 28, 2009
  18. Jul 27, 2009
  19. Jul 26, 2009
  20. Jul 25, 2009
  21. Jul 22, 2009
  22. Jul 14, 2009
  23. Jul 11, 2009
    • Torok Edwin's avatar
      assert(0) -> LLVM_UNREACHABLE. · 56d06597
      Torok Edwin authored
      Make llvm_unreachable take an optional string, thus moving the cerr<< out of
      line.
      LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
      NDEBUG builds.
      
      llvm-svn: 75379
      56d06597
  24. Jul 08, 2009
  25. Jul 07, 2009
  26. Jul 06, 2009
  27. Jun 16, 2009
    • Dan Gohman's avatar
      Support vector casts in more places, fixing a variety of assertion · 7ccc52f1
      Dan Gohman authored
      failures.
      
      To support this, add some utility functions to Type to help support
      vector/scalar-independent code. Change ConstantInt::get and
      ConstantFP::get to support vector types, and add an overload to
      ConstantInt::get that uses a static IntegerType type, for
      convenience.
      
      Introduce a new getConstant method for ScalarEvolution, to simplify
      common use cases.
      
      llvm-svn: 73431
      7ccc52f1
Loading