Skip to content
  1. Mar 28, 2010
  2. Mar 27, 2010
  3. Mar 25, 2010
    • Jakob Stoklund Olesen's avatar
      Teach TableGen to understand X.Y notation in the TSFlagsFields strings. · f8d7eda6
      Jakob Stoklund Olesen authored
      Remove much horribleness from X86InstrFormats as a result. Similar
      simplifications are probably possible for other targets.
      
      llvm-svn: 99539
      f8d7eda6
    • Chris Lattner's avatar
      eliminate a bunch more parallels now that scheduling · 23bf99a9
      Chris Lattner authored
      handles dead implicit results more aggressively.  More
      to come, I think this is now just a data entry problem.
      
      llvm-svn: 99486
      23bf99a9
    • Evan Cheng's avatar
      Disable folding loads into tail call in 32-bit PIC mode. It can introduce illegal code like this: · b07a29ec
      Evan Cheng authored
              addl    $12, %esp
              popl    %esi
              popl    %edi
              popl    %ebx
              popl    %ebp
              jmpl    *__Block_deallocator-L1$pb(%esi)  # TAILCALL
      
      The problem is the global base register is assigned GR32 register class. TCRETURNmi needs the registers making up the address mode to have the GR32_TC register class.
      
      The *proper* fix is for X86DAGToDAGISel::getGlobalBaseReg() to return a copy from the global base register of the machine function rather than returning the register itself. But that has the potential of causing it to be coalesced to a more restrictive register class: GR32_TC. It can introduce additional copies and spills. For something as important the PIC base, it's not worth it especially since this is not an issue on 64-bit.
      
      llvm-svn: 99455
      b07a29ec
  4. Mar 24, 2010
  5. Mar 19, 2010
    • Chris Lattner's avatar
      remove the patterns that I commented out in r98930, Dan verified · 8352941b
      Chris Lattner authored
      that they are dead.
      
      llvm-svn: 99000
      8352941b
    • Chris Lattner's avatar
      add a new SDNPVariadic SDNP node flag, and use it in · 83aeaab4
      Chris Lattner authored
      dag isel gen instead of instruction properties.  This
      allows the oh-so-useful behavior of matching a variadic
      non-root node.
      
      llvm-svn: 98934
      83aeaab4
    • Chris Lattner's avatar
      comment out a bunch of parallel store patterns that apparently · 607795f9
      Chris Lattner authored
      can't match or just have no testcases.  Will remove after 
      confirmation from dan that they really are dead.
      
      llvm-svn: 98930
      607795f9
    • Chris Lattner's avatar
      Now that tblgen can handle matching implicit defs of instructions · 83facb08
      Chris Lattner authored
      to input patterns, we can fix X86ISD::CMP and X86ISD::BT as taking
      two inputs (which have to be the same type) and *returning an i32*.
      This is how the SDNodes get made in the graph, but we weren't able
      to model it this way due to deficiencies in the pattern language.
      
      Now we can change things like this:
      
       def UCOM_FpIr80: FpI_<(outs), (ins RFP80:$lhs, RFP80:$rhs), CompareFP,
      -                  [(X86cmp RFP80:$lhs, RFP80:$rhs),
      -                   (implicit EFLAGS)]>; // CC = ST(0) cmp ST(i)
      +                  [(set EFLAGS, (X86cmp RFP80:$lhs, RFP80:$rhs))]>;
      
      and fix terrible crimes like this:
      
      -def : Pat<(parallel (X86cmp GR8:$src1, 0), (implicit EFLAGS)),
      +def : Pat<(X86cmp GR8:$src1, 0),
                 (TEST8rr GR8:$src1, GR8:$src1)>;
      
      This relies on matching the result of TEST8rr (which is EFLAGS, which is
      an implicit def) to the result of X86cmp, an i32.
      
      llvm-svn: 98903
      83facb08
  6. Mar 18, 2010
  7. Mar 16, 2010
  8. Mar 14, 2010
  9. Mar 09, 2010
  10. Mar 08, 2010
  11. Mar 06, 2010
  12. Mar 04, 2010
  13. Mar 03, 2010
  14. Feb 28, 2010
  15. Feb 24, 2010
  16. Feb 23, 2010
  17. Feb 13, 2010
  18. Feb 12, 2010
Loading