Skip to content
  1. Jun 06, 2014
    • Iain Sandoe's avatar
      lld test for configure & make · f419931f
      Iain Sandoe authored
      r210177 added lld Makefiles, r210245 added automatic build when the source is present.
      
      This revision completes the set by adding the lld test and unittests to the check-all target.
      
      llvm-svn: 210318
      f419931f
    • Timur Iskhodzhanov's avatar
    • Simon Atanasyan's avatar
    • Dinesh Dwivedi's avatar
      Added select flavour for ABS and NEG(ABS) · 3217b6c6
      Dinesh Dwivedi authored
      This patch can identify 
        ABS(X) ==> (X >s 0) ? X : -X and (X >s -1) ? X : -X
        ABS(X) ==> (X <s 0) ? -X : X and (X <s 1) ? -X : X
        NABS(X) ==> (X >s 0) ? -X : X and (X >s -1) ? -X : X
        NABS(X) ==> (X <s 0) ? X : -X and (X <s 1) ? X : -X
        
      and can transform
        ABS(ABS(X)) -> ABS(X)
        NABS(NABS(X)) -> NABS(X)
        
      Differential Revision: http://reviews.llvm.org/D3658
      
      llvm-svn: 210312
      3217b6c6
    • Alp Toker's avatar
      Make LINK_POLLY_INTO_TOOLS work with the CMake build · 6ae079ee
      Alp Toker authored
      The option check was being performed after config.h/llvm-config.h substitution,
      generating incorrect macro definitions.
      
      Fixes PR19614.
      
      llvm-svn: 210311
      6ae079ee
    • Karthik Bhat's avatar
      Fix PR19657 (scalar loads not combined into vector load) · bf56d44c
      Karthik Bhat authored
      If we have common uses on separate paths in the tree; process the one with greater common depth first.
      This makes sure that we do not assume we need to extract a load when it is actually going to be part of a vectorized tree.
      
      Review: http://reviews.llvm.org/D3800
      llvm-svn: 210310
      bf56d44c
    • Alp Toker's avatar
      Remove clang-specific libxml2 check from CMake · 5627ee47
      Alp Toker authored
      clang's own CMake setup handles this as of r210308.
      
      The CMAKE_CROSSCOMPILING special-case will no longer be hard-coded. This was
      clearly site-specific to someone's local configuration and should be passed in
      at configure time if needed with e.g. -DLIBXML2_LIBRARIES=... (the libxml2
      target I tried here doesn't even support liblzma so it's *way* off).
      
      llvm-svn: 210309
      5627ee47
    • Alp Toker's avatar
      config.h: remove clang-specific macro definitions · b27bdade
      Alp Toker authored
      These had no business in LLVM core.
      
      llvm-svn: 210307
      b27bdade
    • Rafael Espindola's avatar
      Allow aliases to be unnamed_addr. · 42a4c9f9
      Rafael Espindola authored
      Alias with unnamed_addr were in a strange state. It is stored in GlobalValue,
      the language reference talks about "unnamed_addr aliases" but the verifier
      was rejecting them.
      
      It seems natural to allow unnamed_addr in aliases:
      
      * It is a property of how it is accessed, not of the data itself.
      * It is perfectly possible to write code that depends on the address
      of an alias.
      
      This patch then makes unname_addr legal for aliases. One side effect is that
      the syntax changes for a corner case: In globals, unnamed_addr is now printed
      before the address space.
      
      llvm-svn: 210302
      42a4c9f9
    • Alexey Samsonov's avatar
      Fix markup for -debug-only option · 6c0ddfe9
      Alexey Samsonov authored
      llvm-svn: 210300
      6c0ddfe9
    • Alexey Samsonov's avatar
      Fix null dereference with -debug-only=dwarfdebug · 45d638a3
      Alexey Samsonov authored
      llvm-svn: 210299
      45d638a3
    • Rafael Espindola's avatar
      Correctly set the comdat symbol on COFF. · 942f4bc4
      Rafael Espindola authored
      We extended the .section syntax to allow multiple sections with the
      same name but different comdats, but currently we don't make sure that
      the output section has that comdat symbol.
      
      That happens to work with the code llc produces currently because it looks like
      
      .section secName, "dr", one_only, "COMDATSym"
      .globl COMDATSym
      COMDATSym:
      ....
      
      but that is not very friendly to anyone coding in assembly or even to
      llc once we get comdat support in the IR.
      
      This patch changes the coff object writer to make sure the comdat symbol is
      output just after the section symbol, as required by the coff spec.
      
      llvm-svn: 210298
      942f4bc4
    • Bill Schmidt's avatar
      [PPC64LE] Add test case for r210282 commit · 72dfa16a
      Bill Schmidt authored
      Chandler correctly pointed out that I need an LLVM IR test for
      r210282, which modified the vperm -> shuffle transform for little
      endian PowerPC.  This patch provides that test.
      
      llvm-svn: 210297
      72dfa16a
    • Eric Christopher's avatar
      Remove X86Subtarget from the X86FrameLowering constructor since · 66f676e9
      Eric Christopher authored
      we can just pass in the values we already know and we're not
      caching the subtarget anymore.
      
      llvm-svn: 210292
      66f676e9
    • Jingyue Wu's avatar
      Fixed several correctness issues in SeparateConstOffsetFromGEP · 84465473
      Jingyue Wu authored
      Most issues are on mishandling s/zext.
      
      Fixes:
      
      1. When rebuilding new indices, s/zext should be distributed to
      sub-expressions. e.g., sext(a +nsw (b +nsw 5)) = sext(a) + sext(b) + 5 but not
      sext(a + b) + 5. This also affects the logic of recursively looking for a
      constant offset, we need to include s/zext into the context of the searching.
      
      2. Function find should return the bitwidth of the constant offset instead of
      always sign-extending it to i64.
      
      3. Stop shortcutting zext'ed GEP indices. LLVM conceptually sign-extends GEP
      indices to pointer-size before computing the address. Therefore, gep base,
      zext(a + b) != gep base, a + b
      
      Improvements:
      
      1. Add an optimization for splitting sext(a + b): if a + b is proven
      non-negative (e.g., used as an index of an inbound GEP) and one of a, b is
      non-negative, sext(a + b) = sext(a) + sext(b)
      
      2. Function Distributable checks whether both sext and zext can be distributed
      to operands of a binary operator. This helps us split zext(sext(a + b)) to
      zext(sext(a) + zext(sext(b)) when a + b does not signed or unsigned overflow.
      
      Refactoring:
      
      Merge some common logic of handling add/sub/or in find.
      
      Testing:
      
      Add many tests in split-gep.ll and split-gep-and-gvn.ll to verify the changes
      we made.
      
      llvm-svn: 210291
      84465473
    • Eric Christopher's avatar
      Remove caching of the subtarget for X86FrameLowering. · f438164d
      Eric Christopher authored
      llvm-svn: 210290
      f438164d
  2. Jun 05, 2014
Loading