Skip to content
  1. Aug 06, 2008
  2. Aug 05, 2008
  3. Aug 03, 2008
  4. Jul 27, 2008
  5. Jul 25, 2008
  6. Jul 23, 2008
  7. Jul 22, 2008
  8. Jul 21, 2008
    • Duncan Sands's avatar
      Add VerifyNode, a place to put sanity checks on · b0e39386
      Duncan Sands authored
      generic SDNode's (nodes with their own constructors
      should do sanity checking in the constructor).  Add
      sanity checks for BUILD_VECTOR and fix all the places
      that were producing bogus BUILD_VECTORs, as found by
      "make check".  My favorite is the BUILD_VECTOR with
      only two operands that was being used to build a
      vector with four elements!
      
      llvm-svn: 53850
      b0e39386
  9. Jul 20, 2008
  10. Jul 17, 2008
  11. Jul 16, 2008
  12. Jul 12, 2008
  13. Jul 11, 2008
  14. Jul 08, 2008
    • Dan Gohman's avatar
      Pool-allocation for MachineInstrs, MachineBasicBlocks, and · 3b460303
      Dan Gohman authored
      MachineMemOperands. The pools are owned by MachineFunctions.
      
      This drastically reduces the number of calls to malloc/free made
      during the "Emit" phase of scheduling, as well as later phases
      in CodeGen. Combined with other changes, this speeds up the
      "instruction selection" phase of CodeGen by 10% in some cases.
      
      llvm-svn: 53212
      3b460303
  15. Jul 04, 2008
    • Duncan Sands's avatar
      Rather than having a different custom legalization · 93e18034
      Duncan Sands authored
      hook for each way in which a result type can be
      legalized (promotion, expansion, softening etc),
      just use one: ReplaceNodeResults, which returns
      a node with exactly the same result types as the
      node passed to it, but presumably with a bunch of
      custom code behind the scenes.  No change if the
      new LegalizeTypes infrastructure is not turned on.
      
      llvm-svn: 53137
      93e18034
  16. Jul 02, 2008
    • Duncan Sands's avatar
      Add a new getMergeValues method that does not need · 739a0548
      Duncan Sands authored
      to be passed the list of value types, and use this
      where appropriate.  Inappropriate places are where
      the value type list is already known and may be
      long, in which case the existing method is more
      efficient.
      
      llvm-svn: 53035
      739a0548
  17. Jul 01, 2008
    • Duncan Sands's avatar
      Highlight that getMergeValues optimization is · b55e5ece
      Duncan Sands authored
      being suppressed here.
      
      llvm-svn: 52952
      b55e5ece
    • 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
  18. Jun 30, 2008
    • Dan Gohman's avatar
      Update comments to new-style syntax. · 4246cf8e
      Dan Gohman authored
      llvm-svn: 52925
      4246cf8e
    • Dan Gohman's avatar
      Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its · 5c73a886
      Dan Gohman authored
      purpose, and give it a custom SDNode subclass so that it doesn't
      need to have line number, column number, filename string, and
      directory string, all existing as individual SDNodes to be the
      operands.
      
      This was the only user of ISD::STRING, StringSDNode, etc., so
      remove those and some associated code.
      
      This makes stop-points considerably easier to read in
      -view-legalize-dags output, and reduces overhead (creating new
      nodes and copying std::strings into them) on code containing
      debugging information.
      
      llvm-svn: 52924
      5c73a886
    • Duncan Sands's avatar
      Revert the SelectionDAG optimization that makes · 1ae6ef83
      Duncan Sands authored
      it impossible to create a MERGE_VALUES node with
      only one result: sometimes it is useful to be able
      to create a node with only one result out of one of
      the results of a node with more than one result, for
      example because the new node will eventually be used
      to replace a one-result node using ReplaceAllUsesWith,
      cf X86TargetLowering::ExpandFP_TO_SINT.  On the other
      hand, most users of MERGE_VALUES don't need this and
      for them the optimization was valuable.  So add a new
      utility method getMergeValues for creating MERGE_VALUES
      nodes which by default performs the optimization.
      Change almost everywhere to use getMergeValues (and
      tidy some stuff up at the same time).
      
      llvm-svn: 52893
      1ae6ef83
  19. Jun 25, 2008
  20. Jun 22, 2008
  21. Jun 19, 2008
    • Eli Friedman's avatar
      Fix a bug with <8 x i16> shuffle lowering on X86 where parts of the · 8d66e98c
      Eli Friedman authored
      shuffle could be skipped.  The check is invalid because the loop index i 
      doesn't correspond to the element actually inserted. The correct check is
      already done a few lines earlier, for whether the element is already in 
      the right spot, so this shouldn't have any effect on the codegen for 
      code that was already correct.
      
      llvm-svn: 52486
      8d66e98c
  22. Jun 17, 2008
  23. Jun 14, 2008
  24. Jun 11, 2008
  25. Jun 08, 2008
    • Duncan Sands's avatar
      Remove comparison methods for MVT. The main cause · 11dd4245
      Duncan Sands authored
      of apint codegen failure is the DAG combiner doing
      the wrong thing because it was comparing MVT's using
      < rather than comparing the number of bits.  Removing
      the < method makes this mistake impossible to commit.
      Instead, add helper methods for comparing bits and use
      them.
      
      llvm-svn: 52098
      11dd4245
  26. 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
  27. May 29, 2008
  28. May 28, 2008
  29. May 23, 2008
  30. May 16, 2008
Loading