Skip to content
  1. Jul 08, 2008
  2. Jul 01, 2008
    • Dan Gohman's avatar
      Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating · fb19f940
      Dan Gohman authored
      the need for a flavor operand, and add a new SDNode subclass,
      LabelSDNode, for use with them to eliminate the need for a label id
      operand.
      
      Change instruction selection to let these label nodes through
      unmodified instead of creating copies of them. Teach the MachineInstr
      emitter how to emit a MachineInstr directly from an ISD label node.
      
      This avoids the need for allocating SDNodes for the label id and
      flavor value, as well as SDNodes for each of the post-isel label,
      label id, and label flavor.
      
      llvm-svn: 52943
      fb19f940
  3. 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
  4. 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
    • Bill Wendling's avatar
      Add a flag to indicate that an instruction is as cheap (or cheaper) than a move · 3f6bb271
      Bill Wendling authored
      instruction to execute. This can be used for transformations (like two-address
      conversion) to remat an instruction instead of generating a "move"
      instruction. The idea is to decrease the live ranges and register pressure and
      all that jazz.
      
      llvm-svn: 51660
      3f6bb271
  5. Mar 16, 2008
  6. Mar 15, 2008
  7. Mar 11, 2008
  8. Mar 10, 2008
  9. Feb 26, 2008
  10. Feb 24, 2008
  11. Feb 14, 2008
  12. Feb 02, 2008
    • Evan Cheng's avatar
      SDIsel processes llvm.dbg.declare by recording the variable debug information... · efd142a9
      Evan Cheng authored
      SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
      Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
      For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.
      
      llvm-svn: 46659
      efd142a9
  13. Jan 31, 2008
  14. Jan 10, 2008
    • Chris Lattner's avatar
      Start inferring side effect information more aggressively, and fix many bugs in the · 317332fc
      Chris Lattner authored
      x86 backend where instructions were not marked maystore/mayload, and perf issues where
      instructions were not marked neverHasSideEffects.  It would be really nice if we could
      write patterns for copy instructions.
      
      I have audited all the x86 instructions down to MOVDQAmr.  The flags on others and on
      other targets are probably not right in all cases, but no clients currently use this
      info that are enabled by default.
      
      llvm-svn: 45829
      317332fc
  15. Jan 08, 2008
  16. Jan 07, 2008
  17. Jan 06, 2008
  18. Dec 29, 2007
  19. Dec 17, 2007
  20. Dec 14, 2007
  21. Dec 13, 2007
  22. Nov 12, 2007
  23. Nov 11, 2007
  24. Sep 19, 2007
  25. Sep 11, 2007
  26. Jul 26, 2007
  27. Jul 21, 2007
  28. Jul 19, 2007
    • Evan Cheng's avatar
      Change instruction description to split OperandList into OutOperandList and · 94b5a80b
      Evan Cheng authored
      InOperandList. This gives one piece of important information: # of results
      produced by an instruction.
      An example of the change:
      def ADD32rr  : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
                       "add{l} {$src2, $dst|$dst, $src2}",
                       [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
      =>
      def ADD32rr  : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
                       "add{l} {$src2, $dst|$dst, $src2}",
                       [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
      
      llvm-svn: 40033
      94b5a80b
  29. Jul 10, 2007
  30. Jul 07, 2007
  31. Jul 06, 2007
  32. Jul 05, 2007
    • Evan Cheng's avatar
      - Added zero_reg def to stand for register 0. · 756d15ac
      Evan Cheng authored
      - Added two variants of PredicateOperand: ImmutablePredicateOperand, whose predicate does not change after isel; PredicateDefOperand, which represent a predicate defintion operand.
      
      llvm-svn: 37892
      756d15ac
  33. Jun 26, 2007
  34. Jun 19, 2007
    • Dan Gohman's avatar
      Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad · 9e820649
      Dan Gohman authored
      with a general target hook to identify rematerializable instructions. Some
      instructions are only rematerializable with specific operands, such as loads
      from constant pools, while others are always rematerializable. This hook
      allows both to be identified as being rematerializable with the same
      mechanism.
      
      llvm-svn: 37644
      9e820649
Loading