Skip to content
  1. Apr 13, 2009
    • Dan Gohman's avatar
      Add a new TargetInstrInfo MachineInstr opcode, COPY_TO_SUBCLASS. · 60a446ab
      Dan Gohman authored
      This will be used to replace things like X86's MOV32to32_.
      
      Enhance ScheduleDAGSDNodesEmit to be more flexible and robust
      in the presense of subregister superclasses and subclasses. It
      can now cope with the definition of a virtual register being in
      a subclass of a use.
      
      Re-introduce the code for recording register superreg classes and
      subreg classes. This is needed because when subreg extracts and
      inserts get coalesced away, the virtual registers are left in
      the correct subclass.
      
      llvm-svn: 68961
      60a446ab
  2. Feb 05, 2009
  3. Feb 04, 2009
  4. Jan 12, 2009
  5. Jan 07, 2009
  6. Dec 18, 2008
  7. Nov 13, 2008
  8. Aug 20, 2008
  9. Jul 30, 2008
  10. 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
  11. Jun 25, 2008
  12. Jun 16, 2008
  13. 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
  14. Apr 03, 2008
    • Dan Gohman's avatar
      Move instruction flag inference out of InstrInfoEmitter and into · fc4ad7de
      Dan Gohman authored
      CodeGenDAGPatterns, where it can be used in other tablegen backends.
      This allows the inference to be done for DAGISelEmitter so that it
      gets accurate mayLoad/mayStore/isSimpleLoad flags. 
      
      This brings MemOperand functionality back to where it was before
      48329. However, it doesn't solve the problem of anonymous patterns
      which expand to code that does loads or stores.
      
      llvm-svn: 49123
      fc4ad7de
  15. Mar 16, 2008
  16. Mar 15, 2008
  17. 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
  18. 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
  19. 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
  20. Jan 06, 2008
  21. Jan 05, 2008
  22. Dec 29, 2007
  23. Dec 14, 2007
  24. Dec 13, 2007
  25. Nov 12, 2007
  26. Sep 28, 2007
  27. Sep 19, 2007
  28. Aug 16, 2007
  29. Aug 04, 2007
    • Chandler Carruth's avatar
      This is the patch to provide clean intrinsic function overloading support in... · 7132e00d
      Chandler Carruth authored
      This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.
      
      This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.
      
      llvm-svn: 40807
      7132e00d
  30. Jul 26, 2007
  31. Jul 20, 2007
  32. 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
  33. Jul 13, 2007
  34. Jul 10, 2007
  35. Jul 07, 2007
  36. Jul 05, 2007
  37. Jun 26, 2007
Loading