Skip to content
  1. Nov 12, 2008
  2. Nov 08, 2008
  3. Nov 07, 2008
  4. Nov 05, 2008
    • Dan Gohman's avatar
      Use an assert to check that SelectCode isn't called on · ce2417f4
      Dan Gohman authored
      nodes that are already selected.
      
      llvm-svn: 58763
      ce2417f4
    • Dan Gohman's avatar
      Eliminate the ISel priority queue, which used the topological order for a · f14b77eb
      Dan Gohman authored
      priority function. Instead, just iterate over the AllNodes list, which is
      already in topological order. This eliminates a fair amount of bookkeeping,
      and speeds up the isel phase by about 15% on many testcases.
      
      The impact on most targets is that AddToISelQueue calls can be simply removed.
      
      In the x86 target, there are two additional notable changes.
      
      The rule-bending AND+SHIFT optimization in MatchAddress that creates new
      pre-isel nodes during isel is now a little more verbose, but more robust.
      Instead of either creating an invalid DAG or creating an invalid topological
      sort, as it has historically done, it can now just insert the new nodes into
      the node list at a position where they will be consistent with the topological
      ordering.
      
      Also, the address-matching code has logic that checked to see if a node was
      "already selected". However, when a node is selected, it has all its uses
      taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any
      further visits from MatchAddress. This code is now removed.
      
      llvm-svn: 58748
      f14b77eb
  5. Nov 04, 2008
  6. Nov 03, 2008
    • Dan Gohman's avatar
      Change how extended types are represented in MVTs. Instead of fiddling · d7546abb
      Dan Gohman authored
      bits, use a union of a SimpleValueType enum and a regular Type*.
      
      This increases the size of MVT on 64-bit hosts from 32 bits to 64 bits.
      In most cases, this doesn't add significant overhead. There are places
      in codegen that use arrays of MVTs, so these are now larger, but
      they're small in common cases.
      
      This eliminates restrictions on the size of integer types and vector
      types that can be represented in codegen. As the included testcase
      demonstrates, it's now possible to codegen very large add operations.
      There are still some complications with using very large types. PR2880
      is still open so they can't be used as return values on normal targets,
      there are no libcalls defined for very large integers so operations
      like multiply and divide aren't supported.
      
      This also introduces a minimal tablgen Type library, capable of
      handling IntegerType and VectorType. This will allow parts of
      TableGen that don't depend on using SimpleValueType values to handle
      arbitrary integer and vector types.
      
      llvm-svn: 58623
      d7546abb
  7. Oct 30, 2008
  8. Oct 28, 2008
  9. Oct 27, 2008
  10. Oct 26, 2008
  11. Oct 22, 2008
  12. Oct 17, 2008
  13. Oct 15, 2008
  14. Oct 08, 2008
  15. Oct 06, 2008
  16. Oct 05, 2008
  17. Oct 04, 2008
  18. Oct 02, 2008
  19. Sep 30, 2008
  20. Sep 28, 2008
  21. Sep 26, 2008
  22. Sep 25, 2008
    • Devang Patel's avatar
      Large mechanical patch. · 4c758ea3
      Devang Patel authored
      s/ParamAttr/Attribute/g
      s/PAList/AttrList/g
      s/FnAttributeWithIndex/AttributeWithIndex/g
      s/FnAttr/Attribute/g
      
      This sets the stage 
      - to implement function notes as function attributes and 
      - to distinguish between function attributes and return value attributes.
      
      This requires corresponding changes in llvm-gcc and clang.
      
      llvm-svn: 56622
      4c758ea3
  23. Sep 22, 2008
  24. Sep 17, 2008
Loading