Skip to content
  1. Feb 07, 2009
  2. Feb 04, 2009
  3. Feb 03, 2009
  4. Jan 24, 2009
  5. Jan 17, 2009
    • Bill Wendling's avatar
      Implement a special algorithm for converting uint_to_fp for i32 values on · 4d527590
      Bill Wendling authored
      X86. This code:
      
      void f() {
        uint32_t x;
        float y = (float)x;
      }
      
      used to be:
      
           movl     %eax, -8(%ebp)
           movl     [2^52 double], -4(%ebp)
           movsd    -8(%ebp), %xmm0
           subsd    [2^52 double], %xmm0
           cvtsd2ss %xmm0, %xmm0
      
      Is now:
      
         movsd        [2^52 double], %xmm0
         movsd        %xmm0, %xmm1
         movd         %ecx, %xmm2
         orps         %xmm2, %xmm1
         subsd        %xmm0, %xmm1
         cvtsd2ss     %xmm1, %xmm0
      
      This is faster on X86. Note that there's an extra load of %xmm0 into %xmm1. That
      will be fixed in a later coalescer fix.
      
      llvm-svn: 62404
      4d527590
  6. Jan 15, 2009
  7. Jan 13, 2009
    • Devang Patel's avatar
      · 5c6e1e3b
      Devang Patel authored
      Use DebugInfo interface to lower dbg_* intrinsics.
      
      llvm-svn: 62127
      5c6e1e3b
  8. Jan 01, 2009
    • Duncan Sands's avatar
      Fix PR3274: when promoting the condition of a BRCOND node, · 8feb694e
      Duncan Sands authored
      promote from i1 all the way up to the canonical SetCC type.
      In order to discover an appropriate type to use, pass
      MVT::Other to getSetCCResultType.  In order to be able to
      do this, change getSetCCResultType to take a type as an
      argument, not a value (this is also more logical).
      
      llvm-svn: 61542
      8feb694e
  9. Dec 23, 2008
  10. Dec 18, 2008
  11. Dec 12, 2008
  12. Dec 09, 2008
  13. Dec 02, 2008
  14. Dec 01, 2008
    • Duncan Sands's avatar
      Change the interface to the type legalization method · 6ed40141
      Duncan Sands authored
      ReplaceNodeResults: rather than returning a node which
      must have the same number of results as the original
      node (which means mucking around with MERGE_VALUES,
      and which is also easy to get wrong since SelectionDAG
      folding may mean you don't get the node you expect),
      return the results in a vector.
      
      llvm-svn: 60348
      6ed40141
  15. Nov 24, 2008
  16. Oct 30, 2008
  17. Oct 21, 2008
    • Dale Johannesen's avatar
      Add an SSE2 algorithm for uint64->f64 conversion. · 28929589
      Dale Johannesen authored
      The same one Apple gcc uses, faster.  Also gets the
      extreme case in gcc.c-torture/execute/ieee/rbug.c
      correct which we weren't before; this is not
      sufficient to get the test to pass though, there
      is another bug.
      
      llvm-svn: 57926
      28929589
  18. Oct 18, 2008
    • Dan Gohman's avatar
      Teach DAGCombine to fold constant offsets into GlobalAddress nodes, · 2fe6bee5
      Dan Gohman authored
      and add a TargetLowering hook for it to use to determine when this
      is legal (i.e. not in PIC mode, etc.)
      
      This allows instruction selection to emit folded constant offsets
      in more cases, such as the included testcase, eliminating the need
      for explicit arithmetic instructions.
      
      This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
      that attempted to achieve the same effect, but wasn't as effective.
      
      Also, fix handling of offsets in GlobalAddressSDNodes in several
      places, including changing GlobalAddressSDNode's offset from
      int to int64_t.
      
      The Mips, Alpha, Sparc, and CellSPU targets appear to be
      unaware of GlobalAddress offsets currently, so set the hook to
      false on those targets.
      
      llvm-svn: 57748
      2fe6bee5
  19. Oct 15, 2008
  20. Oct 04, 2008
  21. Oct 02, 2008
  22. Oct 01, 2008
  23. Sep 30, 2008
  24. Sep 25, 2008
  25. Sep 24, 2008
  26. Sep 23, 2008
  27. Sep 16, 2008
  28. Sep 13, 2008
    • Dan Gohman's avatar
      Define CallSDNode, an SDNode subclass for use with ISD::CALL. · d3fe174c
      Dan Gohman authored
      Currently it just holds the calling convention and flags
      for isVarArgs and isTailCall.
      
      And it has several utility methods, which eliminate magic
      5+2*i and similar index computations in several places.
      
      CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
      nodes that are not CSE'd gracefully.
      
      llvm-svn: 56183
      d3fe174c
  29. Sep 10, 2008
  30. Sep 09, 2008
  31. Sep 04, 2008
    • Dan Gohman's avatar
      Create HandlePHINodesInSuccessorBlocksFast, a version of · 7bda51f5
      Dan Gohman authored
      HandlePHINodesInSuccessorBlocks that works FastISel-style. This
      allows PHI nodes to be updated correctly while using FastISel.
      
      This also involves some code reorganization; ValueMap and
      MBBMap are now members of the FastISel class, so they needn't
      be passed around explicitly anymore. Also, SelectInstructions
      is changed to SelectInstruction, and only does one instruction
      at a time.
      
      llvm-svn: 55746
      7bda51f5
  32. Sep 03, 2008
  33. Aug 20, 2008
  34. Aug 19, 2008
Loading