Skip to content
  1. May 03, 2017
    • Tom Stellard's avatar
      CMake: Add LLVM_DYLIB_SYMBOL_VERSIONING option · d6f39ddc
      Tom Stellard authored
      Summary:
      When apps or other libraries link against a library with symbol
      versions, the version string is recorded in the import table, and used
      at runtime to resolve the symbol back to a library that provides that
      version (vaguely like how two-level namespaces work in Mach-O).  ld's
      --default-symver flag tags every exported symbol with a symbol version
      string equal to the library's soname.  Using --default-symver means
      multiple versions of libLLVM can coexist within the same process, at
      least to the extent that they don't try to pass data between each
      other's llvms.
      
      As an example, imagine a language like Rust using llvm for CPU codegen,
      binding to OpenGL, with Mesa as the OpenGL implementation using llvm for
      R600 codegen.  With --default-symver Rust and Mesa will resolve their
      llvm usage to the version each was linked against, which need not match.
      
      (Other ELF platforms like BSD and Solaris might have similar semantics,
      I've not checked.)
      
      This is based on an autoconf version of this patch by Adam Jackson.
      
      This new option can be used to add --default-symver to the linker flags
      for libLLVM.so.
      
      Reviewers: beanz
      
      Reviewed By: beanz
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D30997
      
      llvm-svn: 302026
      d6f39ddc
    • Tom Stellard's avatar
      CMake: Move sphinx detection into AddSphinxTarget.cmake · 098f4ab6
      Tom Stellard authored
      Reviewers: chandlerc, beanz, mgorny
      
      Reviewed By: beanz
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31773
      
      llvm-svn: 302025
      098f4ab6
    • Guy Blank's avatar
      [X86][AVX512] remove unnecessary case. NFC · d0baa524
      Guy Blank authored
      VFPCLASS is for vector types and not scalar, so it cannot get here.
      
      Differential Revision: https://reviews.llvm.org/D32694
      
      llvm-svn: 302023
      d0baa524
    • Jonas Paulsson's avatar
      [SystemZ] Properly check number of operands in getCmpOpsType() · f40eac50
      Jonas Paulsson authored
      It is needed to check that the number of operands are 2 when
      finding the case of a logic combination, e.g. 'and' of two compares.
      
      Review: Ulrich Weigand
      llvm-svn: 302022
      f40eac50
    • Oren Ben Simhon's avatar
      [X86] Support of no_caller_saved_registers attribute · dbd4bba1
      Oren Ben Simhon authored
      This patch implements the LLVM part for no_caller_saved_registers attribute as appears here: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5ed3cc7b66af4758f7849ed6f65f4365be8223be.
      In order to implement the attribute, we use the dynamic CSR mechanism to remove returned/passed arguments from the function regmask/CSR list.
      
      Differential Revision: https://reviews.llvm.org/D31876
      
      llvm-svn: 302020
      dbd4bba1
    • Elad Cohen's avatar
      Support arbitrary address space pointers in masked gather/scatter intrinsics. · ef5798ac
      Elad Cohen authored
      Fixes PR31789 - When loop-vectorize tries to use these intrinsics for a
      non-default address space pointer we fail with a "Calling a function with a
      bad singature!" assertion. This patch solves this by adding the 'vector of
      pointers' argument as an overloaded type which will determine the address
      space.
      
      Differential revision: https://reviews.llvm.org/D31490
      
      llvm-svn: 302018
      ef5798ac
    • Dylan McKay's avatar
      [AVR] Reserve the Y register in all functions · 4aedb8a6
      Dylan McKay authored
      llvm-svn: 302017
      4aedb8a6
    • Anna Thomas's avatar
      [Loop Deletion] Delete loops that are never executed · 53c8d95c
      Anna Thomas authored
      Summary:
      Currently, loop deletion deletes loop where the only values
      that are used outside the loop are loop-invariant.
      This patch adds logic to delete loops where the loop is proven to be
      never executed (i.e. the only predecessor of the loop preheader has a
      constant conditional branch as terminator, and the preheader is not the
      taken target). This will remove loops that become dead after
      loop-unswitching generates constant conditional branches.
      
      The next steps are:
      1. moving the loop deletion implementation to LoopUtils.
      2. Add logic in loop-simplifyCFG which will support changing conditional
      constant branches to unconditional branches. If loops become unreachable in this
      process, they can be removed using `deleteDeadLoop` function.
      
      Reviewers: chandlerc, efriedma, sanjoy, reames
      
      Reviewed by: sanjoy
      
      Subscribers: mzolotukhin, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D32494
      
      llvm-svn: 302015
      53c8d95c
    • Dylan McKay's avatar
      Revert "[AVR] Enable the frame pointer for all functions" · c30d85bd
      Dylan McKay authored
      This reverts commit 358ad02d999e88853d2cfc954bd2f668308a51f7.
      
      llvm-svn: 302014
      c30d85bd
    • Alex Lorenz's avatar
      [Triple] Add a "macos" OS type that acts as a synonym for "macosx" · c748d7b5
      Alex Lorenz authored
      The "macosx" OS type is still the canonical type. In the future "macos" will
      become the canonical OS type (but we will still support "macosx").
      
      rdar://27043820
      
      Differential Revision: https://reviews.llvm.org/D32748
      
      llvm-svn: 302011
      c748d7b5
    • Simon Pilgrim's avatar
      [X86] Refactored LowerINTRINSIC_W_CHAIN to use a switch statament. NFCI. · 05cfa838
      Simon Pilgrim authored
      Pre-commit as requested in D32769.
      
      llvm-svn: 302010
      05cfa838
    • Daniel Jasper's avatar
      Revert r301986 (and subsequent r301987). · dff096f2
      Daniel Jasper authored
      The patch is failing to add StringTableStreamBuilder.h, but that isn't
      even discovered because the corresponding StringTableStreamBuilder.cpp
      isn't added to any CMakeLists.txt file and thus never built. I think
      this patch is just incomplete.
      
      llvm-svn: 302002
      dff096f2
    • Zachary Turner's avatar
      Fix use after free in BinaryStream library. · 59e83892
      Zachary Turner authored
      This was reported by the ASAN bot, and it turned out to be
      a fairly fundamental problem with the design of VarStreamArray
      and the way it passes context information to the extractor.
      
      The fix was cumbersome, and I'm not entirely pleased with it,
      so I plan to revisit this design in the future when I'm not
      pressed to get the bots green again.  For now, this fixes
      the issue by storing the context information by value instead
      of by reference, and introduces some impossibly-confusing
      template magic to make things "work".
      
      llvm-svn: 301999
      59e83892
    • Matt Arsenault's avatar
      Replace hardcoded intrinsic list with speculatable attribute. · 6a288c1e
      Matt Arsenault authored
      No change in which intrinsics should be speculated.
      
      llvm-svn: 301995
      6a288c1e
    • Peter Collingbourne's avatar
      Revert r295861, "[ModuleSummaryAnalysis] Don't crash when referencing unnamed globals." · e95901ca
      Peter Collingbourne authored
      We should always expect values to be named before running the module summary
      analysis (see NameAnonGlobals pass), so it's fine if we crash in that case.
      
      llvm-svn: 301991
      e95901ca
    • Tim Shen's avatar
      [PowerPC, DAGCombiner] Fold a << (b % (sizeof(a) * 8)) back to a single instruction · e59d06fe
      Tim Shen authored
      Summary:
      This is the corresponding llvm change to D28037 to ensure no performance
      regression.
      
      Reviewers: bogner, kbarton, hfinkel, iteratee, echristo
      
      Subscribers: nemanjai, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D28329
      
      llvm-svn: 301990
      e59d06fe
    • Zachary Turner's avatar
      Fix type conversion error. · 67736594
      Zachary Turner authored
      llvm-svn: 301987
      67736594
    • Zachary Turner's avatar
      Make codeview::StringTable. · 7dba20bd
      Zachary Turner authored
      Previously we had knowledge of how to serialize and deserialize
      a string table inside of DebugInfo/PDB, but the string table
      that it serializes contains a piece that is actually considered
      CodeView and can appear outside of a PDB.  We already have logic
      in llvm-readobj and MCCodeView to read and write this format,
      so it doesn't make sense to duplicate the logic in DebugInfoPDB
      as well.
      
      This patch makes codeview::StringTable (for writing) and
      codeview::StringTableRef (for reading), updates DebugInfoPDB
      to use these classes for its own writing, and updates llvm-readobj
      to additionally use StringTableRef for reading.
      
      It's a bit more difficult to get MCCodeView to use this for
      writing, but it's a logical next step.
      
      llvm-svn: 301986
      7dba20bd
    • Xin Tong's avatar
      Typo in LangRef.rst. NFC · c7180204
      Xin Tong authored
      llvm-svn: 301985
      c7180204
    • Greg Clayton's avatar
      Add line table verification to lldb-dwarfdump --verify · 6707046f
      Greg Clayton authored
      This patch verifies the .debug_line:
      - verify all addresses in a line table sequence have ascending addresses
      - verify that all line table file indexes are valid
      
      Unit tests added for both cases.
      
      Differential Revision: https://reviews.llvm.org/D32765
      
      llvm-svn: 301984
      6707046f
    • Tim Northover's avatar
      ARM: avoid handing a deleted node back to TableGen during ISel. · 4a01ffbd
      Tim Northover authored
      When we replaced the multiplicand the destination node might already exist.
      When that happens the original gets CSEd and deleted. However, it's actually
      used as the offset so nonsense is produced.
      
      Should fix PR32726.
      
      llvm-svn: 301983
      4a01ffbd
    • Reid Kleckner's avatar
      Re-land r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList" · ee4930b6
      Reid Kleckner authored
      This time, I fixed, built, and tested clang.
      
      This reverts r301712.
      
      llvm-svn: 301981
      ee4930b6
    • Joel Jones's avatar
      [AArch64] ILP32 Backend Relocation Support · 65134057
      Joel Jones authored
      Remove "_NC" suffix and semantics from TLSDESC_LD{64,32}_LO12 and
        TLSDESC_ADD_LO12 relocations
      Rearrange ordering in AArch64.def to follow relocation encoding
      Fix name:
        R_AARCH64_P32_LD64_GOT_LO12_NC => R_AARCH64_P32_LD32_GOT_LO12_NC
      Add support for several "TLS", "TLSGD", and "TLSLD" relocations for
        ILP32
      Fix return values from isNonILP32reloc
      Add implementations for
        R_AARCH64_ADR_PREL_PG_HI21_NC, R_AARCH64_P32_LD32_GOT_LO12_NC,
        R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC,
        R_AARCH64_P32_TLSDESC_LD32_LO12, R_AARCH64_LD64_GOT_LO12_NC,
        *TLSLD_LDST128_DTPREL_LO12, *TLSLD_LDST128_DTPREL_LO12_NC,
        *TLSLE_LDST128_TPREL_LO12, *TLSLE_LDST128_TPREL_LO12_NC
      Modify error messages to give name of equivalent relocation in the
        ABI not being used, along with better checking for non-existent
        requested relocations.
      Added assembler support for "pg_hi21_nc"
      Relocation definitions added without implementations:
        R_AARCH64_P32_TLSDESC_ADR_PREL21, R_AARCH64_P32_TLSGD_ADR_PREL21,
        R_AARCH64_P32_TLSGD_ADD_LO12_NC, R_AARCH64_P32_TLSLD_ADR_PREL21, 
        R_AARCH64_P32_TLSLD_ADR_PAGE21, R_AARCH64_P32_TLSLD_ADD_LO12_NC,
        R_AARCH64_P32_TLSLD_LD_PREL19, R_AARCH64_P32_TLSDESC_LD_PREL19,
        R_AARCH64_P32_TLSGD_ADR_PAGE21, R_AARCH64_P32_TLS_DTPREL,
        R_AARCH64_P32_TLS_DTPMOD, R_AARCH64_P32_TLS_TPREL,
        R_AARCH64_P32_TLSDESC
      Fix encoding:
        R_AARCH64_P32_TLSDESC_ADR_PAGE21
      
      Reviewers: Peter Smith
      
      Patch by: Joel Jones (jjones@cavium.com)
      
      Differential Revision: https://reviews.llvm.org/D32072
      
      llvm-svn: 301980
      65134057
  2. May 02, 2017
Loading