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

  1. 10 Sep, 2018 4 commits
    • Hans Wennborg's avatar
      ReleaseNotes: tiny fix · 494f9e4c
      Hans Wennborg authored
      llvm-svn: 341805
      494f9e4c
    • Hans Wennborg's avatar
      ReleaseNotes: minor tweaks · 1db9b3ef
      Hans Wennborg authored
      llvm-svn: 341804
      1db9b3ef
    • Hans Wennborg's avatar
      Merging r341642: · 3472e2a5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341642 | tnorthover | 2018-09-07 11:21:25 +0200 (Fri, 07 Sep 2018) | 8 lines
      
      ARM: fix Thumb2 CodeGen for ldrex with folded frame-index.
      
      Because t2LDREX (& t2STREX) were marked as AddrModeNone, but did allow a
      FrameIndex operand, rewriteT2FrameIndex asserted. This gives them a
      proper addressing-mode and tells the rewriter about it so that encodable
      offsets are exploited and others are rejected.
      
      Should fix PR38828.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341783
      3472e2a5
    • Hans Wennborg's avatar
      Merging r341670 and r341672: · 3065b0a7
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341670 | tstellar | 2018-09-07 17:42:01 +0200 (Fri, 07 Sep 2018) | 15 lines
      
      MachO: Fix out-of-bounds memory access in getString16
      
      Summary:
      This fixes the following tests when gcc is compiled with gcc8:
      
      lld :: mach-o/do-not-emit-unwind-fde-arm64.yaml
      lld :: mach-o/eh-frame-relocs-arm64.yaml
      
      llvm.org/PR38096
      
      Reviewers: lhames, kledzik, javed.absar
      
      Subscribers: kristof.beyls, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51547
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r341672 | tstellar | 2018-09-07 17:51:52 +0200 (Fri, 07 Sep 2018) | 3 lines
      
      MachO: Change getString16() back to inline function
      
      This was accidentally changed in r341670.
      ------------------------------------------------------------------------
      
      llvm-svn: 341780
      3065b0a7
  2. 07 Sep, 2018 6 commits
  3. 06 Sep, 2018 7 commits
    • Hans Wennborg's avatar
      Merging r341512: · d2647fa6
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341512 | ctopper | 2018-09-06 04:03:14 +0200 (Thu, 06 Sep 2018) | 7 lines
      
      [X86][Assembler] Allow %eip as a register in 32-bit mode for .cfi directives.
      
      This basically reverts a change made in r336217, but improves the text of the error message for not allowing IP-relative addressing in 32-bit mode.
      
      Fixes PR38826.
      
      Patch by Iain Sandoe.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341530
      d2647fa6
    • Hans Wennborg's avatar
      Merging r340609: · f1c57fe8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340609 | ldionne | 2018-08-24 16:10:28 +0200 (Fri, 24 Aug 2018) | 13 lines
      
      [libc++] Fix handling of negated character classes in regex
      
      Summary:
      This commit fixes a regression introduced in r316095, where we don't match
      inverted character classes when there's no negated characrers in the []'s.
      
      rdar://problem/43060054
      
      Reviewers: mclow.lists, timshen, EricWF
      
      Subscribers: christof, dexonsmith, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50534
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341529
      f1c57fe8
    • Hans Wennborg's avatar
      Merging r341442: · 2359633b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341442 | bcain | 2018-09-05 04:15:54 +0200 (Wed, 05 Sep 2018) | 8 lines
      
      Add glibc_prereq to platform limits mmsghdr
      
      sendmmsg requires glibc >= 2.14.
      
      Fixes PR38589.
      
      Review: https://reviews.llvm.org/D51538
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341524
      2359633b
    • Hans Wennborg's avatar
      Merging r341416: · fbe05633
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341416 | annat | 2018-09-05 00:12:23 +0200 (Wed, 05 Sep 2018) | 11 lines
      
      [LV] First order recurrence phis should not be treated as uniform
      
      This is fix for PR38786.
      First order recurrence phis were incorrectly treated as uniform,
      which caused them to be vectorized as uniform instructions.
      
      Patch by Ayal Zaks and Orivej Desh!
      
      Reviewed by: Anna
      
      Differential Revision: https://reviews.llvm.org/D51639
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341523
      fbe05633
    • Hans Wennborg's avatar
      ReleaseNotes: ARM SVE asm/disasm support · 3f83c2fa
      Hans Wennborg authored
      llvm-svn: 341522
      3f83c2fa
    • Hans Wennborg's avatar
      ReleaseNotes: libc++ _LIBCPP_HIDE_FROM_ABI_PER_TU · d8c3a2aa
      Hans Wennborg authored
      llvm-svn: 341521
      d8c3a2aa
    • Hans Wennborg's avatar
      ReleaseNotes: support for new-pm passes in the opt tool · 4e3ef636
      Hans Wennborg authored
      llvm-svn: 341520
      4e3ef636
  4. 05 Sep, 2018 1 commit
  5. 04 Sep, 2018 6 commits
    • Hans Wennborg's avatar
      Merging r339253: · 3d3c7c2e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339253 | psmith | 2018-08-08 16:50:33 +0200 (Wed, 08 Aug 2018) | 7 lines
      
      Add missing REQUIRES x86 to tests.
      
      Add REQUIRES to tests that fail when an x86 backend is not present.
      
      Differential Revision: https://reviews.llvm.org/D50440
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341367
      3d3c7c2e
    • Hans Wennborg's avatar
      ReleaseNotes: tiny tweak · 9f802dde
      Hans Wennborg authored
      llvm-svn: 341359
      9f802dde
    • David Chisnall's avatar
      Add release notes for the new GNUstep Objective-C ABI. · ddeced08
      David Chisnall authored
      llvm-svn: 341355
      ddeced08
    • David Chisnall's avatar
      Disable the GNUstep v2 ABI on Windows. · 3ec022d0
      David Chisnall authored
      The code remains so that we can potentially reenable it in a point
      release, but the driver will reject it.  Several issues were raised
      during testing that made it clear that this was not quite ready for
      general consumption.
      
      Approved by: Hans Wennborg
      
      llvm-svn: 341354
      3ec022d0
    • Hans Wennborg's avatar
      Merging r340959: · 64b6c7b5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340959 | mareko | 2018-08-29 22:03:00 +0200 (Wed, 29 Aug 2018) | 9 lines
      
      AMDGPU: Handle 32-bit address wraparounds for SMRD opcodes
      
      Summary: This fixes GPU hangs with OpenGL bindless handle arithmetic.
      
      Reviewers: arsenm, nhaehnle
      
      Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51203
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341351
      64b6c7b5
    • Hans Wennborg's avatar
      Merging r341244: · 95cde841
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341244 | tstellar | 2018-08-31 22:15:31 +0200 (Fri, 31 Aug 2018) | 11 lines
      
      lit: Use sys.executable for executing builtin commands
      
      Summary:
      The python executable may not exist on all systems so use sys.executable
      instead.
      
      Reviewers: ddunbar, stella.stamenova
      
      Subscribers: delcypher, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51511
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341349
      95cde841
  6. 31 Aug, 2018 3 commits
  7. 30 Aug, 2018 9 commits
    • Hans Wennborg's avatar
      Merging r340900: · db7876c1
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340900 | hans | 2018-08-29 08:55:27 +0200 (Wed, 29 Aug 2018) | 6 lines
      
      LoopSink: Don't sink into blocks without an insertion point (PR38462)
      
      In the PR, LoopSink was trying to sink into a catchswitch block, which
      doesn't have a valid insertion point.
      
      Differential Revision: https://reviews.llvm.org/D51307
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341048
      db7876c1
    • Hans Wennborg's avatar
      Merging r340751: · 9a518079
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340751 | hans | 2018-08-27 17:55:39 +0200 (Mon, 27 Aug 2018) | 7 lines
      
      Use a lambda for calls to ::open in RetryAfterSignal
      
      In Bionic, open can be overloaded for _FORTIFY_SOURCE support, causing
      compile errors of RetryAfterSignal due to overload resolution. Wrapping
      the call in a lambda avoids this.
      
      Based on a patch by Chih-Wei Huang <cwhuang@linux.org.tw>!
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341044
      9a518079
    • Hans Wennborg's avatar
      Merging r340417: · 55aaea2e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340417 | hakzsam | 2018-08-22 18:08:48 +0200 (Wed, 22 Aug 2018) | 14 lines
      
      AMDGPU: bump AS.MAX_COMMON_ADDRESS to 6 since 32-bit addr space
      
      32-bit constant address space is declared as 6, so the
      maximum number of address spaces is 6, not 5.
      
      Fixes "LLVM ERROR: Pointer address space out of range".
      
      v5: rename MAX_COMMON_ADDRESS to MAX_AMDGPU_ADDRESS
      v4: - fix compilation issues
          - fix out of bounds access
      v3: use static_assert()
      v2: add a very simple test for 32-bit addr space
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106630
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341041
      55aaea2e
    • Hans Wennborg's avatar
      Merging r340416: · 612dde51
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340416 | hakzsam | 2018-08-22 18:08:43 +0200 (Wed, 22 Aug 2018) | 8 lines
      
      AMDGPU: fix existing alias rules for constant and global
      
      Constant and global may alias, also one rules table wasn't
      ordered correctly.
      
      Pinpointed by Matt.
      
      v2: add a test with swapped parameters
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341040
      612dde51
    • Hans Wennborg's avatar
      Merging r340455: · dc2d6384
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340455 | yhs | 2018-08-22 23:21:03 +0200 (Wed, 22 Aug 2018) | 38 lines
      
      bpf: fix an assertion in BPFAsmBackend applyFixup()
      
      Fix bug https://bugs.llvm.org/show_bug.cgi?id=38643
      
      In BPFAsmBackend applyFixup(), there is an assertion for FixedValue to be 0.
      This may not be true, esp. for optimiation level 0.
      For example, in the above bug, for the following two
      static variables:
        @bpf_map_lookup_elem = internal global i8* (i8*, i8*)*
            inttoptr (i64 1 to i8* (i8*, i8*)*), align 8
        @bpf_map_update_elem = internal global i32 (i8*, i8*, i8*, i64)*
            inttoptr (i64 2 to i32 (i8*, i8*, i8*, i64)*), align 8
      
      The static variable @bpf_map_update_elem will have a symbol
      offset of 8 and a FK_SecRel_8 with FixupValue 8 will cause
      the assertion if llvm is built with -DLLVM_ENABLE_ASSERTIONS=ON.
      
      The above relocations will not exist if the program is compiled
      with optimization level -O1 and above as the compiler optimizes
      those static variables away. In the below error message, -O2
      is suggested as this is the common practice.
      
      Note that FixedValue = 0 in applyFixup() does exist and is valid,
      e.g., for the global variable my_map in the above bug. The bpf
      loader will process them properly for map_id's before loading
      the program into the kernel.
      
      The static variables, which are not optimized away by compiler,
      may have FK_SecRel_8 relocation with non-zero FixedValue.
      
      The patch removed the offending assertion and will issue
      a hard error as below if the FixedValue in applyFixup()
      is not 0.
        $ llc -march=bpf -filetype=obj fixup.ll
        LLVM ERROR: Unsupported relocation: try to compile with -O2 or above,
            or check your static variable usage
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341038
      dc2d6384
    • Hans Wennborg's avatar
      Merging r340820: · 8f50cb6b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340820 | uabelho | 2018-08-28 14:40:11 +0200 (Tue, 28 Aug 2018) | 34 lines
      
      [CloneFunction] Constant fold terminators before checking single predecessor
      
      Summary:
      This fixes PR31105.
      
      There is code trying to delete dead code that does so by e.g. checking if
      the single predecessor of a block is the block itself.
      
      That check fails on a block like this
       bb:
         br i1 undef, label %bb, label %bb
      since that has two (identical) predecessors.
      
      However, after the check for dead blocks there is a call to
      ConstantFoldTerminator on the basic block, and that call simplifies the
      block to
       bb:
         br label %bb
      
      Therefore we now do the call to ConstantFoldTerminator before the check if
      the block is dead, so it can realize that it really is.
      
      The original behavior lead to the block not being removed, but it was
      simplified as above, and then we did a call to
          Dest->replaceAllUsesWith(&*I);
      with old and new being equal, and an assertion triggered.
      
      Reviewers: chandlerc, fhahn
      
      Reviewed By: fhahn
      
      Subscribers: eraman, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51280
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341037
      8f50cb6b
    • Hans Wennborg's avatar
      Merging r340839: · 7e8fa65f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340839 | bcain | 2018-08-28 18:23:39 +0200 (Tue, 28 Aug 2018) | 14 lines
      
      [debuginfo] generate debug info with asm+.file
      
      Summary:
      For assembly input files, generate debug info even when the .file
      directive is present, provided it does not include a file-number
      argument.  Fixes PR38695.
      
      Reviewers: probinson, sidneym
      
      Subscribers: aprantl, hiraditya, JDevlieghere, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51315
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341036
      7e8fa65f
    • Hans Wennborg's avatar
      Merging r338877, r338911 and r339165: · a3b989e1
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r338877 | nico | 2018-08-03 14:00:12 +0200 (Fri, 03 Aug 2018) | 19 lines
      
      lld-link: Fix subsystem inference for non-console apps on 32-bit, and fix entry point inference on 32-bit with /nodefaultlib
      
      LinkerDriver::inferSubsystem() used to do Symtab->findUnderscore("WinMain"),
      but WinMain is stdcall in 32-bit and is hence is called _WinMain@16. Instead,
      Symtab->findMangle(mangle("WinMain")) needs to be called.
      
      But since LinkerDriver::inferSubsystem() and LinkerDriver::findDefaultEntry()
      both need to call this, introduce a common helper function for this and call it
      from both places. (Also call it for "main" for consistency, even though
      findUnderscore() is enough for main since that's __cdecl on 32-bit).
      
      This also exposed a bug for /nodefaultlib entrypoint inference: The code here
      called findMangle(Sym) instead of findMangle(mangle(Sym)), again doing the
      wrong thing on 32-bit. Fix that too.
      
      While here, make Driver::mangle() a static free function.
      
      https://reviews.llvm.org/D50184
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r338911 | nico | 2018-08-03 20:32:44 +0200 (Fri, 03 Aug 2018) | 7 lines
      
      lld-link: Simplify LinkerDriver::findDefaultEntry()
      
      No intended behavior change. Not repeating the CRTStartup names makes fixing
      PR36523 simpler.
      
      https://reviews.llvm.org/D50253
      
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r339165 | nico | 2018-08-07 21:10:28 +0200 (Tue, 07 Aug 2018) | 26 lines
      
      lld-link: Take /SUBSYSTEM into account for automatic /ENTRY detection.
      
      If /subsystem:windows is passed, link.exe only looks for WinMain and wWinMain,
      and if /subsystem:console is passed it only looks for main and wmain. lld-link
      used to look for all 4 in both cases. This patch makes lld-link match
      link.exe's behavior.
      
      This requires that the subsystem is known by the time findDefaultEntry() gets
      called. findDefaultEntry() is called before the main link loop, so that the
      loop can mark the entry point as undefined. That means inferSubsystem() has to
      be called above the main loop as well. This in turn means /subsystem: from
      .drectve sections only has an effect on entry point inference for obj files
      passed to lld-link directly (and not in obj files found later in .lib files).
      link.exe seems to ignore /subsystem: for obj files from lib files completely
      (while in lld it's ignored only for entry point detection but it still
      overrides /subsystem: flags passed on the command line for the value that gets
      written in the output file).
      
      Also, if the subsytem isn't needed (e.g. when only writing a /def: lib file and
      not writing a coff file), link.exe doesn't complain if the subsystem isn't
      known, so both subsystem and entry point handling should be below the early
      return lld has for that case.
      
      Fixes PR36523.
      https://reviews.llvm.org/D50316
      
      ------------------------------------------------------------------------
      
      llvm-svn: 341035
      a3b989e1
    • Hans Wennborg's avatar
      Merging r340823: · fd068d62
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340823 | marshall | 2018-08-28 15:29:30 +0200 (Tue, 28 Aug 2018) | 1 line
      
      Use addressof instead of operator& in make_shared. Fixes PR38729. As a drive-by, make the same change in raw_storage_iterator (twice).
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341034
      fd068d62
  8. 29 Aug, 2018 1 commit
  9. 28 Aug, 2018 2 commits
    • Simon Atanasyan's avatar
      [docs][mips] Add MIPS specific release notes for LLD 7.0 · 7c9d3c67
      Simon Atanasyan authored
      Differential revision: https://reviews.llvm.org/D51309
      
      llvm-svn: 340803
      7c9d3c67
    • Hans Wennborg's avatar
      Merging r340758 and r340769: · 1a8a05a1
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340758 | vitalybuka | 2018-08-27 19:26:28 +0200 (Mon, 27 Aug 2018) | 5 lines
      
      Revert "[lsan] Do not check for leaks in the forked process"
      
      Users need leak reports in forks.
      
      This reverts commit r334036.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r340769 | vitalybuka | 2018-08-27 21:15:05 +0200 (Mon, 27 Aug 2018) | 3 lines
      
      [lsan] Check that leak sanitizer works in the forked process
      
      Regression test for PR38698
      ------------------------------------------------------------------------
      
      llvm-svn: 340801
      1a8a05a1
  10. 27 Aug, 2018 1 commit
    • Hans Wennborg's avatar
      Merging r340641: · 21f6f5c9
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340641 | stefanp | 2018-08-24 21:38:29 +0200 (Fri, 24 Aug 2018) | 9 lines
      
      [Exception Handling] Unwind tables are required for all functions that have an EH personality.
      
      This patch is for defect:
      https://bugs.llvm.org/show_bug.cgi?id=32611
      
      Functions may require unwind tables even if they are marked with the attribute
      nounwind. Any function with an EH personality may require an unwind table.
      
      Differential Revision: https://reviews.llvm.org/D50987
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340731
      21f6f5c9