Skip to content
  1. Dec 18, 2017
    • Peter Smith's avatar
      [ELF] Optimize Arm PLT sequences · 3c73a411
      Peter Smith authored
      A more efficient PLT sequence can be used when the distance between the
      .plt and the end of the .plt.got is less than 128 Megabytes, which is
      frequently true. We fall back to the old sequence when the offset is larger
      than 128 Megabytes. This gives us an alternative to forcing the longer
      entries with --long-plt as we gracefully fall back to it as needed. 
      
      See ELF for the ARM Architecture Appendix A for details of the PLT sequence.
      
      Differential Revision: https://reviews.llvm.org/D41246
      
      llvm-svn: 320987
      3c73a411
    • Sander de Smalen's avatar
      [TableGen][AsmMatcherEmitter] Only choose specific diagnostic for enabled instruction · 19097918
      Sander de Smalen authored
      Summary:
      When emitting a diagnostic for an invalid operand, a specific diagnostic
      should only be reported when the instruction being matched is actually
      enabled by the feature flags.
      
      Patch [3/4] in a series to add parsing of predicates and properly parse SVE 
      ZIP1/ZIP2 instructions. This patch fixes bogus diagnostic messages for when
      the SVE feature is not specified.
      
      Reviewers: rengolin, craig.topper, olista01, sdardis, stoklund
      
      Reviewed By: olista01, sdardis
      
      Subscribers: fhahn, javed.absar, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D40362
      
      llvm-svn: 320986
      19097918
    • Pavel Labath's avatar
      Fix regression in jModulesInfo packet handling · 8c92c899
      Pavel Labath authored
      The recent UUID cleanups exposed a bug in the parsing code for the
      jModulesInfo response, which was passing wrong value for the second
      argument to UUID::SetFromStringRef (it passed the length of the string,
      whereas the correct value should be the number of decoded bytes we
      expect to receive).
      
      This was not picked up by tests, because they test with 16-byte uuids,
      for which the function happens to do the right thing even if the length
      does not match (if the length does not match, the function does not
      update m_num_uuid_bytes member, but that member is already 16 to begin
      with).
      
      I fix that and add a test with 20-byte uuid to catch if this regresses.
      I have also added more safeguards into the parsing code to fail if we
      cannot parse the entire uuid field we recieve. While testing the latter
      part, I noticed that the "negative" jModulesInfo tests were succeeding
      because we were sending malformed json (and not because the json
      contents was invalid), so I make those tests a bit more robuts as well.
      
      llvm-svn: 320985
      8c92c899
    • Pavel Labath's avatar
      llgs: Propagate the environment when launching the inferior from command line · 11e5917d
      Pavel Labath authored
      Summary:
      We were failing to propagate the environment when lldb-server was
      started with a pre-loaded process
      (e.g.: lldb-server gdbserver -- inferior --inferior_args)
      
      This patch makes sure the environment is propagated. Instead of adding a
      new GDBRemoteCommunicationServerLLGS::SetLaunchEnvironment function to
      complement SetLaunchArgs and SetLaunchFlags, I replace these with a
      more generic SetLaunchInfo, which can be used to set any launch-related
      property.
      
      The accompanying test also verifies that the server correctly terminates
      the connection after sending the exit packet (specifically, that it does
      not send the exit packet twice).
      
      Reviewers: clayborg, eugene
      
      Subscribers: lldb-commits, mgorny
      
      Differential Revision: https://reviews.llvm.org/D41070
      
      llvm-svn: 320984
      11e5917d
    • Max Kazantsev's avatar
      [LVI] Support for ashr in LVI · 1acab002
      Max Kazantsev authored
      Enhance LVI to analyze the ‘ashr’ binary operation. This leverages the infrastructure in ConstantRange for the ashr operation.
      
      Patch by Surya Kumari Jangala!
      
      Differential Revision: https://reviews.llvm.org/D40886
      
      llvm-svn: 320983
      1acab002
    • Stephan Bergmann's avatar
      Revert r320978 "No -fsanitize=function warning when calling noexcept function... · 0c352eb9
      Stephan Bergmann authored
      Revert r320978 "No -fsanitize=function warning when calling noexcept function through non-noexcept pointer in C++17"
      
      At least <http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-android/
      builds/6013/steps/annotate/logs/stdio> complains about
      __ubsan::__ubsan_handle_function_type_mismatch_abort (compiler-rt
      lib/ubsan/ubsan_handlers.cc) returning now despite being declared 'noreturn', so
      looks like a different approach is needed for the function_type_mismatch check
      to be called also in cases that may ultimately succeed.
      
      llvm-svn: 320982
      0c352eb9
    • Stephan Bergmann's avatar
      Revert r320977 "No -fsanitize=function warning when calling noexcept function... · 2635ea66
      Stephan Bergmann authored
      Revert r320977 "No -fsanitize=function warning when calling noexcept function through non-noexcept pointer in C++17"
      
      At least <http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-android/
      builds/6013/steps/annotate/logs/stdio> complains about
      __ubsan::__ubsan_handle_function_type_mismatch_abort (compiler-rt
      lib/ubsan/ubsan_handlers.cc) returning now despite being declared 'noreturn', so
      looks like a different approach is needed for the function_type_mismatch check
      to be called also in cases that may ultimately succeed.
      
      llvm-svn: 320981
      2635ea66
    • Diana Picus's avatar
      [ARM GlobalISel] Fix G_(UN)MERGE_VALUES handling after r319524 · 8ee540c0
      Diana Picus authored
      r319524 has made more G_MERGE_VALUES/G_UNMERGE_VALUES pairs legal than
      are supported by the rest of the pipeline. Restrict that to only the
      cases that we can currently handle: packing 32-bit values into 64-bit
      ones, when we have hardware FP.
      
      llvm-svn: 320980
      8ee540c0
    • Benjamin Kramer's avatar
      Constexprify LaneBitmask factory methods. · bc8fdaaf
      Benjamin Kramer authored
      This avoids global constructors when they're used in a global constant.
      
      llvm-svn: 320979
      bc8fdaaf
    • Stephan Bergmann's avatar
      No -fsanitize=function warning when calling noexcept function through non-noexcept pointer in C++17 · f4e4daea
      Stephan Bergmann authored
      As discussed in the mail thread <https://groups.google.com/a/isocpp.org/forum/
      #!topic/std-discussion/T64_dW3WKUk> "Calling noexcept function throug non-
      noexcept pointer is undefined behavior?", such a call should not be UB.
      However, Clang currently warns about it.
      
      There is no cheap check whether two function type_infos only differ in noexcept,
      so pass those two type_infos as additional data to the function_type_mismatch
      handler (with the optimization of passing a null "static callee type" info when
      that is already noexcept, so the additional check can be avoided anyway).  For
      the Itanium ABI (which appears to be the only one that happens to be used on
      platforms that support -fsanitize=function, and which appears to only record
      noexcept information for pointer-to-function type_infos, not for function
      type_infos themselves), we then need to check the mangled names for occurrence
      of "Do" representing "noexcept".
      
      This is the cfe part of a patch covering both cfe and compiler-rt.
      
      Differential Revision: https://reviews.llvm.org/D40720
      
      llvm-svn: 320978
      f4e4daea
    • Stephan Bergmann's avatar
      No -fsanitize=function warning when calling noexcept function through non-noexcept pointer in C++17 · c7121f6d
      Stephan Bergmann authored
      As discussed in the mail thread <https://groups.google.com/a/isocpp.org/forum/
      #!topic/std-discussion/T64_dW3WKUk> "Calling noexcept function throug non-
      noexcept pointer is undefined behavior?", such a call should not be UB.
      However, Clang currently warns about it.
      
      There is no cheap check whether two function type_infos only differ in noexcept,so pass those two type_infos as additional data to the function_type_mismatch 
      handler (with the optimization of passing a null "static callee type" info when that is already noexcept, so the additional check can be avoided anyway).  For
      the Itanium ABI (which appears to be the only one that happens to be used on
      platforms that support -fsanitize=function, and which appears to only record
      noexcept information for pointer-to-function type_infos, not for function
      type_infos themselves), we then need to check the mangled names for occurrence
      of "Do" representing "noexcept".
      
      This is the compiler-rt part of a patch covering both cfe and compiler-rt.
      
      Differential Revision: https://reviews.llvm.org/D40720
      
      llvm-svn: 320977
      c7121f6d
    • Max Kazantsev's avatar
      [ConstantRange] Support for ashr in ConstantRange computation · d792171e
      Max Kazantsev authored
      Extend the ConstantRange implementation to compute the range of possible values resulting from an arithmetic right shift operation.
      There will be a follow up patch to leverage this constant range infrastructure in LazyValueInfo.
      
      Patch by Surya Kumari Jangala!
      
      Differential Revision: https://reviews.llvm.org/D40881
      
      llvm-svn: 320976
      d792171e
    • Simon Dardis's avatar
      Revert "[mips] Fix the target specific instruction verifier" · f70af977
      Simon Dardis authored
      This reverts commit r320974. The commit message lacked the Differential Revison: line.
      
      llvm-svn: 320975
      f70af977
    • Simon Dardis's avatar
      [mips] Fix the target specific instruction verifier · c3c0d459
      Simon Dardis authored
      Fix an off by one error in the bounds checking for 'dinsu' and update
      the ranges in the test comments so that they are accurate.
      
      Reviewers: atanasyan
      
      https://reviews.llvm.org/D41183
      
      llvm-svn: 320974
      c3c0d459
    • Sander de Smalen's avatar
      [AArch64][SVE] Asm: Add ZIP1/ZIP2 instructions (predicate/data vectors) · fce0c1c4
      Sander de Smalen authored
      Summary: Patch [2/4] in a series to add parsing of predicates and properly parse SVE ZIP1/ZIP2 instructions.
      
      Reviewers: rengolin, kristof.beyls, fhahn, mcrosier, evandro
      
      Reviewed By: fhahn
      
      Subscribers: aemerson, javed.absar, llvm-commits, tschuett
      
      Differential Revision: https://reviews.llvm.org/D40361
      
      llvm-svn: 320973
      fce0c1c4
    • Sam McCall's avatar
      [clangd] in VSCode client, filter extensions properly and only accept file: URIs · 16d682b6
      Sam McCall authored
      Summary:
      The filtering wasn't previously working as intended - the string list is
      interpreted as a list of editor modes, not file extensions.
      (It happens to mostly work as "c" and "cpp" are the names of modes, but we're
      missing objective-c)
      
      The file: restriction is new - clangd needs to be able to convert URI<->path
      in order to determine how to build.
      
      Reviewers: hokein
      
      Subscribers: klimek, ilya-biryukov, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D41343
      
      llvm-svn: 320972
      16d682b6
    • Martin Bohme's avatar
      [X86] Use {{.*}} instead of hardcoded %1 in knot test. · 06997a76
      Martin Bohme authored
      This makes the test more resilient and consistent with the other tests
      introduced in r320919.
      
      llvm-svn: 320971
      06997a76
    • Sander de Smalen's avatar
      [AArch64][SVE] Asm: Add SVE predicate register definitions and parsing support · ce1e0975
      Sander de Smalen authored
      Summary: Patch [1/4] in a series to add parsing of predicates and properly parse SVE ZIP1/ZIP2 instructions.
      
      Reviewers: rengolin, kristof.beyls, fhahn, mcrosier, evandro, echristo, efriedma
      
      Reviewed By: fhahn
      
      Subscribers: aemerson, javed.absar, llvm-commits, tschuett
      
      Differential Revision: https://reviews.llvm.org/D40360
      
      llvm-svn: 320970
      ce1e0975
    • Pavel Labath's avatar
      Fix FreeBSD build broken by r320966 · 45fda904
      Pavel Labath authored
      llvm-svn: 320969
      45fda904
    • Eugene Leviant's avatar
      [ThinLTO] Remove unused code · c95b4960
      Eugene Leviant authored
      This is a re-commit of r320464, after patch for gold plugin
      was landed.
      
      llvm-svn: 320968
      c95b4960
    • Pavel Labath's avatar
      Add LLVMObject dependency to our ObjectFileELF plugin · 9b95b323
      Pavel Labath authored
      llvm-svn: 320967
      9b95b323
    • Pavel Labath's avatar
      Reduce x86 register context boilerplate. · a0e3c6f6
      Pavel Labath authored
      Summary:
      The x86 FPR struct was defined as a struct containing a union between
      two members: XSAVE and FXSAVE. This patch makes FPR a union directly to
      remove one layer of indirection when trying to access the members.
      
      The initial layout of these two structs is identical, which is
      recognised by the fact that XSAVE has FXSAVE as its first member, so we
      also considered removing one more layer and leave FPR identical to XSAVE
      struct, but stopped short of doing that, as the FPR may be used to store
      different layouts in the future (e.g., ones generated by the FSAVE
      instruction).
      
      Reviewers: clayborg, krytarowski
      
      Subscribers: emaste, lldb-commits
      
      Differential Revision: https://reviews.llvm.org/D41245
      
      llvm-svn: 320966
      a0e3c6f6
    • Tim Northover's avatar
      AArch64: work around how Cyclone handles "movi.2d vD, #0". · 9097a07e
      Tim Northover authored
      For Cylone, the instruction "movi.2d vD, #0" is executed incorrectly in some rare
      circumstances. Work around the issue conservatively by avoiding the instruction entirely.
      
      This patch changes CodeGen so that problematic instructions are never
      generated, and the AsmParser so that an equivalent instruction is used (with a
      warning).
      
      llvm-svn: 320965
      9097a07e
    • Igor Laevsky's avatar
      7bd3fb15
    • Sam Parker's avatar
      [ARM] Adjust test checks · fd967f2f
      Sam Parker authored
      Correct the CHECK-LABELS of a couple of dag combine tests.
      
      llvm-svn: 320963
      fd967f2f
    • Sam Parker's avatar
      [DAGCombine] Move AND nodes to multiple load leaves · 00804efd
      Sam Parker authored
      Search from AND nodes to find whether they can be propagated back to
      loads, so that the AND and load can be combined into a narrow load.
      We search through OR, XOR and other AND nodes and all bar one of the
      leaves are required to be loads or constants. The exception node then
      needs to be masked off meaning that the 'and' isn't removed, but the
      loads(s) are narrowed still.
      
      Differential Revision: https://reviews.llvm.org/D41177
      
      llvm-svn: 320962
      00804efd
    • Pavel Labath's avatar
      NPL: Clean up handling of inferior exit · d8b3c1a1
      Pavel Labath authored
      Summary:
      lldb-server was sending the "exit" packet (W??) twice. This happened
      because it was handling both the pre-exit (PTRACE_EVENT_EXIT) and
      post-exit (WIFEXITED) as exit events. We had some code which was trying
      to detect when we've already sent the exit packet, but this stopped
      working quite a while ago.
      
      This never really caused any problems in practice because the client
      automatically closes the connection after receiving the first packet, so
      the only effect of this was some warning messages about extra packets
      from the lldb-server test suite, which were ignored because they didn't
      fail the test.
      
      The new test suite will be stricter about this, so I fix this issue
      ignoring the first event. I think this is the correct behavior, as the
      inferior is not really dead at that point, so it's premature to send the
      exit packet.
      
      There isn't an actual test yet which would verify the exit behavior, but
      in my next patch I will add a test which will also test this
      functionality.
      
      Reviewers: eugene
      
      Subscribers: lldb-commits
      
      Differential Revision: https://reviews.llvm.org/D41069
      
      llvm-svn: 320961
      d8b3c1a1
    • Clement Courbet's avatar
      [NFC][CodeGen][ExpandMemCmp] Fix documentation. · 6f42de30
      Clement Courbet authored
      llvm-svn: 320960
      6f42de30
    • Craig Topper's avatar
      [X86] Use mattr instead of mcpu in some of the cost model tests. · 7034d401
      Craig Topper authored
      Based on the names of the check lines, features seems more appropriate that cpu.
      
      Spotted while prototyping my patch to make 512-bit vectors illegal on SKX sometimes.
      
      llvm-svn: 320959
      7034d401
    • Hiroshi Inoue's avatar
      [SROA] Disable non-whole-alloca splits by default · c6faf154
      Hiroshi Inoue authored
      This patch introduce a switch to control splitting of non-whole-alloca slices with default off.
      The switch will be default on again after fixing an issue reported in PR35657.
      
      llvm-svn: 320958
      c6faf154
    • Craig Topper's avatar
      [X86] Fix mistake that I made when splitting up the setOperationAction calls recently. · 8e2837cc
      Craig Topper authored
      The block I moved things that need BWI and 512-bit or VLX is incorrectly qualified with just hasBWI || hasVLX. Here I've qualified it with hasBWI && (hasAVX512 || hasVLX) where the hasAVX512 will be replaced with allowing 512-bit vectors in an upcoming patch.
      
      llvm-svn: 320957
      8e2837cc
    • Serguei Katkov's avatar
      [CGP] Fix the handling select inst in complex addressing mode · b0b67a8d
      Serguei Katkov authored
      When we put the value in select placeholder we must pass
      the value through simplification tracker due to the value might
      be already simplified and erased.
      
      This is a fix for PR35658.
      
      Reviewers: john.brawn, uabelho
      Reviewed By: john.brawn
      Subscribers: llvm-commits
      Differential Revision: https://reviews.llvm.org/D41251
      
      llvm-svn: 320956
      b0b67a8d
    • Sanjay Patel's avatar
      [x86] add tests for finite libcall lowering (PR35672); NFC · 9da049fa
      Sanjay Patel authored
      llvm-svn: 320955
      9da049fa
    • Benjamin Kramer's avatar
      Refactor overridden methods iteration to avoid double lookups. · acfa339e
      Benjamin Kramer authored
      Convert most uses to range-for loops. No functionality change intended.
      
      llvm-svn: 320954
      acfa339e
  2. Dec 17, 2017
Loading