Skip to content
  1. Nov 15, 2018
  2. Oct 30, 2018
  3. Oct 01, 2018
  4. Sep 11, 2018
  5. Sep 10, 2018
  6. Sep 07, 2018
  7. Sep 06, 2018
  8. Sep 05, 2018
  9. Sep 04, 2018
    • Hans Wennborg's avatar
      Merging r340959: · 8111e8d5
      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
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341351 91177308-0d34-0410-b5e6-96231b3b80d8
      8111e8d5
    • Hans Wennborg's avatar
      Merging r341244: · 1a558539
      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
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341349 91177308-0d34-0410-b5e6-96231b3b80d8
      1a558539
  10. Aug 31, 2018
  11. Aug 30, 2018
    • Hans Wennborg's avatar
      Merging r340900: · 224408d4
      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
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341048 91177308-0d34-0410-b5e6-96231b3b80d8
      224408d4
    • Hans Wennborg's avatar
      Merging r340751: · c19f813b
      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>!
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341044 91177308-0d34-0410-b5e6-96231b3b80d8
      c19f813b
    • Hans Wennborg's avatar
      Merging r340417: · 9f228310
      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
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341041 91177308-0d34-0410-b5e6-96231b3b80d8
      9f228310
    • Hans Wennborg's avatar
      Merging r340416: · 8be23755
      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
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341040 91177308-0d34-0410-b5e6-96231b3b80d8
      8be23755
    • Hans Wennborg's avatar
      Merging r340455: · 400322b0
      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>
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341038 91177308-0d34-0410-b5e6-96231b3b80d8
      400322b0
    • Hans Wennborg's avatar
      Merging r340820: · 4a194874
      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
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341037 91177308-0d34-0410-b5e6-96231b3b80d8
      4a194874
    • Hans Wennborg's avatar
      Merging r340839: · 3d019e21
      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
      
      
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341036 91177308-0d34-0410-b5e6-96231b3b80d8
      3d019e21
  12. Aug 27, 2018
    • Hans Wennborg's avatar
      Merging r340641: · d6e617b9
      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
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340731 91177308-0d34-0410-b5e6-96231b3b80d8
      d6e617b9
    • Hans Wennborg's avatar
      Merging r340691: · 4a4bff54
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r340691 | codafi | 2018-08-25 21:54:39 +0200 (Sat, 25 Aug 2018) | 11 lines
      
      [C-API][DIBuilder] Use NameLen in LLVMDIBuilderCreateParameterVariable
      
      Summary: NameLen wasn't being used and caused the parameters in gdb to very long, in my case, crashes in others. Please also perform the correct magical incarnations to have this be applied to the LLVM 7 branch.
      
      Reviewers: whitequark, CodaFi
      
      Reviewed By: CodaFi
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51141
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340724 91177308-0d34-0410-b5e6-96231b3b80d8
      4a4bff54
  13. Aug 21, 2018
    • Hans Wennborg's avatar
      Merging r340303: · 9df0977d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r340303 | ctopper | 2018-08-21 19:15:33 +0200 (Tue, 21 Aug 2018) | 9 lines
      
      [BypassSlowDivision] Teach bypass slow division not to interfere with div by constant where constants have been constant hoisted, but not moved from their basic block
      
      DAGCombiner doesn't pay attention to whether constants are opaque before doing the div by constant optimization. So BypassSlowDivision shouldn't introduce control flow that would make DAGCombiner unable to see an opaque constant. This can occur when a div and rem of the same constant are used in the same basic block. it will be hoisted, but not leave the block.
      
      Longer term we probably need to look into the X86 immediate cost model used by constant hoisting and maybe not mark div/rem immediates for hoisting at all.
      
      This fixes the case from PR38649.
      
      Differential Revision: https://reviews.llvm.org/D51000
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340359 91177308-0d34-0410-b5e6-96231b3b80d8
      9df0977d
    • Hans Wennborg's avatar
      Merging r339674: · 57aa5d99
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339674 | aemerson | 2018-08-14 14:04:25 +0200 (Tue, 14 Aug 2018) | 3 lines
      
      [GlobalISel][IRTranslator] Fix a bug in handling repeating struct types during argument lowering.
      
      Differential Revision: https://reviews.llvm.org/D49442
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340358 91177308-0d34-0410-b5e6-96231b3b80d8
      57aa5d99
    • Hans Wennborg's avatar
      Merging r340158: · fbe33461
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r340158 | s.desmalen | 2018-08-20 11:16:59 +0200 (Mon, 20 Aug 2018) | 16 lines
      
      [AArch64][SVE] Asm: Add SVE System registers
      
      This patch adds system registers for controlling aspects of SVE:
      - ZCR_EL1  (r/w)   visible at EL1 and EL0.
      - ZCR_EL2  (r/w)   visible at EL2 and Non-secure EL1 and EL0.
      - ZCR_EL3  (r/w)   visible at all exception levels.
      
      and a system register identifying SVE:
      - ID_AA64ZFR0_EL1  (r)  SVE Feature identifier.
      
      Reviewers: SjoerdMeijer, samparker, pbarrio, fhahn, javed.absar
      
      Reviewed By: SjoerdMeijer
      
      Differential Revision: https://reviews.llvm.org/D50885
      
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340355 91177308-0d34-0410-b5e6-96231b3b80d8
      fbe33461
    • Hans Wennborg's avatar
      Merging r339091: · 9a7960e4
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339091 | stella.stamenova | 2018-08-07 06:08:46 +0200 (Tue, 07 Aug 2018) | 12 lines
      
      [lit, tests] Fix failing lit test: shtest-format.py
      
      Summary:
      The problem here is that on windows double quotes are used for paths (usually) while single quotes are not. This is not generally a problem for the tests because the lit infrastructure tends to treat both the same. One (and possibly only) exception is when some tests are run in an external shell such as some of the shtest-format tests. In this case on windows the path to python was not created correctly because it had single quotes and the test failed.
      
      This same test is already failing with python 3 which is why our testing missed the new failure. This patch will take care of the immediate failure with python 2 and I'll send a follow up for the python 3 failure.
      
      Reviewers: asmith, zturner
      
      Subscribers: delcypher, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50373
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340349 91177308-0d34-0410-b5e6-96231b3b80d8
      9a7960e4
    • Hans Wennborg's avatar
      Merging r339895 and r339896: · 1215ec58
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339895 | niravd | 2018-08-16 18:31:14 +0200 (Thu, 16 Aug 2018) | 13 lines
      
      [MC][X86] Enhance X86 Register expression handling to more closely match GCC.
      
      Allow the comparison of x86 registers in the evaluation of assembler
      directives. This generalizes and simplifies the extension from r334022
      to catch another case found in the Linux kernel.
      
      Reviewers: rnk, void
      
      Reviewed By: rnk
      
      Subscribers: hiraditya, nickdesaulniers, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50795
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r339896 | d0k | 2018-08-16 18:50:23 +0200 (Thu, 16 Aug 2018) | 1 line
      
      [MC] Remove unused variable
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340329 91177308-0d34-0410-b5e6-96231b3b80d8
      1215ec58
    • Hans Wennborg's avatar
      Merging r339822: · 39ee0643
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339822 | carrot | 2018-08-16 00:08:26 +0200 (Thu, 16 Aug 2018) | 12 lines
      
      
      [CodeGenPrepare] Add BothExtension type to PromotedInsts
      
      This patch fixes PR38125.
      
      Instruction extension types are recorded in PromotedInsts, it can be used later in function canGetThrough. If an instruction has two users with different extension types, it will be inserted into PromotedInsts two times in function promoteOperandForOther. The second one overwrites the first one, and the final extension type is wrong, later causes problem in canGetThrough.
      
      This patch changes the simple bool extension type to 2-bit enum type, add a BothExtension type in addition to zero/sign extension. When an user sees BothExtension for an instruction, it actually knows nothing about how that instruction is extended.
      
      Differential Revision: https://reviews.llvm.org/D49512
      
      
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340294 91177308-0d34-0410-b5e6-96231b3b80d8
      39ee0643
  14. Aug 17, 2018
    • Hans Wennborg's avatar
      Merging r338841: · 98aa61ba
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r338841 | jmorse | 2018-08-03 12:13:35 +0200 (Fri, 03 Aug 2018) | 11 lines
      
      [Windows FS] Allow moving files in TempFile::keep
      
      In r338216 / D49860 TempFile::keep was extended to allow keeping across
      filesystems. The aim on Windows was to have this happen in rename_internal
      using the existing system API. However, to fix an issue and preserve the
      idea of "renaming" not being a move, put Windows keep-across-filesystem in
      TempFile::keep.
      
      Differential Revision: https://reviews.llvm.org/D50048
      
      
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@340030 91177308-0d34-0410-b5e6-96231b3b80d8
      98aa61ba
    • Hans Wennborg's avatar
      Merging r339945: · dff83e99
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339945 | ctopper | 2018-08-16 23:54:02 +0200 (Thu, 16 Aug 2018) | 9 lines
      
      [X86] In EFLAGS copy pass, don't emit EXTRACT_SUBREG instructions since we're after peephole
      
      Normally the peephole pass converts EXTRACT_SUBREG to COPY instructions. But we're after peephole so we can't rely on it to clean these up.
      
      To fix this, the eflags pass now emits a COPY with a subreg input.
      
      I also noticed that in 32-bit mode we need to constrain the input to the copy to ensure the subreg is valid. Otherwise we'll fail verify-machineinstrs
      
      Differential Revision: https://reviews.llvm.org/D50656
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@339999 91177308-0d34-0410-b5e6-96231b3b80d8
      dff83e99
    • Hans Wennborg's avatar
      Merging r339883: · e7782a92
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339883 | hans | 2018-08-16 17:12:12 +0200 (Thu, 16 Aug 2018) | 10 lines
      
      [cmake] Prevent LLVMgold.so from being unloaded on Linux
      
      Extend the fix from D40459 to also apply to modules such as the LLVM
      gold plugin. This is needed because current binutils master (and future
      binutils 2.32) calls dlclose() on bfd plugins as part of a recent fix
      for https://sourceware.org/bugzilla/show_bug.cgi?id=23460.
      
      Patch by Evangelos Foutras!
      
      Differential Revision: https://reviews.llvm.org/D50416
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@339993 91177308-0d34-0410-b5e6-96231b3b80d8
      e7782a92
    • Hans Wennborg's avatar
      Merging r339515: · 02e459e4
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339515 | d0k | 2018-08-12 13:43:03 +0200 (Sun, 12 Aug 2018) | 4 lines
      
      [InstSimplify] Guard against large shift amounts.
      
      These are always UB, but can happen for large integer inputs. Testing it
      is very fragile as -simplifycfg will nuke the UB top-down.
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@339985 91177308-0d34-0410-b5e6-96231b3b80d8
      02e459e4
  15. Aug 16, 2018
    • Hans Wennborg's avatar
      Merging r339769: · 2c9adfa4
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339769 | nemanjai | 2018-08-15 14:58:13 +0200 (Wed, 15 Aug 2018) | 12 lines
      
      [PowerPC] Don't run BV DAG Combine before legalization if it assumes legal types
      
      When trying to combine a DAG that builds a vector out of sign-extensions of
      vector extracts, the code assumes legal input types. Due to that, we have to
      disable this combine prior to legalization.
      In some cases, the DAG will look slightly different after legalization so
      account for that in the matching code.
      
      This is a fix for https://bugs.llvm.org/show_bug.cgi?id=38087
      
      Differential Revision: https://reviews.llvm.org/D49080
      
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@339859 91177308-0d34-0410-b5e6-96231b3b80d8
      2c9adfa4
    • Hans Wennborg's avatar
      Merging r339536: · f6ce3c5c
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339536 | ctopper | 2018-08-13 08:53:49 +0200 (Mon, 13 Aug 2018) | 3 lines
      
      [SelectionDAG] In PromoteFloatOp_BITCAST, insert a bitcast after the fp_to_fp16 in case the result type isn't a scalar integer.
      
      This is another variation of PR38533. In this case, the result type of the bitcast is legal and 16-bits wide, but not a scalar integer. So we need to emit the convert to i16 and then bitcast it to the true result type. This new bitcast will be further type legalized if necessary.
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@339857 91177308-0d34-0410-b5e6-96231b3b80d8
      f6ce3c5c
    • Hans Wennborg's avatar
      Merging r339535: · bb6ad814
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r339535 | ctopper | 2018-08-13 08:53:47 +0200 (Mon, 13 Aug 2018) | 5 lines
      
      [SelectionDAG] In PromoteIntRes_BITCAST, when the input is TypePromoteFloat, make sure the output type is scalar. For vectors, use a store and load of temporary.
      
      Previously if the result type was a vector, we emitted a FP_TO_FP16 with a vector result type which isn't valid.
      
      This is basically the opposite case of the root cause of PR38533.
      ------------------------------------------------------------------------
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@339856 91177308-0d34-0410-b5e6-96231b3b80d8
      bb6ad814