1. Feb 04, 2020
    • Fangrui Song's avatar
      [CodeGenModule] Assume dso_local for -fpic -fno-semantic-interposition · 789a46f2
      Fangrui Song authored
      Summary:
      Clang -fpic defaults to -fno-semantic-interposition (GCC -fpic defaults
      to -fsemantic-interposition).
      Users need to specify -fsemantic-interposition to get semantic
      interposition behavior.
      
      Semantic interposition is currently a best-effort feature. There may
      still be some cases where it is not handled well.
      
      Reviewers: peter.smith, rnk, serge-sans-paille, sfertile, jfb, jdoerfert
      
      Subscribers: dschuff, jyknight, dylanmckay, nemanjai, jvesely, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, arphaman, PkmX, jocewei, jsji, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D73865
      789a46f2
    • Nikita Popov's avatar
      [ARM] Expand vector reduction intrinsics on soft float · 1cc4f8d1
      Nikita Popov authored
      Followup to D73135. If the target doesn't have hard float (default
      for ARM), then we assert when trying to soften the result of vector
      reduction intrinsics. This patch marks these for expansion as well.
      (A bit odd to use vectors on a target without hard float ... but
      that's where you end up if you expose target-independent vector types.)
      
      Differential Revision: https://reviews.llvm.org/D73854
      1cc4f8d1
    • Nikita Popov's avatar
      [Examples] Link BitReader in ThinLtoJIT example · 9eb74f60
      Nikita Popov authored
      D72486 broke the shared library build.
      9eb74f60
    • Nikita Popov's avatar
      a5995405
    • Alexey Bataev's avatar
    • Alexey Bataev's avatar
      [OPENMP50]Codegen support for order(concurrent) clause. · a7815218
      Alexey Bataev authored
      Emit llvm parallel access metadata for the loops if they are marked as
      order(concurrent).
      a7815218
    • Teresa Johnson's avatar
      [ThinLTO] More efficient export computation (NFC) · bed4d9c8
      Teresa Johnson authored
      Summary:
      A recent change to enable more importing of global variables with
      references exposed some efficiency issues with export computation.
      See D73724 for more information and detailed analysis.
      
      The first was specific to variable importing. The code was marking every
      copy of a referenced value (from possibly thousands of files in the case
      of linkonce_odr) as exported, and we only need to mark the copy in the
      module containing the variable def being imported as exported. The
      reason is that this is tracking what values are newly exported as a
      result of importing. Anything that was defined in another module and
      simply used in the exporting module is already exported, and would have
      been identified by the caller (e.g. the LTO API implementations).
      
      The second issue is that the code was re-adding previously exported
      values (along with all references). It is easy to identify when a
      variable was already imported into the same module (via the
      import list insert call return value), and we already did this for
      function importing. However, what we weren't doing for either function
      or variable importing was avoiding a re-insertion when it was previously
      exported into a different importing module. The reason we couldn't do
      this is there was no way of telling from the export list whether it was
      previously inserted there because its definition was exported (in which
      case we already marked all its references as exported) from when it was
      inserted there because it was referenced by another exported value (in
      which case we haven't yet inserted its own references).
      
      To address this we can restructure the way the export list is
      constructed. This patch only adds the actual imported definitions
      (variable or function) to the export list for its module during the
      import computation. After import computation is complete, where we were
      already post-processing the export list we go ahead and add all
      references made by those exported values to the export list.
      
      These changes speed up the thin link not only with constant variable
      importing enabled, but also without (due to the efficiency improvement
      in function importing).
      
      Some thin link user time measurements for one large application, average
      of 5 runs:
      
      With constant variable importing enabled:
      - without this patch: 479.5s
      - with this patch: 74.6s
      
      Without constant variable importing enabled:
      - without this patch: 80.6s
      - with this patch: 70.3s
      
      Note I have not re-enabled constant variable importing here, as I would
      like to do additional compile time measurements with these fixes first.
      
      Reviewers: evgeny777
      
      Subscribers: mehdi_amini, inglorion, hiraditya, dexonsmith, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D73851
      bed4d9c8
    • Jay Foad's avatar
      [AMDGPU] getMemOperandsWithOffset: add resource operand for BUF instructions · 05297b7c
      Jay Foad authored
      Summary:
      This prevents unwanted clustering of BUF instructions with the same
      vaddr but different resource descriptors.
      
      Reviewers: rampitec, arsenm, nhaehnle
      
      Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D73867
      05297b7c
    • Sanjay Patel's avatar
      [InstCombine] add tests for casted phi; NFC · b2e884be
      Sanjay Patel authored
      b2e884be
    • Simon Pilgrim's avatar
      HexagonOptAddrMode::changeStore - fix null dereference warning (PR43463) · bdfcdb1f
      Simon Pilgrim authored
      As detailed on PR43463, this fixes a static analyzer null dereference warning by sinking Changed = true into the if() blocks where the MIB is actually created.
      
      I did a quick check that suggested that one of those if() blocks is always guaranteed to be hit (so we could change it to if-else), but this seems like a safer approach
      
      Differential Revision: https://reviews.llvm.org/D73883
      bdfcdb1f
    • Simon Pilgrim's avatar
      [TargetLowering] SimplifyDemandedBits - add basic KnownBits ZEXTLoad handling · 61621f82
      Simon Pilgrim authored
      We have to be careful in SimplifyDemandedBits with loads in case we attempt to combine back to a constant (which then gets turned into a constant pool load again), but we can at least set the upper KnownBits for a ZEXTLoad to zero.
      61621f82
    • Simon Pilgrim's avatar
    • Hans Wennborg's avatar
      Actually, don't try to use __builtin_strlen in StringRef.h before VS 2019 · ff837aa6
      Hans Wennborg authored
      The fix in b3d7d106 compiled nicely,
      but didn't link because at least the VS 2017 version I use doesn't
      have the builtin yet. Instead, make use of the builtin with MSVC
      conditional on VS 2019 or later.
      ff837aa6
    • Max Moroz's avatar
      [libFuzzer] Make dataflow and focus functions more user friendly. · ad7b908b
      Max Moroz authored
      Summary:
      - Fail loudly if SetFocusFunction failed when it should not. For more info see
        - https://github.com/google/oss-fuzz/issues/3311
        - https://github.com/google/sanitizers/issues/1190
      - Fail loudly if CollectDataFlow is called without seed corpus.
      
      Reviewers: kcc, metzman
      
      Subscribers: #sanitizers, llvm-commits
      
      Tags: #sanitizers, #llvm
      
      Differential Revision: https://reviews.llvm.org/D73813
      ad7b908b
    • Guillaume Chatelet's avatar
      [Alignment][NFC] Use Align for getMemcpy/Memmove/Memset · 333f2ad8
      Guillaume Chatelet authored
      Summary:
      This is patch is part of a series to introduce an Alignment type.
      See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
      See this patch for the introduction of the type: https://reviews.llvm.org/D64790
      
      Reviewers: courbet
      
      Subscribers: arsenm, dschuff, jyknight, sdardis, nemanjai, jvesely, nhaehnle, sbc100, jgravelle-google, hiraditya, aheejin, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, jsji, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, kerbowa, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D73885
      333f2ad8
  2. Feb 03, 2020