Skip to content
  1. Sep 18, 2019
    • Russell Gallop's avatar
      [cmake] Changes to get Windows self-host working with PGO · a84b200e
      Russell Gallop authored
      Fixes quoting of profile arguments to work on Windows
      Suppresses adding profile arguments to linker flags when using lld-link
      Avoids -fprofile-instr-use being added to rc.exe flags
      Removes duplicated adding of -fprofile-instr-use to linker flags (since
      r355541)
      Move handling LLVM_PROFDATA_FILE to HandleLLVMOptions.cmake
      
      Differential Revision: https://reviews.llvm.org/D62063
      
      llvm-svn: 372209
      a84b200e
    • Tim Renouf's avatar
      [AMDGPU] Allow FP inline constant in v_madak_f16 and v_fmaak_f16 · 17861171
      Tim Renouf authored
      Differential Revision: https://reviews.llvm.org/D67680
      
      Change-Id: Ic38f47cb2079c2c1070a441b5943854844d80a7c
      llvm-svn: 372208
      17861171
    • Guillaume Chatelet's avatar
      [Alignment] Add a None() member function · ef8ef127
      Guillaume Chatelet authored
      Summary:
      This will allow writing `if(A != llvm::Align::None())` which is clearer than `if(A > llvm::Align(1))`
      
      This is patch is part of a series to introduce an Alignment type.
      See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
      See this patch for the introduction of the type: https://reviews.llvm.org/D64790
      
      Reviewers: courbet
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D67697
      
      llvm-svn: 372207
      ef8ef127
    • Haojian Wu's avatar
      [clang-tidy] Fix a potential infinite loop in readability-isolate-declaration check. · d94c7bf0
      Haojian Wu authored
      Reviewers: ilya-biryukov
      
      Subscribers: xazax.hun, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D67654
      
      llvm-svn: 372206
      d94c7bf0
    • Dmitry Vyukov's avatar
      tsan: allow the Go runtime to return multiple stack frames for a single PC · d97865e5
      Dmitry Vyukov authored
      This fix allows tsan to report stack traces correctly even in the
      presence of mid-stack inlining by the Go compiler.
      
      See https://go-review.googlesource.com/c/go/+/195781 for the Go runtime side of this change.
      
      Author: randall77 (Keith Randall)
      Reviewed: https://reviews.llvm.org/D67671
      llvm-svn: 372205
      d97865e5
    • Sander de Smalen's avatar
      [AArch64][DebugInfo] Do not recompute CalleeSavedStackSize · dc2a7f5b
      Sander de Smalen authored
      This patch fixes a bug exposed by D65653 where a subsequent invocation
      of `determineCalleeSaves` ends up with a different size for the callee
      save area, leading to different frame-offsets in debug information.
      
      In the invocation by PEI, `determineCalleeSaves` tries to determine
      whether it needs to spill an extra callee-saved register to get an
      emergency spill slot. To do this, it calls 'estimateStackSize' and
      manually adds the size of the callee-saves to this. PEI then allocates
      the spill objects for the callee saves and the remaining frame layout
      is calculated accordingly.
      
      A second invocation in LiveDebugValues causes estimateStackSize to return
      the size of the stack frame including the callee-saves. Given that the
      size of the callee-saves is added to this, these callee-saves are counted
      twice, which leads `determineCalleeSaves` to believe the stack has
      become big enough to require spilling an extra callee-save as emergency
      spillslot. It then updates CalleeSavedStackSize with a larger value.
      
      Since CalleeSavedStackSize is used in the calculation of the frame
      offset in getFrameIndexReference, this leads to incorrect offsets for
      variables/locals when this information is recalculated after PEI.
      
      Reviewers: omjavaid, eli.friedman, thegameg, efriedma
      
      Reviewed By: efriedma
      
      Differential Revision: https://reviews.llvm.org/D66935
      
      llvm-svn: 372204
      dc2a7f5b
    • Raphael Isemann's avatar
      [lldb] Print better diagnostics for user expressions and modules · 1442efea
      Raphael Isemann authored
      Summary:
      Currently our expression evaluators only prints very basic errors that are not very useful when writing complex expressions.
      
      For example, in the expression below the user made a type error, but it's not clear from the diagnostic what went wrong:
      ```
      (lldb) expr printf("Modulos are:", foobar%mo1, foobar%mo2, foobar%mo3)
      error: invalid operands to binary expression ('int' and 'double')
      ```
      
      This patch enables full Clang diagnostics in our expression evaluator. After this patch the diagnostics for the expression look like this:
      
      ```
      (lldb) expr printf("Modulos are:", foobar%mo1, foobar%mo2, foobar%mo3)
      error: <user expression 1>:1:54: invalid operands to binary expression ('int' and 'float')
      printf("Modulos are:", foobar%mo1, foobar%mo2, foobar%mo3)
                                                     ~~~~~~^~~~
      ```
      
      To make this possible, we now emulate a user expression file within our diagnostics. This prevents that the user is exposed to
      our internal wrapper code we inject.
      
      Note that the diagnostics that refer to declarations from the debug information (e.g. 'note' diagnostics pointing to a called function)
      will not be improved by this as they don't have any source locations associated with them, so caret or line printing isn't possible.
      We instead just suppress these diagnostics as we already do with warnings as they would otherwise just be a context message
      without any context (and the original diagnostic in the user expression should be enough to explain the issue).
      
      Fixes rdar://24306342
      
      Reviewers: JDevlieghere, aprantl, shafik, #lldb
      
      Reviewed By: JDevlieghere, #lldb
      
      Subscribers: usaxena95, davide, jingham, aprantl, arphaman, kadircet, lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D65646
      
      llvm-svn: 372203
      1442efea
    • Ilya Biryukov's avatar
      Revert "r372201: [Support] Replace function with function_ref in writeFileAtomically. NFC" · 377aaa2e
      Ilya Biryukov authored
      function_ref causes calls to the function to be ambiguous, breaking
      compilation.
      
      Reverting for now.
      
      llvm-svn: 372202
      377aaa2e
    • Ilya Biryukov's avatar
      [Support] Replace function with function_ref in writeFileAtomically. NFC · edd5dfcd
      Ilya Biryukov authored
      Summary:
      The latter is slightly more efficient and communicates the intent of the
      API: writeFileAtomically does not own or copy the callback, it merely
      calls it at some point.
      
      Reviewers: jkorous
      
      Reviewed By: jkorous
      
      Subscribers: hiraditya, dexonsmith, jfb, llvm-commits, cfe-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D67584
      
      llvm-svn: 372201
      edd5dfcd
    • Craig Topper's avatar
      [X86] Break non-power of 2 vXi1 vectors into scalars for argument passing with avx512. · 93e1f73b
      Craig Topper authored
      This generates worse code, but matches what is done for avx2 and
      prevents crashes when more arguments are passed than we have
      registers for.
      
      llvm-svn: 372200
      93e1f73b
    • Craig Topper's avatar
      [X86] Add test case for passing a v17i1 vector with avx512 · 11082d53
      Craig Topper authored
      llvm-svn: 372199
      11082d53
    • Yonghong Song's avatar
      [BPF] Permit all user instructed offset relocatiions · c68ee0ce
      Yonghong Song authored
      Currently, not all user specified relocations
      (with clang intrinsic __builtin_preserve_access_index())
      will turn into relocations.
      
      In the current implementation, a __builtin_preserve_access_index()
      chain is turned into relocation only if the result of the clang
      intrinsic is used in a function call or a nonzero offset computation
      of getelementptr. For all other cases, the relocatiion request
      is ignored and the __builtin_preserve_access_index() is turned
      into regular getelementptr instructions.
      The main reason is to mimic bpf_probe_read() requirement.
      
      But there are other use cases where relocatable offset is
      generated but not used for bpf_probe_read(). This patch
      relaxed previous constraints when to generate relocations.
      Now, all user __builtin_preserve_access_index() will have
      relocations generated.
      
      Differential Revision: https://reviews.llvm.org/D67688
      
      llvm-svn: 372198
      c68ee0ce
    • Craig Topper's avatar
      [X86] Prevent assertion when calling a function that returns double with -mno-sse2 on x86-64. · 4a07336a
      Craig Topper authored
      As seen in the most recent updates to PR10498
      
      llvm-svn: 372197
      4a07336a
    • Jim Ingham's avatar
      Clean up this test. · d6cad393
      Jim Ingham authored
      I don't know what the intent of parts of this test were.  We set a
      bunch of breakpoints and ran from one to the other, doing "self.runCmd("thread backtrace")"
      then continuing to the next one.  We didn't actually verify the contents of the backtrace,
      nor that we hit the breakpoints we set in any particular order.  The only actual test was
      to run sel_getName at two of these stops.
      
      So I reduced the test to just stopping at the places where we were actually going to run
      an expression, and tested the expression.
      
      llvm-svn: 372196
      d6cad393
    • Francis Visoiu Mistrih's avatar
      [Remarks] Allow the RemarkStreamer to be used directly with a stream · ba2e752c
      Francis Visoiu Mistrih authored
      The filename in the RemarkStreamer should be optional to allow clients
      to stream remarks to memory or to existing streams.
      
      This introduces a new overload of `setupOptimizationRemarks`, and avoids
      enforcing the presence of a filename at different places.
      
      llvm-svn: 372195
      ba2e752c
    • Haibo Huang's avatar
      Cache PYTHON_EXECUTABLE for windows · 5f8a3270
      Haibo Huang authored
      Summary: This way it can be overwritten when cross compiling.
      
      Subscribers: mgorny, lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D67641
      
      llvm-svn: 372194
      5f8a3270
    • Jim Ingham's avatar
      TestFoundationDisassembly.py is not dependent on debug information. · f547cf12
      Jim Ingham authored
      This test is about disassembling symbols in a framework without debug information.
      So we don't need to run it once per debug info flavor.
      
      llvm-svn: 372193
      f547cf12
    • Jonas Devlieghere's avatar
      [ScriptInterpreter] Limit LLDB's globals to interactive mode. · 20b52c33
      Jonas Devlieghere authored
      Jim pointed out that the LLDB global variables should only be available
      in interactive mode. When used from a command for example, their values
      might be stale or not at all what the user expects. Therefore we want to
      explicitly make these variables unavailable.
      
      Differential revision: https://reviews.llvm.org/D67685
      
      llvm-svn: 372192
      20b52c33
    • Volodymyr Sapsai's avatar
      [Timers] Fix printing some `-ftime-report` sections twice. Fixes PR40328. · 6e353b4d
      Volodymyr Sapsai authored
      Starting from r324788 timer groups aren't cleared automatically when
      printed out. As a result some timer groups were printed one more time.
      For example, "Pass execution timing report" was printed again in
      `ManagedStatic<PassTimingInfo>` destructor, "DWARF Emission" in
      `ManagedStatic<Name2PairMap> NamedGroupedTimers` destructor.
      
      Fix by clearing timer groups manually.
      
      Reviewers: thegameg, george.karpenkov
      
      Reviewed By: thegameg
      
      Subscribers: aprantl, jkorous, dexonsmith, ributzka, aras-p, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D67683
      
      llvm-svn: 372191
      6e353b4d
    • Jonas Devlieghere's avatar
      [ScriptInterpreter] Remove ScriptInterpreterPythonImpl::Clear() (NFC) · abb3d137
      Jonas Devlieghere authored
      This method is never called.
      
      llvm-svn: 372190
      abb3d137
    • Teresa Johnson's avatar
      [PGO] Change hardcoded thresholds for cold/inlinehint to use summary · fd2044f2
      Teresa Johnson authored
      Summary:
      The PGO counter reading will add cold and inlinehint (hot) attributes
      to functions that are very cold or hot. This was using hardcoded
      thresholds, instead of the profile summary cutoffs which are used in
      other hot/cold detection and are more dynamic and adaptable. Switch
      to using the summary-based cold/hot detection.
      
      The hardcoded limits were causing some code that had a medium level of
      hotness (per the summary) to be incorrectly marked with a cold
      attribute, blocking inlining.
      
      Reviewers: davidxl
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D67673
      
      llvm-svn: 372189
      fd2044f2
    • Michael Kruse's avatar
      [CodeGen] Handle outlining of CopyStmts. · 241b02e7
      Michael Kruse authored
      Since the removal of extensions nodes from schedule trees in r362257 it
      is possible to emit parallel code for SCoPs containing
      matrix-multiplications. However, the code looking for references used in
      outlined statement was not prepared to handle CopyStmts introduced by
      the matrix-matrix multiplication detection.
      
      In this case, CopyStmts do not introduce references in addition to the
      ones captured by MemoryAccesses, i.e. we change the assertion to accept
      CopyStmts and add a regression test for this case.
      
      This fixes llvm.org/PR43164
      
      llvm-svn: 372188
      241b02e7
  2. Sep 17, 2019
Loading