and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 13 Feb, 2020 4 commits
  2. 12 Feb, 2020 13 commits
    • Hans Wennborg's avatar
      [CodeGen] Fix the computation of the alignment of split stores. · b3cf7042
      Hans Wennborg authored
      By Clement Courbet!
      
      Backported from rG15488ff2
      b3cf7042
    • Saar Raz's avatar
      [Concepts] Add missing TPA commit to requires expression parsing · 6f692404
      Saar Raz authored
      If an error had occurred when annotating a scope spec during the tentative parse
      for a type-requirement, we would not revert nor commit the tentative parse, triggerring
      an assertion failure.
      
      Commit the TPA in this case and then do error recovery.
      
      (cherry picked from commit 271e4953)
      6f692404
    • Saar Raz's avatar
      [Concepts] Do not check constraints if not all template arguments have been deduced · 9fbd4ab3
      Saar Raz authored
      We previously checked the constraints of instantiated function templates even in cases where
      PartialOverloading was true and not all template arguments have been deduced, which caused crashes
      in clangd (bug 44714).
      
      We now check if all arguments have been deduced before checking constraints in partial overloading
      scenarios.
      
      (cherry picked from commit 5fef14d9)
      9fbd4ab3
    • Hans Wennborg's avatar
      Fix an unused variable warning · 2804f355
      Hans Wennborg authored
      (cherry picked from commit ea9850b6)
      2804f355
    • Craig Topper's avatar
      [X86] Cast to __v4hi instead of __m64 in the implementation of... · 533d98bd
      Craig Topper authored
      [X86] Cast to __v4hi instead of __m64 in the implementation of _mm_extract_pi16 and _mm_insert_pi16.
      
      __m64 is a vector of 1 long long. But the builtins these intrinsics
      are calling expect a vector of 4 shorts.
      
      Fixes PR44589
      
      (cherry picked from commit 16b9410c)
      533d98bd
    • Jeremy Morse's avatar
      Revert "[DebugInfo] Remove some users of DBG_VALUEs IsIndirect field" · 4eb45a05
      Jeremy Morse authored
      This reverts commit ed29dbaa.
      
      I'm backing out D68945, which as the discussion for D73526 shows, doesn't
      seem to handle the -O0 path through the codegen backend correctly. I'll
      reland the patch when a fix is worked out, apologies for all the churn.
      The two parent commits are part of this revert too.
      
      Conflicts:
      	llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
      	llvm/test/DebugInfo/X86/dbg-addr-dse.ll
      
      SelectionDAGBuilder conflict is due to a nearby change in e39e2b4a
      that's technically unrelated. dbg-addr-dse.ll conflicted because
      41206b61 (legitimately) changes the order of two lines.
      
      There are further modifications to dbg-value-func-arg.ll: it landed after
      the patch being reverted, and I've converted indirection to be represented
      by the isIndirect field rather than DW_OP_deref.
      
      (cherry picked from commit 6531a78a)
      4eb45a05
    • Jeremy Morse's avatar
      Revert "[DebugInfo][DAG] Distinguish different kinds of location indirection" · 04d7337d
      Jeremy Morse authored
      This reverts commit 3137fe4d.
      
      I'm backing out D68945, which this patch is a follow up for. It'll be
      re-landed when D68945 is fixed.
      
      The changes to dbg-value-func-arg.ll occur because our handling of certain
      kinds of location now mixes up indirection that happens at different points
      in a DIExpression. While this is a regression, it's a return to the prior
      behaviour while a better patch is sought.
      
      (cherry picked from commit ece76142)
      04d7337d
    • Jeremy Morse's avatar
      [DebugInfo] Re-instate LiveDebugVariables scope trimming · c1701728
      Jeremy Morse authored
      This patch reverts part of r362750 / D62650, which stopped
      LiveDebugVariables from trimming leading variable location ranges down
      to only covering those instructions that are in scope. I've observed some
      circumstances where the number of DBG_VALUEs in a function can be
      amplified in an un-necessary way, to cover more instructions that are
      out of scope, leading to very slow compile times. Trimming the range
      of instructions that the variables cover solves the slow compile times.
      
      The specific problem that r362750 tries to fix is addressed by the
      assignment to RStart that I've added. Any variable location that begins
      at the first instruction of a block will now be considered to begin at the
      start of the block. While these sound the same, the have different
      SlotIndexes, and the register allocator may shoehorn additional
      instructions in between the two. The test added in the past
      (wrong_debug_loc_after_regalloc.ll) still works with this modification.
      
      live-debug-variables.ll has a range trimmed to not cover the prologue of
      the function, while dbg-addr-dse.ll has a DBG_VALUE sink past one
      instruction with no DebugLoc, which is expected behaviour.
      
      Differential Revision: https://reviews.llvm.org/D73691
      
      (cherry picked from commit 41206b61)
      c1701728
    • Nathan James's avatar
      [clang-tidy] Added check to disable bugprone-infinite-loop on known false condition · 7a136d27
      Nathan James authored
      Summary: Addresses [[ https://bugs.llvm.org/show_bug.cgi?id=44816 | bugprone-infinite-loop false positive with CATCH2 ]] by disabling the check on loops where the condition is known to always eval as false, in other words not a loop.
      
      Reviewers: aaron.ballman, alexfh, hokein, gribozavr2, JonasToth
      
      Reviewed By: gribozavr2
      
      Subscribers: xazax.hun, cfe-commits
      
      Tags: #clang, #clang-tools-extra
      
      Differential Revision: https://reviews.llvm.org/D74374
      
      (cherry picked from commit c69ec647)
      7a136d27
    • Anastasia Stulova's avatar
      [OpenCL] Restrict addr space conversions in nested pointers · b33830ae
      Anastasia Stulova authored
      Address space conversion changes pointer representation.
      This commit disallows such conversions when they are not
      legal i.e. for the nested pointers even with compatible
      address spaces. Because the address space conversion in
      the nested levels can't be generated to modify the pointers
      correctly. The behavior implemented is as follows:
      
      - Any implicit conversions of nested pointers with different
        address spaces is rejected.
      - Any conversion of address spaces in nested pointers in safe
        casts (e.g. const_cast or static_cast) is rejected.
      - Conversion in low level C-style or reinterpret_cast is accepted
        but with a warning (this aligns with OpenCL C behavior).
      
      Fixes PR39674
      
      Differential Revision: https://reviews.llvm.org/D73360
      
      (cherry picked from commit 6064f426)
      b33830ae
    • Reid Kleckner's avatar
      Fix MSVC build with C++ EH enabled · d8a6deab
      Reid Kleckner authored
      Mark the CrashRecoveryContextImpl constructor noexcept, so that MSVC
      won't emit an unwind helper to clean up the allocation from `new` if the
      constructor throws an exception.
      
      Otherwise, MSVC complains:
        llvm\lib\Support\CrashRecoveryContext.cpp(220): error C2712: \
        Cannot use __try in functions that require object unwinding
      
      The other simple fix would be to wrap `new` in a static helper or
      lambda.
      
      Users have reported that Tensorflow builds LLVM with /EHsc.
      
      (cherry picked from commit a349c091)
      d8a6deab
    • Jonas Paulsson's avatar
      [SystemZ] Bugfix in emitSelect() · 3c94b278
      Jonas Paulsson authored
      When more than one SelectPseudo instruction is handled a new MBB is
      returned. This must not be done if that would result in leaving an undhandled
      isel pseudo behind in the original MBB.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=44849.
      
      Review: Ulrich Weigand
      
      Differential Revision: https://reviews.llvm.org/D74352
      
      (cherry picked from commit 0311e28e)
      3c94b278
    • Alexandre Ganea's avatar
      [Clang][Driver] After default -fintegrated-cc1, make... · fd04cb43
      Alexandre Ganea authored
      [Clang][Driver] After default -fintegrated-cc1, make llvm::report_fatal_error() generate preprocessed source + reproducer.sh again.
      
      Added a test for #pragma clang __debug llvm_fatal_error to test for the original issue.
      Added llvm::sys::Process::Exit() and replaced ::exit() in places where it was appropriate. This new function would call the current CrashRecoveryContext if one is running on the same thread; or call ::exit() otherwise.
      
      Fixes PR44705.
      
      Differential Revision: https://reviews.llvm.org/D73742
      
      (cherry picked from commit faace365)
      fd04cb43
  3. 11 Feb, 2020 4 commits
  4. 10 Feb, 2020 18 commits
  5. 08 Feb, 2020 1 commit