Skip to content
  1. Feb 16, 2010
  2. Feb 14, 2010
  3. Dec 09, 2009
  4. Oct 15, 2009
  5. Aug 29, 2009
    • Bob Wilson's avatar
      PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's type · 57b946c9
      Bob Wilson authored
      inferencing.  As far as I can tell, these are equivalent to the existing
      MVT::fAny, iAny and vAny types, and having both of them makes it harder
      to reason about and modify the type inferencing code.
      
      The specific problem in PR4795 occurs when updating a vAny type to be fAny
      or iAny, or vice versa.  Both iAny and fAny include vector types -- they
      intersect with the set of types represented by vAny.  When merging them,
      choose fAny/iAny to represent the intersection.  This is not perfect, since
      fAny/iAny also include scalar types, but it is good enough for TableGen's
      type inferencing.
      
      llvm-svn: 80423
      57b946c9
  6. Aug 23, 2009
    • Benjamin Kramer's avatar
      Try to fix MSVC build after r79846. · c2dbd5d6
      Benjamin Kramer authored
      llvm-svn: 79850
      c2dbd5d6
    • Daniel Dunbar's avatar
      Fix non-determinism in DAGISel emitter. · ced00815
      Daniel Dunbar authored
       - This manifested as non-determinism in the .inc output in rare cases (when two
         distinct patterns ended up being equivalent, which is rather rare). That
         meant the pattern matching was non-deterministic, which could eventually mean
         the code generator selected different instructions based on the arch.
      
       - It's probably worth making the DAGISel ensure a total ordering (or force the
         user to), but the simple fix here is to totally order the Record* maps based
         on a unique ID.
      
       - PR4672, PR4711.
      
      Yay:
      --
      ddunbar@giles:~$ cat ~/llvm.obj.64/lib/Target/*/*.inc | shasum
      d1099ff34b21459a5a3e7021c225c080e6017ece  -
      ddunbar@giles:~$ cat ~/llvm.obj.ppc/lib/Target/*/*.inc | shasum
      d1099ff34b21459a5a3e7021c225c080e6017ece  -
      --
      
      llvm-svn: 79846
      ced00815
  7. Aug 13, 2009
  8. Aug 11, 2009
  9. Jul 03, 2009
  10. Apr 27, 2009
    • Nate Begeman's avatar
      2nd attempt, fixing SSE4.1 issues and implementing feedback from duncan. · 8d6d4b92
      Nate Begeman authored
      PR2957
      
      ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
      mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
      as the shuffle mask.  A value of -1 represents UNDEF.
      
      In addition to eliminating the creation of illegal BUILD_VECTORS just to 
      represent shuffle masks, we are better about canonicalizing the shuffle mask,
      resulting in substantially better code for some classes of shuffles.
      
      llvm-svn: 70225
      8d6d4b92
  11. Apr 24, 2009
    • Rafael Espindola's avatar
      Revert 69952. Causes testsuite failures on linux x86-64. · b93db668
      Rafael Espindola authored
      llvm-svn: 69967
      b93db668
    • Nate Begeman's avatar
      PR2957 · bb881d66
      Nate Begeman authored
      ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
      mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
      as the shuffle mask.  A value of -1 represents UNDEF.
      
      In addition to eliminating the creation of illegal BUILD_VECTORS just to 
      represent shuffle masks, we are better about canonicalizing the shuffle mask,
      resulting in substantially better code for some classes of shuffles.
      
      A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next.
      
      llvm-svn: 69952
      bb881d66
  12. Mar 31, 2009
  13. Mar 26, 2009
  14. Feb 09, 2009
  15. Feb 05, 2009
  16. Feb 04, 2009
  17. Jan 05, 2009
  18. Oct 15, 2008
  19. Aug 22, 2008
  20. Jul 30, 2008
  21. Jun 16, 2008
  22. 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
  23. 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
  24. Mar 05, 2008
    • Scott Michel's avatar
      This patch fixes a problem encountered by the CellSPU backend where variants · 94420742
      Scott Michel authored
      were being pruned in patterns where a variable was used more than once, e.g.:
      
        (or (and R32C:$rA, R32C:$rC), (and R32C:$rB, (not R32C:$rC)))
      
      In this example, $rC is used more than once and is actually significant to
      instruction selection pattern matching when commuted variants are produced.
      This patch scans the pattern's clauses and collects the variables, creating
      a set of variables that are used more than once. TreePatternNode::isIsomorphicTo()
      also understands that multiply-used variables are significant.
      
      llvm-svn: 47950
      94420742
  25. Feb 09, 2008
  26. Jan 06, 2008
  27. Jan 05, 2008
Loading