Skip to content
  1. Mar 06, 2013
  2. Mar 04, 2013
    • Lang Hames's avatar
      Check isDiscardableIfUnused, rather than hasLocalLinkage, when bumping · 30be8a30
      Lang Hames authored
      GlobalValue linkage up to ExternalLinkage in the ExtractGV pass. This
      prevents linkonce and linkonce_odr symbols from being DCE'd.
      
      llvm-svn: 176459
      30be8a30
    • Preston Gurd's avatar
      Bypass Slow Divides · 485296d1
      Preston Gurd authored
      * Only apply divide bypass optimization when not optimizing for size. 
      * Fixed bug caused by constant for 0 value of type Int32,
        used dividend type to generate the constant instead.
      * For atom x86-64 apply the divide bypass to use 16-bit divides instead of
        64-bit divides when operand values are small enough.
      * Added lit tests for 64-bit divide bypass.
      
      Patch by Tyler Nowicki!
      
      llvm-svn: 176442
      485296d1
  3. Mar 02, 2013
  4. Mar 01, 2013
  5. Feb 28, 2013
    • Quentin Colombet's avatar
      Fix a bug in instcombine for fmul in fast math mode. · e684a6d4
      Quentin Colombet authored
      The instcombine recognized pattern looks like:
      a = b * c
      d = a +/- Cst
      or
      a = b * c
      d = Cst +/- a
      
      When creating the new operands for fadd or fsub instruction following the related fmul, the first operand was created with the second original operand (M0 was created with C1) and the second with the first (M1 with Opnd0).
      
      The fix consists in creating the new operands with the appropriate original operand, i.e., M0 with Opnd0 and M1 with C1.
      
      llvm-svn: 176300
      e684a6d4
    • Evgeniy Stepanov's avatar
      [msan] Implement sanitize_memory attribute. · 00062b44
      Evgeniy Stepanov authored
      Shadow checks are disabled and memory loads always produce fully initialized
      values in functions that don't have a sanitize_memory attribute. Value and
      argument shadow is propagated as usual.
      
      This change also updates blacklist behaviour to match the above.
      
      llvm-svn: 176247
      00062b44
    • Evgeniy Stepanov's avatar
      Remove unused leftover declarations. · 4c9300e6
      Evgeniy Stepanov authored
      llvm-svn: 176240
      4c9300e6
  6. Feb 27, 2013
  7. Feb 26, 2013
    • Kostya Serebryany's avatar
      Unify clang/llvm attributes for asan/tsan/msan (LLVM part) · cf880b94
      Kostya Serebryany authored
      These are two related changes (one in llvm, one in clang).
      LLVM: 
      - rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
      - rename thread_safety => sanitize_thread
      - rename no_uninitialized_checks -> sanitize_memory
      
      CLANG: 
      - add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
      - add __attribute__((no_sanitize_thread))
      - add __attribute__((no_sanitize_memory))
      
      for S in address thread memory
      If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
      set llvm attribute sanitize_S
      
      llvm-svn: 176075
      cf880b94
  8. Feb 24, 2013
  9. Feb 23, 2013
  10. Feb 22, 2013
    • Bill Wendling's avatar
      Implement the NoBuiltin attribute. · 09bd1f71
      Bill Wendling authored
      The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should
      not treat the callee function as a built-in function. I.e., it shouldn't try to
      replace that function with different code.
      
      llvm-svn: 175835
      09bd1f71
  11. Feb 21, 2013
    • Renato Golin's avatar
      Allow GlobalValues to vectorize with AliasAnalysis · cf928cb5
      Renato Golin authored
      Storing the load/store instructions with the values
      and inspect them using Alias Analysis to make sure
      they don't alias, since the GEP pointer operand doesn't
      take the offset into account.
      
      Trying hard to not add any extra cost to loads and stores
      that don't overlap on global values, AA is *only* calculated
      if all of the previous attempts failed.
      
      Using biggest vector register size as the stride for the
      vectorization access, as we're being conservative and
      the cost model (which calculates the real vectorization
      factor) is only run after the legalization phase.
      
      We might re-think this relationship in the future, but
      for now, I'd rather be safe than sorry.
      
      llvm-svn: 175818
      cf928cb5
    • Chad Rosier's avatar
      Remove dead code and whitespace. · 9b7f9c3e
      Chad Rosier authored
      llvm-svn: 175804
      9b7f9c3e
  12. Feb 20, 2013
  13. Feb 19, 2013
  14. Feb 18, 2013
  15. Feb 17, 2013
    • Hal Finkel's avatar
      BBVectorize: Fix an invalid reference bug · 76e65e45
      Hal Finkel authored
      This fixes PR15289. This bug was introduced (recently) in r175215; collecting
      all std::vector references for candidate pairs to delete at once is invalid
      because subsequent lookups in the owning DenseMap could invalidate the
      references.
      
      bugpoint was able to reduce a useful test case. Unfortunately, because whether
      or not this asserts depends on memory layout, this test case will sometimes
      appear to produce valid output. Nevertheless, running under valgrind will
      reveal the error.
      
      llvm-svn: 175397
      76e65e45
    • Bill Wendling's avatar
      The transform is: · 23242098
      Bill Wendling authored
          (or (bool?A:B),(bool?C:D)) --> (bool?(or A,C):(or B,D))
      
      By the time the OR is visited, both the SELECTs have been visited and not
      optimized and the OR itself hasn't been transformed so we do this transform in
      the hopes that the new ORs will be optimized.
      
      The transform is explicitly disabled for vector-selects until "codegen matures
      to handle them better".
      
      Patch by Muhammad Tauqir!
      
      llvm-svn: 175380
      23242098
  16. Feb 16, 2013
  17. Feb 15, 2013
Loading