1. Dec 12, 2019
  2. Dec 11, 2019
    • Craig Topper's avatar
      [X86] Erase dead LEA instruction after converting it to MOV in... · 3adc819b
      Craig Topper authored
      [X86] Erase dead LEA instruction after converting it to MOV in FixupLEAPass::processInstrForSlow3OpLEA.
      3adc819b
    • Reid Kleckner's avatar
      [TableGen] Remove unused target intrinsic generation logic · 72c68f13
      Reid Kleckner authored
      AMDGPU was the last in tree target to use this tablegen mode. I plan to
      split up the global intrinsic enum similar to the way that clang
      diagnostics are split up today. I don't plan to build on this mode.
      
      Reviewers: arsenm, echristo, efriedma
      
      Reviewed By: echristo
      
      Differential Revision: https://reviews.llvm.org/D71318
      72c68f13
    • Ulrich Weigand's avatar
      [SystemZ] Fix 128-bit strict FMA expansion pre-z14 · ac473394
      Ulrich Weigand authored
      Before z14, we did not have any FMA instruction for 128-bit
      floating-point, so the @llvm.fma.f128 intrinsic needs to be
      expanded to a libcall on those platforms.
      
      This worked correctly for regular FMA, but was implemented
      incorrectly for the strict version.  This was not noticed
      because we did not have test coverage for this case.
      
      This patch fixes that incorrect expansion and adds the
      missing test cases.
      ac473394
    • Kit Barton's avatar
      [Loop] Add isRotated method to Loop class. · 942c9946
      Kit Barton authored
      Summary:
      This patch adds a method to determine if a loop is in rotated form (the latch is
      an exiting block). It also modifies the getLoopGuardBranch method to use this
      new method. This method can also be used in Loopfusion. Once this patch lands I
      will make the corresponding changes there.
      
      Reviewers: jdoerfert, Meinersbur, dmgreen, etiotto, Whitney, fhahn, hfinkel
      
      Reviewed By: Meinersbur
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65958
      942c9946
    • Russell Gallop's avatar
      [Support] Add TimeTraceScope constructor without detail arg · df494f75
      Russell Gallop authored
      This simplifies code where no extra details are required
      Also don't write out detail when it is empty.
      
      Differential Revision: https://reviews.llvm.org/D71347
      df494f75
    • Diogo Sampaio's avatar
      [ARM][NFC] Change test to use CHECK-NEXT · ee219345
      Diogo Sampaio authored
      ee219345
    • Matt Arsenault's avatar
      Verifier: Check frame-pointer attribute values · 49d731b5
      Matt Arsenault authored
      There are a few places that check specific string attributes have
      particular values, and assert if they are something else. The verifier
      should catch these kinds of cases.
      49d731b5
    • Adam Balogh's avatar
      [Analyzer] Iterator Checkers: Replace `UnknownVal` in comparison result by a conjured value · 855d21a0
      Adam Balogh authored
      Sometimes the return value of a comparison operator call is
      `UnkownVal`. Since no assumptions can be made on `UnknownVal`,
      this leeds to keeping impossible execution paths in the
      exploded graph resulting in poor performance and false
      positives. To overcome this we replace unknown results of
      iterator comparisons by conjured symbols.
      
      Differential Revision: https://reviews.llvm.org/D70244
      855d21a0
    • Matt Arsenault's avatar
      AMDGPU: Fix copy-pasted test name error · 32137699
      Matt Arsenault authored
      32137699
    • Peter Smith's avatar
      [LLD][ELF][AArch64][ARM] When errata patching, round thunk size to 4KiB. · 86d24193
      Peter Smith authored
      On some edge cases such as Chromium compiled with full instrumentation we
      have a .text section over twice the size of the maximum branch range and
      the instrumented code generation containing many examples of the erratum
      sequence. The combination of Thunks and many erratum sequences causes
      finalizeAddressDependentContent() to not converge. We end up with:
      start
      - Thunk Creation (disturbs addresses after thunks, creating more patches)
      - Patch Creation (disturbs addresses after patches, creating more thunks)
      - goto start
      
      In most images with few thunks and patches the mutual disturbance does not
      cause convergence problems. As the .text size and number of patches go up
      the risk increases.
      
      A way to prevent the thunk creation from interfering with patch creation is
      to round up the size of the thunks to a 4KiB boundary when the
      erratum patch is enabled. As the erratum sequence only triggers when an
      instruction sequence starts at 0xff8 or 0xffc modulo (4 KiB) by making the
      thunks not affect addresses modulo (4 KiB) we prevent thunks from
      interfering with the patch.
      
      The patches themselves could be aggregated in the same way that Thunks are
      within ThunkSections and we could round up the size in the same way. This
      would reduce the number of patches created in a .text section size >
      128 MiB but would not likely help convergence problems.
      
      Differential Revision: https://reviews.llvm.org/D71281
      
      fixes (remaining part of) pr44071, other part in D71242
      86d24193
    • Peter Smith's avatar
      [LLD][ELF][AArch64][ARM] Add missing classof to patch sections. · 247b2ce1
      Peter Smith authored
      The code to insert patch section merges them with a comparison function that
      uses logic of the form:
      return (isa<PatchSection>(a) && !isa<PatchSection>(b));
      If the PatchSections don't implement classof this check fails if b is also
      a SyntheticSection. This can result in the patches being out of range if
      the SyntheticSection is big, for example a ThunkSection with lots of thunks.
      
      Differential Revision: https://reviews.llvm.org/D71242
      
      fixes (part of) pr44071
      247b2ce1