Skip to content
  1. Dec 17, 2012
  2. Dec 15, 2012
    • Benjamin Kramer's avatar
      X86: Add a couple of target-specific dag combines that turn VSELECTS into psubus if possible. · b16ccde7
      Benjamin Kramer authored
      We match the pattern "x >= y ? x-y : 0" into "subus x, y" and two special cases
      if y is a constant. DAGCombiner canonicalizes those so we first have to undo the
      canonicalization for those cases. The pattern occurs in gzip when the loop
      vectorizer is enabled. Part of PR14613.
      
      llvm-svn: 170273
      b16ccde7
    • Chandler Carruth's avatar
      Make '-mtune=x86_64' assume fast unaligned memory accesses. · 7a28f954
      Chandler Carruth authored
      Not all chips targeted by x86_64 have this feature, but a dramatically
      increasing number do. Specifying a chip-specific tuning parameter will
      continue to turn the feature on or off as appropriate for that
      particular chip, but the generic flag should try to achieve the best
      performance on the most widely available hardware. Today, the number of
      chips with fast UA access dwarfs those without in the x86-64 space.
      
      Note that this also brings LLVM's code generation for this '-march' flag
      more in line with that of modern GCCs. Reviewed by Dan Gohman.
      
      llvm-svn: 170269
      7a28f954
  3. Dec 14, 2012
  4. Dec 13, 2012
  5. Dec 12, 2012
  6. Dec 11, 2012
    • Patrik Hagglund's avatar
      Revert EVT->MVT changes, r169836-169851, due to buildbot failures. · e98b7a03
      Patrik Hagglund authored
      llvm-svn: 169854
      e98b7a03
    • Patrik Hagglund's avatar
      Change TargetLowering::getTypeForExtArgOrReturn to take and return · ad432a8e
      Patrik Hagglund authored
      MVTs, instead of EVTs.
      
      Accordingly, add bitsLT (and similar) to MVT.
      
      llvm-svn: 169850
      ad432a8e
    • Patrik Hagglund's avatar
      Change TargetLowering::RegisterTypeForVT to contain MVTs, instead of · 03e9628c
      Patrik Hagglund authored
      EVTs.
      
      llvm-svn: 169848
      03e9628c
    • Patrik Hagglund's avatar
      Change TargetLowering::findRepresentativeClass to take an MVT, instead · 8d2e7cf5
      Patrik Hagglund authored
      of EVT.
      
      llvm-svn: 169845
      8d2e7cf5
    • Chad Rosier's avatar
      Fall back to the selection dag isel to select tail calls. · df42cf39
      Chad Rosier authored
      This shouldn't affect codegen for -O0 compiles as tail call markers are not
      emitted in unoptimized compiles.  Testing with the external/internal nightly
      test suite reveals no change in compile time performance.  Testing with -O1,
      -O2 and -O3 with fast-isel enabled did not cause any compile-time or
      execution-time failures.  All tests were performed on my x86 machine.
      I'll monitor our arm testers to ensure no regressions occur there.
      
      In an upcoming clang patch I will be marking the objc_autoreleaseReturnValue
      and objc_retainAutoreleaseReturnValue as tail calls unconditionally.  While
      it's theoretically true that this is just an optimization, it's an
      optimization that we very much want to happen even at -O0, or else ARC
      applications become substantially harder to debug.
      
      Part of rdar://12553082
      
      llvm-svn: 169796
      df42cf39
    • Evan Cheng's avatar
      Some enhancements for memcpy / memset inline expansion. · 79e2ca90
      Evan Cheng authored
      1. Teach it to use overlapping unaligned load / store to copy / set the trailing
         bytes. e.g. On 86, use two pairs of movups / movaps for 17 - 31 byte copies.
      2. Use f64 for memcpy / memset on targets where i64 is not legal but f64 is. e.g.
         x86 and ARM.
      3. When memcpy from a constant string, do *not* replace the load with a constant
         if it's not possible to materialize an integer immediate with a single
         instruction (required a new target hook: TLI.isIntImmLegal()).
      4. Use unaligned load / stores more aggressively if target hooks indicates they
         are "fast".
      5. Update ARM target hooks to use unaligned load / stores. e.g. vld1.8 / vst1.8.
         Also increase the threshold to something reasonable (8 for memset, 4 pairs
         for memcpy).
      
      This significantly improves Dhrystone, up to 50% on ARM iOS devices.
      
      rdar://12760078
      
      llvm-svn: 169791
      79e2ca90
  7. Dec 10, 2012
  8. Dec 09, 2012
  9. Dec 08, 2012
  10. Dec 07, 2012
  11. Dec 06, 2012
  12. Dec 05, 2012
  13. Dec 04, 2012
  14. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  15. Nov 29, 2012
Loading