Skip to content
  1. Aug 15, 2019
    • Michael Pozulp's avatar
      [llvm-objdump] Add warning messages if disassembly + source for problematic inputs · 9abf668c
      Michael Pozulp authored
      Summary: Addresses https://bugs.llvm.org/show_bug.cgi?id=41905
      
      Reviewers: jhenderson, rupprecht, grimar
      
      Reviewed By: jhenderson, grimar
      
      Subscribers: RKSimon, MaskRay, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D62462
      
      llvm-svn: 368963
      9abf668c
    • Jonas Devlieghere's avatar
      Fix variable mismatch between signature and body · 706cd705
      Jonas Devlieghere authored
      I updated the signature to conform to the LLDB coding style but
      accidentally forgot to update the function body.
      
      llvm-svn: 368962
      706cd705
    • Michael Pozulp's avatar
      [llvm-objcopy] Move duplicate tablegen from objcopy and strip into one file · 9cf1eab7
      Michael Pozulp authored
      Summary: This avoids maintaining the same options in two different places.
      
      Reviewers: jhenderson, alexshap, rupprecht, MaskRay
      
      Reviewed By: jhenderson, rupprecht, MaskRay
      
      Subscribers: MaskRay, wolfgangp, jakehehrlich, abrachet, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65991
      
      llvm-svn: 368961
      9cf1eab7
    • Jonas Devlieghere's avatar
      [CMake] Check for C++14 instead of C++11 · 4d474e07
      Jonas Devlieghere authored
      Now that LLVM moved to C++14, `COMPILER_RT_HAS_STD_CXX11_FLAG` should
      become `COMPILER_RT_HAS_STD_CXX14_FLAG`.
      
      I ran into this issue when replacing llvm::make_unique with
      std::make_unique in an X-ray unit test. We are correctly passing
      `-std=c++14`, but this got overwritten further down the invocation by
      the compiler-rt flags. Given that this unit test is using LLVM headers,
      this is bound to break sooner than later, regardless of my change.
      
      Differential revision: https://reviews.llvm.org/D66271
      
      llvm-svn: 368960
      4d474e07
    • Jonas Devlieghere's avatar
      [NFC] Fix documentation for some utility classes. · a7d4cec4
      Jonas Devlieghere authored
      This fixes a few warnings emitted when compiling with -Wdocumentation.
      
      llvm-svn: 368959
      a7d4cec4
    • David L. Jones's avatar
      [Tooling] Add a hack to work around issues with matcher binding in r368681. · 4ed5521c
      David L. Jones authored
      The change in r368681 contains a (probably unintentional) behavioral change for
      rewrite rules with a single matcher. Previously, the single matcher would not
      need to be bound (`joinCaseMatchers` returned it directly), even though a final
      DynTypeMatcher was created and bound by `buildMatcher`. With the new change, a
      single matcher will be bound, in addition to the final binding (which is now in
      `buildMatchers`, but happens roughly at the same point in the overall flow).
      
      This patch simply duplicates the "final matcher" trick: it creates an extra
      DynTypedMatcher for each rewrite rule case matcher, and unconditionally makes it
      bindable. This is probably not the right long-term fix, but it does allow
      existing code to continue to work with this interface.
      
      Subscribers: cfe-commits, gribozavr, ymandel
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D66273
      
      llvm-svn: 368958
      4ed5521c
    • Jonas Devlieghere's avatar
      [NFC] Remove documentation comment to fix warning. · 10e3fa28
      Jonas Devlieghere authored
      Remove the @return to fix the warning: '@returns' command used in a
      comment that is attached to a function returning void [-Wdocumentation]
      
      llvm-svn: 368957
      10e3fa28
    • Craig Topper's avatar
      [X86] Remove some dead code and combine some repeated code that's left. · 14f75600
      Craig Topper authored
      If the width is 256 bits, then we must have AVX so the else here
      was unnecessary. Once that's removed then the >= 256 bit code is
      identical to the 128 bit code with a different VT so combine them.
      
      llvm-svn: 368956
      14f75600
    • Jonas Devlieghere's avatar
      [NFC] Update doc comment to fix warning. · d24e9eb9
      Jonas Devlieghere authored
      This fixes the warning: parameter 'EnableNullFPSuppression' not found in
      the function declaration [-Wdocumentation]
      
      llvm-svn: 368954
      d24e9eb9
    • Jonas Devlieghere's avatar
      Revert "Expose TailCallKind via the LLVM C API" · ed3b6d1b
      Jonas Devlieghere authored
      This is failing on several build bots. Reverting as discussed in
      https://reviews.llvm.org/D66061.
      
      llvm-svn: 368953
      ed3b6d1b
    • Jonas Devlieghere's avatar
      Revert "[compiler-rt] Migrate llvm::make_unique to std::make_unique" · d65f37db
      Jonas Devlieghere authored
      The X-ray unit tests in compiler-rt are overriding the C++ version by
      explicitly passing -std=c++11 in the compiler invocation. This poses a
      problem as these tests are including LLVM headers that can now use C++14
      features. I'm temporarily reverting this as I investigate the correct
      solution.
      
      llvm-svn: 368952
      d65f37db
    • Vitaly Buka's avatar
      gn build: Merge r368918 · 8f6a84d6
      Vitaly Buka authored
      llvm-svn: 368951
      8f6a84d6
    • Alex Langford's avatar
      [NFCI] Always initialize BugReport const fields · 0630bbc7
      Alex Langford authored
      Summary:
      Some compilers require that const fields of an object must be explicitly
      initialized by the constructor. I ran into this issue building with clang
      3.8 on Ubuntu 16.04.
      
      Reviewers: compnerd, Szelethus, NoQ
      
      Subscribers: cfe-commits, llvm-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D66265
      
      llvm-svn: 368950
      0630bbc7
    • Gor Nishanov's avatar
      [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem. · efe00934
      Gor Nishanov authored
      Summary:
      Fixes https://bugs.llvm.org/show_bug.cgi?id=36578 and https://bugs.llvm.org/show_bug.cgi?id=36296.
      Supersedes: https://reviews.llvm.org/D55966
      
      One of the fundamental transformation that CoroSplit pass performs before splitting the coroutine is to find which values need to survive between suspend and resume and provide a slot for them in the coroutine frame to spill and restore the value as needed.
      
      Coroutine frame becomes available once the storage for it was allocated and that point is marked in the pre-split coroutine with a llvm.coro.begin intrinsic.
      
      FE normally puts all of the user-authored code that would be accessing those values after llvm.coro.begin, however, sometimes instructions accessing those values would end up prior to coro.begin. For example, writing out a value of the parameter into the alloca done by the FE or instructions that are added by the optimization passes such as SROA when it rewrites allocas.
      
      Prior to this change, CoroSplit pass would try to move instructions that may end up accessing the values in the coroutine frame after CoroBegin. However it would run into problems (report_fatal_error) if some of the values would be used both in the allocation function (for example allocator is passed as a parameter to a coroutine) and in the use-authored body of the coroutine.
      
      To handle this case and to simplify the instruction moving logic, this change removes all of the instruction moving. Instead, we only change the uses of the spilled values that are dominated by coro.begin and leave other instructions intact.
      
      Before:
      
      ```
      %var = alloca i32
      %1 = getelementptr .. %var; ; will move this one after coro.begin
      %f = call i8* @llvm.coro.begin(
      ```
      
      After:
      
      ```
      %var = alloca i32
      %1 = getelementptr .. %var; stays put
      %f = call i8* @llvm.coro.begin(
      ```
      If we discover that there is a potential write into an alloca, prior to coro.begin we would copy its value from the alloca into the spill slot in the coroutine frame.
      
      Before:
      
      ```
      %var = alloca i32
      store .. %var ; will move this one after coro.begin
      %f = call i8* @llvm.coro.begin(
      ```
      
      After:
      
      ```
      %var = alloca i32
      store .. %var ;stays put
      %f = call i8* @llvm.coro.begin(
      %tmp = load %var
      store %tmp, %spill.slot.for.var
      ```
      
      Note: This change does not handle array allocas as that is something that C++ FE does not produce, but, it can be added in the future if need arises
      
      Reviewers: llvm-commits, modocache, ben-clayton, tks2103, rjmccall
      
      Reviewed By: modocache
      
      Subscribers: bartdesmet
      
      Differential Revision: https://reviews.llvm.org/D66230
      
      llvm-svn: 368949
      efe00934
    • Julian Lettner's avatar
      [sanitizer_common] Replace forkpty with posix_spawn on Darwin · 399408a9
      Julian Lettner authored
      On Darwin, we currently use forkpty to communicate with the "atos"
      symbolizer. There are several problems that fork[pty] has, e.g. that
      after fork, interceptors are still active and this sometimes causes
      crashes or hangs. This is especially problematic for TSan, which uses
      interceptors for OS-provided locks and mutexes, and even Libc functions
      use those.
      
      This patch replaces forkpty with posix_spawn on Darwin. Since
      posix_spawn doesn't fork (at least on Darwin), the interceptors are not
      a problem. Another benefit is that we'll handle post-fork failures (e.g.
      sandbox disallows "exec") gracefully now.
      
      Related revisions and previous attempts that were blocked by or had to
      be revered due to test failures:
      https://reviews.llvm.org/D48451
      https://reviews.llvm.org/D40032
      
      Reviewed By: kubamracek
      
      Differential Revision: https://reviews.llvm.org/D65253
      
      llvm-svn: 368947
      399408a9
    • Jonas Devlieghere's avatar
      [compiler-rt] Migrate llvm::make_unique to std::make_unique · 5edd6843
      Jonas Devlieghere authored
      Now that we've moved to C++14, we no longer need the llvm::make_unique
      implementation from STLExtras.h. This patch is a mechanical replacement
      of (hopefully) all the llvm::make_unique instances across the monorepo.
      
      Differential revision: https://reviews.llvm.org/D66259
      
      llvm-svn: 368946
      5edd6843
    • Robert Widmann's avatar
      Expose TailCallKind via the LLVM C API · 708c4605
      Robert Widmann authored
      Summary: This exposes `CallInst`'s tail call kind via new `LLVMGetTailCallKind` and `LLVMSetTailCallKind` functions. The motivation for this is to be able to see `musttail` for languages that require mandatory tail calls for correctness. Today only the weaker `LLVMSetTail` is exposed and there is no way to set `GuaranteedTailCallOpt` via the C API.
      
      Reviewers: CodaFi, jyknight, deadalnix, rnk
      
      Reviewed By: CodaFi
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66061
      
      llvm-svn: 368945
      708c4605
    • Jonas Devlieghere's avatar
      [clang-tools-extra] Migrate llvm::make_unique to std::make_unique · 1c705d9c
      Jonas Devlieghere authored
      Now that we've moved to C++14, we no longer need the llvm::make_unique
      implementation from STLExtras.h. This patch is a mechanical replacement
      of (hopefully) all the llvm::make_unique instances across the monorepo.
      
      Differential revision: https://reviews.llvm.org/D66259
      
      llvm-svn: 368944
      1c705d9c
    • Jonas Devlieghere's avatar
      [Clang] Migrate llvm::make_unique to std::make_unique · 2b3d49b6
      Jonas Devlieghere authored
      Now that we've moved to C++14, we no longer need the llvm::make_unique
      implementation from STLExtras.h. This patch is a mechanical replacement
      of (hopefully) all the llvm::make_unique instances across the monorepo.
      
      Differential revision: https://reviews.llvm.org/D66259
      
      llvm-svn: 368942
      2b3d49b6
    • Richard Smith's avatar
      5cd312d3
    • Richard Smith's avatar
      Fix handling of class member access into a vector type. · 9e77f524
      Richard Smith authored
      When handling a member access into a non-class, non-ObjC-object type, we
      would perform a lookup into the surrounding scope as if for an
      unqualified lookup. If the member access was followed by a '<' and this
      lookup (or the typo-correction for it) found a template name, we'd treat
      the member access as naming that template.
      
      Now we treat such accesses as never naming a template if the type of the
      object expression is of vector type, so that vector component accesses
      are never misinterpreted as naming something else. This is not entirely
      correct, since it is in fact valid to name a template from the enclosing
      scope in this context, when invoking a pseudo-destructor for the vector
      type via an alias template, but that's very much a corner case, and this
      change leaves that case only as broken as the corresponding case for
      Objective-C types is.
      
      This incidentally adds support for dr2292, which permits a 'template'
      keyword at the start of a member access naming a pseudo-destructor.
      
      llvm-svn: 368940
      9e77f524
    • JF Bastien's avatar
      Remove LVALUE / RVALUE workarounds · cad8356d
      JF Bastien authored
      Summary: LLVM_HAS_RVALUE_REFERENCE_THIS and LLVM_LVALUE_FUNCTION shouldn't be needed anymore because the minimum compiler versions support them.
      
      Subscribers: jkorous, dexonsmith, cfe-commits, llvm-commits, hans, thakis, chandlerc, rnk
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D66240
      
      llvm-svn: 368939
      cad8356d
    • Johannes Doerfert's avatar
    • Shafik Yaghmour's avatar
      Improve anonymous class heuristic in ClangASTContext::CreateRecordType · 62abe494
      Shafik Yaghmour authored
      Summary:
      Currently the heuristic used in ClangASTContext::CreateRecordType to identify an anonymous class is that there is that name is a nullptr or simply a null terminator. This heuristic is not accurate since it will also sweep up unnamed classes and lambdas. The improved heuristic relies on the requirement that an anonymous class must be contained within a class.
      
      Differential Revision: https://reviews.llvm.org/D66175
      
      llvm-svn: 368937
      62abe494
    • Jonas Devlieghere's avatar
      [LLD] Migrate llvm::make_unique to std::make_unique · 6ba79920
      Jonas Devlieghere authored
      Now that we've moved to C++14, we no longer need the llvm::make_unique
      implementation from STLExtras.h. This patch is a mechanical replacement
      of (hopefully) all the llvm::make_unique instances across the monorepo.
      
      Differential revision: https://reviews.llvm.org/D66259
      
      llvm-svn: 368936
      6ba79920
    • Jonas Devlieghere's avatar
      [Polly] Migrate llvm::make_unique to std::make_unique · 736259e3
      Jonas Devlieghere authored
      Now that we've moved to C++14, we no longer need the llvm::make_unique
      implementation from STLExtras.h. This patch is a mechanical replacement
      of (hopefully) all the llvm::make_unique instances across the monorepo.
      
      Differential revision: https://reviews.llvm.org/D66259
      
      llvm-svn: 368935
      736259e3
    • Diego Trevino Ferrer's avatar
      [Bugpoint redesign] Modified Functions pass to consider declarations · 3755579f
      Diego Trevino Ferrer authored
      Summary: This modification was put in place so the `ReduceMetadata` pass doesn't have to consider debug functions
      
      Reviewers: dblaikie
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66257
      
      llvm-svn: 368934
      3755579f
    • Jonas Devlieghere's avatar
      [LLDB] Migrate llvm::make_unique to std::make_unique · a8f3ae7c
      Jonas Devlieghere authored
      Now that we've moved to C++14, we no longer need the llvm::make_unique
      implementation from STLExtras.h. This patch is a mechanical replacement
      of (hopefully) all the llvm::make_unique instances across the monorepo.
      
      Differential revision: https://reviews.llvm.org/D66259
      
      llvm-svn: 368933
      a8f3ae7c
    • Jordan Rupprecht's avatar
      [docs] Fix sphinx doc generation errors · 1737f713
      Jordan Rupprecht authored
      Summary:
      Errors fixed:
       - GettingStarted: Duplicate explicit target name: "cmake"
       - GlobalISel: Unexpected indentation
       - LoopTerminology: Explicit markup ends without a blank line; unexpected unindent
       - ORCv2: Definition list ends without a blank line; unexpected unindent
       - Misc: document isn't included in any toctree
      
      Verified that a clean docs build (`rm -rf docs/ && ninja docs-llvm-html`) passes with no errors. Spot checked the individual pages to make sure they look OK.
      
      Reviewers: thakis, dsanders
      
      Reviewed By: dsanders
      
      Subscribers: arphaman, llvm-commits, lhames, rovka, dsanders, reames
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66183
      
      llvm-svn: 368932
      1737f713
    • Johannes Doerfert's avatar
      [Attributor][NFC] Make debug output consistent · 5304b72a
      Johannes Doerfert authored
      llvm-svn: 368931
      5304b72a
  2. Aug 14, 2019
Loading