Skip to content
  1. Jun 25, 2008
  2. Jun 14, 2008
  3. Jun 06, 2008
    • Duncan Sands's avatar
      Wrap MVT::ValueType in a struct to get type safety · 13237ac3
      Duncan Sands authored
      and better control the abstraction.  Rename the type
      to MVT.  To update out-of-tree patches, the main
      thing to do is to rename MVT::ValueType to MVT, and
      rewrite expressions like MVT::getSizeInBits(VT) in
      the form VT.getSizeInBits().  Use VT.getSimpleVT()
      to extract a MVT::SimpleValueType for use in switch
      statements (you will get an assert failure if VT is
      an extended value type - these shouldn't exist after
      type legalization).
      This results in a small speedup of codegen and no
      new testsuite failures (x86-64 linux).
      
      llvm-svn: 52044
      13237ac3
  4. May 31, 2008
    • Dan Gohman's avatar
      Teach the DAGISelEmitter to not compute the variable_ops operand · bd3390c7
      Dan Gohman authored
      index for the input pattern in terms of the output pattern. Instead
      keep track of how many fixed operands the input pattern actually
      has, and have the input matching code pass the output-emitting
      function that index value. This simplifies the code, disentangles
      variables_ops from the support for predication operations, and
      makes variable_ops more robust.
      
      llvm-svn: 51808
      bd3390c7
  5. May 29, 2008
    • Dan Gohman's avatar
      Fix a tblgen problem handling variable_ops in tblgen instruction · 6e582c44
      Dan Gohman authored
      definitions. This adds a new construct, "discard", for indicating
      that a named node in the input matching pattern is to be discarded,
      instead of corresponding to a node in the output pattern. This
      allows tblgen to know where the arguments for the varaible_ops are
      supposed to begin.
      
      This fixes "rdar://5791600", whatever that is ;-).
      
      llvm-svn: 51699
      6e582c44
  6. May 12, 2008
  7. May 05, 2008
  8. Mar 16, 2008
  9. Mar 13, 2008
    • Christopher Lamb's avatar
      Get rid of a pseudo instruction and replace it with subreg based operation on... · dd55d3f1
      Christopher Lamb authored
      Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects. 
      
      Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes.
      llvm-svn: 48329
      dd55d3f1
  10. Mar 08, 2008
  11. Feb 21, 2008
  12. Feb 16, 2008
  13. Feb 14, 2008
    • Nate Begeman's avatar
      Change how FP immediates are handled. · 53e1b3f9
      Nate Begeman authored
      1) ConstantFP is now expand by default
      2) ConstantFP is not turned into TargetConstantFP during Legalize
         if it is legal.
      
      This allows ConstantFP to be handled like Constant, allowing for 
      targets that can encode FP immediates as MachineOperands.
      
      As a bonus, fix up Itanium FP constants, which now correctly match,
      and match more constants!  Hooray.
      
      llvm-svn: 47121
      53e1b3f9
  14. Feb 11, 2008
  15. Feb 09, 2008
  16. Jan 31, 2008
    • Christopher Lamb's avatar
      Allow ComplexExpressions in InstrInfo.td files to be slightly more... complex!... · 0592cf7e
      Christopher Lamb authored
      Allow ComplexExpressions in InstrInfo.td files to be slightly more... complex! ComplexExpressions can now have attributes which affect how TableGen interprets
      the pattern when generating matchin code. 
      
      The first (and currently, only) attribute causes the immediate parent node of the ComplexPattern operand to be passed into the matching code rather than the node at the root of the entire DAG containing the pattern.
      
      llvm-svn: 46606
      0592cf7e
  17. Jan 30, 2008
  18. Jan 17, 2008
    • Chris Lattner's avatar
      This commit changes: · 1ea55cf8
      Chris Lattner authored
      1. Legalize now always promotes truncstore of i1 to i8. 
      2. Remove patterns and gunk related to truncstore i1 from targets.
      3. Rename the StoreXAction stuff to TruncStoreAction in TLI.
      4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions.
      5. Mark a wide variety of invalid truncstores as such in various targets, e.g.
         X86 currently doesn't support truncstore of any of its integer types.
      6. Add legalize support for truncstores with invalid value input types.
      7. Add a dag combine transform to turn store(truncate) into truncstore when
         safe.
      
      The later allows us to compile CodeGen/X86/storetrunc-fp.ll to:
      
      _foo:
      	fldt	20(%esp)
      	fldt	4(%esp)
      	faddp	%st(1)
      	movl	36(%esp), %eax
      	fstps	(%eax)
      	ret
      
      instead of:
      
      _foo:
      	subl	$4, %esp
      	fldt	24(%esp)
      	fldt	8(%esp)
      	faddp	%st(1)
      	fstps	(%esp)
      	movl	40(%esp), %eax
      	movss	(%esp), %xmm0
      	movss	%xmm0, (%eax)
      	addl	$4, %esp
      	ret
      
      llvm-svn: 46140
      1ea55cf8
  19. Jan 15, 2008
  20. Jan 10, 2008
  21. Jan 06, 2008
  22. Dec 29, 2007
  23. Nov 24, 2007
  24. Nov 13, 2007
  25. Sep 25, 2007
  26. Sep 13, 2007
    • Evan Cheng's avatar
      Initial support for multi-result patterns: · 59c39dc1
      Evan Cheng authored
      1.
      [(set GR32:$dst, (add GR32:$src1, GR32:$src2)),
       (modify EFLAGS)]
      This indicates the source pattern expects the instruction would produce 2 values. The first is the result of the addition. The second is an implicit definition in register EFLAGS.
      2.
      def : Pat<(parallel (addc GR32:$src1, GR32:$src2), (modify EFLAGS)), ()>
      Similar to #1 except this is used for def : Pat patterns.
      
      llvm-svn: 41897
      59c39dc1
  27. Aug 05, 2007
  28. Jul 26, 2007
  29. Jul 16, 2007
  30. Apr 20, 2007
  31. Jan 26, 2007
  32. Nov 14, 2006
  33. Nov 09, 2006
  34. Oct 26, 2006
  35. Oct 13, 2006
  36. Oct 11, 2006
Loading