1. Oct 10, 2019
    • David Greene's avatar
      [System Model] [TTI] Update cache and prefetch TTI interfaces · 2e6f6b4d
      David Greene authored
      Re-apply 9fdfb045/r365676 with fixes for PPC and Hexagon.  This involved
      moving defaults from TargetTransformInfoImplBase to MCSubtargetInfo.
      
      Rework the TTI cache and software prefetching APIs to prepare for the
      introduction of a general system model.  Changes include:
      
      - Marking existing interfaces const and/or override as appropriate
      - Adding comments
      - Adding BasicTTIImpl interfaces that delegate to a subtarget
        implementation
      - Moving the default TargetTransformInfoImplBase implementation to a default
        MCSubtarget implementation
      
      Only a handful of targets use these interfaces currently: AArch64, Hexagon, PPC
      and SystemZ.  AArch64 already has a custom subtarget implementation, so its
      custom TTI implementation is migrated to use the new facilities in BasicTTIImpl
      to invoke its custom subtarget implementation.  The custom TTI implementations
      continue to exist for the other targets with this change.  They are not moved
      over to subtarget-based implementations.
      
      The end goal is to have the default subtarget implementation defer to the system
      model defined by the target.  With this change, the default MCSubtargetInfo
      implementation essentially returns the defaults TargetTransformInfoImplBase used
      to return.  Existing users of TTI defaults will hit the defaults now in
      MCSubtargetInfo.  Targets that define their own custom TTI implementations won't
      use the BasicTTIImpl implementations that route to the subtarget.
      
      Once system models are in place for the targets that use these interfaces, their
      custom TTI implementations can be removed.
      
      Differential Revision: https://reviews.llvm.org/D63614
      
      llvm-svn: 374205
      2e6f6b4d
    • Volodymyr Sapsai's avatar
      [ObjC generics] Fix not inheriting type bounds in categories/extensions. · 02c2ab3d
      Volodymyr Sapsai authored
      When a category/extension doesn't repeat a type bound, corresponding
      type parameter is substituted with `id` when used as a type argument. As
      a result, in the added test case it was causing errors like
      
      > type argument 'T' (aka 'id') does not satisfy the bound ('id<NSCopying>') of type parameter 'T'
      
      We are already checking that type parameters should be consistent
      everywhere (see `checkTypeParamListConsistency`) and update
      `ObjCTypeParamDecl` to have correct underlying type. And when we use the
      type parameter as a method return type or a method parameter type, it is
      substituted to the bounded type. But when we use the type parameter as a
      type argument, we check `ObjCTypeParamType` that ignores the updated
      underlying type and remains `id`.
      
      Fix by desugaring `ObjCTypeParamType` to the underlying type, the same
      way we are doing with `TypedefType`.
      
      rdar://problem/54329242
      
      Reviewers: erik.pilkington, ahatanak
      
      Reviewed By: erik.pilkington
      
      Subscribers: jkorous, dexonsmith, ributzka, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D66696
      
      llvm-svn: 374202
      02c2ab3d
    • Jonas Devlieghere's avatar
      Re-land "[test] Split LLDB tests into API, Shell & Unit" · 87aa9c9e
      Jonas Devlieghere authored
      The original patch got reverted because it broke `check-lldb` on a clean
      build. This fixes that.
      
      llvm-svn: 374201
      87aa9c9e
    • Michael Liao's avatar
      [mangle] Fix mangling where an extra mangle context is required. · fd18e946
      Michael Liao authored
      Summary:
      - [Itanium C++ ABI][1], for certain contexts like default parameter and
        etc., mangling numbering will be local to the particular argument in
        which it appears.
      - However, for these cases, the mangle numbering context is allocated per
        expression evaluation stack entry. That causes, for example, two
        lambdas defined/used understand the same default parameter are
        numbered as the same value and, in turn, one of them is not generated
        at all.
      - In this patch, an extra mangle numbering context map is maintained in
        the AST context to map taht extra declaration context to its numbering
        context. So that, 2 different lambdas defined/used in the same default
        parameter are numbered differently.
      
      [1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html
      
      Reviewers: rsmith, eli.friedman
      
      Subscribers: cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D68715
      
      llvm-svn: 374200
      fd18e946
    • Yaxun Liu's avatar
      [HIP] Fix -save-temps · bc2350a3
      Yaxun Liu authored
      Currently clang does not save some of the intermediate file generated during device compilation for HIP when -save-temps is specified.
      
      This patch fixes that.
      
      Differential Revision: https://reviews.llvm.org/D68665
      
      llvm-svn: 374198
      bc2350a3
    • Lawrence D'Anna's avatar
      protect libedit and LLDB gui from receiving null FILE* streams · 609010d0
      Lawrence D'Anna authored
      Summary:
      We now have valid files that will return NULL from GetStream().
      libedit and the LLDB gui are the only places left that need FILE*
      streams.  Both are doing curses-like user interaction that only
      make sense with a real terminal anyway, so there is no need to convert
      them off of their use of FILE*.   But we should check for null streams
      before enabling these features.
      
      Reviewers: JDevlieghere, jasonmolenda, labath
      
      Reviewed By: JDevlieghere, labath
      
      Subscribers: lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D68677
      
      llvm-svn: 374197
      609010d0
    • David Blaikie's avatar
      DebugInfo: Shot in the dark attempt to fix ubsan error from r374122 · 74617470
      David Blaikie authored
      (specifying an underlying type for the enum might also be suitable - but
      this seems better/as good, since there's a clear expectation this can
      contain values other than the actual enumerators of this enum)
      
      llvm-svn: 374196
      74617470
    • Cameron Desrochers's avatar
      [LLDB] Fix for synthetic children memory leak · 89386daa
      Cameron Desrochers authored
      The lifetime of a ValueObject and all its derivative ValueObjects (children, clones, etc.) is managed by a ClusterManager. These objects are only destroyed when every shared pointer to any of the managed objects in the cluster is destroyed. This means that no object in the cluster can store a shared pointer to another object in the cluster without creating a memory leak of the entire cluster. However, some of the synthetic children front-end implementations do exactly this; this patch fixes that.
      
      Differential Revision: https://reviews.llvm.org/D68641
      
      llvm-svn: 374195
      89386daa
    • Julian Lettner's avatar
      [lit] Refactor ProgressDisplay · 72c7c21d
      Julian Lettner authored
      Move progress display to separate file.  Simplify some code paths.
      Decouple from other components via progress callback.  Remove unused
      `_Display` class.
      
      Reviewed By: serge-sans-paille
      
      Differential Revision: https://reviews.llvm.org/D68525
      
      llvm-svn: 374194
      72c7c21d
    • Antonio Afonso's avatar
      70aa6fb6
    • Eli Friedman's avatar
      [ARM] Fix arm_neon.h with -flax-vector-conversions=none · 4c4df441
      Eli Friedman authored
      Really, we were already 99% of the way there; just needed a couple minor
      fixes that affected 64-bit-only builtins.  Based on D61717.
      
      Note that the change to builtin_str changes the type of a few
      __builtin_neon_* intrinsics that had the "wrong" type.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=43341
      
      Differential Revision: https://reviews.llvm.org/D68683
      
      llvm-svn: 374191
      4c4df441
    • Sanjay Patel's avatar
      [InstCombine] add another test for gep inbounds; NFC · 0845ac73
      Sanjay Patel authored
      llvm-svn: 374190
      0845ac73
    • Thomas Lively's avatar
      [WebAssembly] Add builtin and intrinsic for v8x16.swizzle · 3419e90d
      Thomas Lively authored
      Summary:
      This clang builtin and corresponding LLVM intrinsic are necessary to
      expose the exact semantics of the underlying WebAssembly instruction
      to users. LLVM produces a poison value if the dynamic swizzle indices
      are greater than the vector size, but the WebAssembly instruction sets
      the corresponding output lane to zero. Users who depend on this
      behavior can safely use this builtin.
      
      Depends on D68527.
      
      Reviewers: aheejin, dschuff
      
      Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D68531
      
      llvm-svn: 374189
      3419e90d
    • Thomas Lively's avatar
      [WebAssembly] v8x16.swizzle and rewrite BUILD_VECTOR lowering · d5b7a4e2
      Thomas Lively authored
      Summary:
      Adds the new v8x16.swizzle SIMD instruction as specified at
      https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md#swizzling-using-variable-indices.
      In addition to adding swizzles as a candidate lowering in
      LowerBUILD_VECTOR, also rewrites and simplifies the lowering to
      minimize the number of replace_lanes necessary rather than trying to
      minimize code size. This leads to more uses of v128.const instead of
      splats, which is expected to increase performance.
      
      The new code will be easier to tune once V8 implements all the vector
      construction operations, and it will also be easier to add new
      candidate instructions in the future if necessary.
      
      Reviewers: aheejin, dschuff
      
      Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68527
      
      llvm-svn: 374188
      d5b7a4e2
    • Adrian Prantl's avatar
      Revert [test] Split LLDB tests into API, Shell & Unit · 0115c103
      Adrian Prantl authored
      as it appears to have broken check-lldb.
      
      This reverts r374184 (git commit 22314179)
      
      llvm-svn: 374187
      0115c103
    • Kevin P. Neal's avatar
      [FPEnv][NFC] Change test to conform to strictfp attribute rules. · 44e988ab
      Kevin P. Neal authored
      In particular, the function definition is not marked strictfp despite
      containing a function marked strictfp. Also, if any function call is marked
      strictfp then all function calls in that function must be marked.
      
      This change to move the one strictfp call to a new properly marked function
      meets all the new rules.
      
      Tested with a stricter version of D68233.
      
      Reviewed by:	spatel
      Approved by:	spatel
      Differential Revision:	https://reviews.llvm.org/D68713
      
      llvm-svn: 374186
      44e988ab
    • Adrian Prantl's avatar
      Remove obsolete parameter. · f98606f1
      Adrian Prantl authored
      llvm-svn: 374185
      f98606f1
    • Jonas Devlieghere's avatar
      [test] Split LLDB tests into API, Shell & Unit · 22314179
      Jonas Devlieghere authored
      LLDB has three major testing strategies: unit tests, tests that exercise
      the SB API though dotest.py and what we currently call lit tests. The
      later is rather confusing as we're now using lit as the driver for all
      three types of tests. As most of this grew organically, the directory
      structure in the LLDB repository doesn't really make this clear.
      
      The 'lit' tests are part of the root and among these tests there's a
      Unit and Suite folder for the unit and dotest-tests. This layout makes
      it impossible to run just the lit tests.
      
      This patch changes the directory layout to match the 3 testing
      strategies, each with their own directory and their own configuration
      file. This means there are now 3 directories under lit with 3
      corresponding targets:
      
       - API (check-lldb-api): Test exercising the SB API.
       - Shell (check-lldb-shell): Test exercising command line utilities.
       - Unit (check-lldb-unit): Unit tests.
      
      Finally, there's still the `check-lldb` target that runs all three test
      suites.
      
      Finally, this also renames the lit folder to `test` to match the LLVM
      repository layout.
      
      Differential revision: https://reviews.llvm.org/D68606
      
      llvm-svn: 374184
      22314179
    • Sanjay Patel's avatar
      [SLP] respect target register width for GEP vectorization (PR43578) · df14bd31
      Sanjay Patel authored
      We failed to account for the target register width (max vector factor)
      when vectorizing starting from GEPs. This causes vectorization to
      proceed to obviously illegal widths as in:
      https://bugs.llvm.org/show_bug.cgi?id=43578
      
      For x86, this also means that SLP can produce rogue AVX or AVX512
      code even when the user specifies a narrower vector width.
      
      The AArch64 test in ext-trunc.ll appears to be better using the
      narrower width. I'm not exactly sure what getelementptr.ll is trying
      to do, but it's testing with "-slp-threshold=-18", so I'm not worried
      about those diffs. The x86 test is an over-reduction from SPEC h264;
      this patch appears to restore the perf loss caused by SLP when using
      -march=haswell.
      
      Differential Revision: https://reviews.llvm.org/D68667
      
      llvm-svn: 374183
      df14bd31
    • Momchil Velikov's avatar
      [AArch64] Ensure no tagged memory is left in the unallocated portion of the · d037a5f0
      Momchil Velikov authored
      stack
      
      This patch makes sure that if we tag some memory, we untag that memory before
      the function returns/throws via any exit, reachable from the tag operation. For
      that we place the untag operation either at:
      
        a) the lifetime end call for the alloca, if that call post-dominates the
           lifetime start call (where the tag operation is placed), or it (the
           lifetime end call) dominates all reachable exits, otherwise
        b) at the reachable exits
      
      Differential Revision: https://reviews.llvm.org/D68469
      
      llvm-svn: 374182
      d037a5f0
    • Jason Liu's avatar
      [NFC] Remove files got accidentally upload in llvm-svn 374179 · 5448fac5
      Jason Liu authored
      llvm-svn: 374181
      5448fac5
    • Adrian Prantl's avatar
      Remove the is_mangled flag from Mangled and Symbol · 939411c1
      Adrian Prantl authored
      Testing whether a name is mangled or not is extremely cheap and can be
      done by looking at the first two characters. Mangled knows how to do
      it. On the flip side, many call sites that currently pass in an
      is_mangled determination do not know how to correctly do it (for
      example, they leave out Swift mangling prefixes).
      
      This patch removes this entry point and just forced Mangled to
      determine the mangledness of a string itself.
      
      Differential Revision: https://reviews.llvm.org/D68674
      
      llvm-svn: 374180
      939411c1
    • Jason Liu's avatar
      [AIX][XCOFF][NFC] Change the SectionLen field name of CSect Auxiliary entry to SectionOrLength. · 6453f700
      Jason Liu authored
      Summary:
      According the the XCOFF document,
      If
      Then
      XTY_SD
      x_scnlen contains the csect length.
      XTY_LD
      x_scnlen contains the symbol table index of the containing csect.
      XTY_CM
      x_scnlen contains the csect length.
      XTY_ER
      x_scnlen contains 0.
      
      Change the SectionLen member name to SectionOrLength is more reasonable.
      
      Authored By: DiggerLin
      
      Reviewed By: hubert.reinterpretcast
      
      Differential Revision: https://reviews.llvm.org/D68650
      
      llvm-svn: 374179
      6453f700
    • Jonas Devlieghere's avatar
      Re-land "[dsymutil] Fix handling of common symbols in multiple object files." · e7affcdb
      Jonas Devlieghere authored
      The original patch got reverted because it hit a long-standing legacy
      issue on Windows that prevents files from being named `com`. Thanks
      Kristina & Jeremy for pointing this out.
      
      llvm-svn: 374178
      e7affcdb
  2. Oct 09, 2019
    • Alina Sbirlea's avatar
      [MemorySSA] Make the use of moveAllAfterMergeBlocks consistent. · 7faa14a9
      Alina Sbirlea authored
      Summary:
      The rule for the moveAllAfterMergeBlocks API si for all instructions
      from `From` to have been moved to `To`, while keeping the CFG edges (and
      block terminators) unchanged.
      Update all the callsites for moveAllAfterMergeBlocks to follow this.
      
      Pending follow-up: since the same behavior is needed everytime, merge
      all callsites into one. The common denominator may be the call to
      `MergeBlockIntoPredecessor`.
      
      Resolves PR43569.
      
      Reviewers: george.burgess.iv
      
      Subscribers: Prazek, sanjoy.google, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68659
      
      llvm-svn: 374177
      7faa14a9
    • Mitchell Balan's avatar
      [NFC] Reverting changes from test commit. · 77c9736e
      Mitchell Balan authored
      llvm commit access test succeeded.
      
      llvm-svn: 374175
      77c9736e
    • Mitchell Balan's avatar
      [NFC] Test commit. · 791b0e41
      Mitchell Balan authored
      Testing llvm commit access only.
      
      llvm-svn: 374174
      791b0e41
    • Kostya Kortchinsky's avatar
      [scudo][standalone] Get statistics in a char buffer · f7b1489f
      Kostya Kortchinsky authored
      Summary:
      Following up on D68471, this CL introduces some `getStats` APIs to
      gather statistics in char buffers (`ScopedString` really) instead of
      printing them out right away. Ultimately `printStats` will just
      output the buffer, but that allows us to potentially do some work
      on the intermediate buffer, and can be used for a `mallocz` type
      of functionality. This allows us to pretty much get rid of all the
      `Printf` calls around, but I am keeping the function in for
      debugging purposes.
      
      This changes the existing tests to use the new APIs when required.
      
      I will add new tests as suggested in D68471 in another CL.
      
      Reviewers: morehouse, hctim, vitalybuka, eugenis, cferris
      
      Reviewed By: morehouse
      
      Subscribers: delcypher, #sanitizers, llvm-commits
      
      Tags: #llvm, #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D68653
      
      llvm-svn: 374173
      f7b1489f
    • Krasimir Georgiev's avatar
      [clang-format] Update noexcept reference qualifiers detection · ae1b7859
      Krasimir Georgiev authored
      Summary:
      r373165 fixed an issue where a templated noexcept member function with a
      reference qualifier would be indented more than expected:
      ```
      // Formatting produced with LLVM style with AlwaysBreakTemplateDeclarations: Yes
      
      // before r373165:
      struct f {
        template <class T>
            void bar() && noexcept {}
      };
      
      // after:
      struct f {
        template <class T>
        void bar() && noexcept {}
      };
      
      ```
      The way this is done is that in the AnnotatingParser in
      `lib/FormatTokenAnnotator.cpp` the determination of the usage of a `&` or `&&`
      (the line in determineTokenType
      
      ```
      Current.Type = determineStarAmpUsage(...
      ```
      is not performed in some cases anymore, combining with a few additional related
      checks afterwards. The net effect of these checks results in the `&` or `&&`
      token to start being classified as `TT_Unknown` in cases where before `r373165`
      it would be classified as `TT_UnaryOperator` or `TT_PointerOrReference` by
      `determineStarAmpUsage`.
      
      This inadvertently caused 2 classes of regressions I'm aware of:
      
      - The address-of `&` after a function assignment would be classified as
        `TT_Unknown`, causing spaces to surround it, disregarding style options:
      ```
      // before r373165:
      void (*fun_ptr)(void) = &fun;
      
      // after:
      void (*fun_ptr)(void) = & fun;
      ```
      
      - In cases where there is a function declaration list -- looking macro between
        a template line and the start of the function declaration, an `&` as part of
        the return type would be classified as `TT_Unknown`, causing spaces to
        surround it:
      ```
      // before r373165:
      template <class T>
      DEPRECATED("lala")
      Type& foo();
      
      // after:
      template <class T>
      DEPRECATED("lala")
      Type & foo();
      ```
      
      In these cases the problems are rooted in the skipping of the classification of
      a `&` (and similarly `&&`) by determineStarAmpUsage which effects the formatting
      decisions later in the pipeline.
      
      I've looked into the goal of r373165 and noticed that replacing `noexcept` with
      `const` in the given example produces no extra indentation with the old code:
      ```
      // before r373165:
      struct f {
        template <class T>
        int foo() & const {}
      };
      
      struct f {
        template <class T>
            int foo() & noexcept {}
      };
      ```
      
      I investigated how clang-format annotated these two examples differently to
      determine the places where the processing of both diverges in the pipeline.
      There were two places where the processing diverges, causing the extra indent in
      the `noexcept` case:
      1. The `const` is annotated as a `TT_TrailingAnnotation`, whereas `noexcept`
         is annotated as `TT_Unknown`. I've updated the `determineTokenType` function
         to account for this by adding a missing `tok:kw_noexcept` to the clause that
         marks a token as `TT_TrailingAnnotation`.
      2. The `&` in the second example is wrongly identified as `TT_BinaryOperator`
         in `determineStarAmpUsage`. This is the reason for the extra indentation --
         clang-format gets confused and thinks this is an expression.
         I've updated `determineStarAmpUsage` to check for `tok:kw_noexcept`.
      
      With these two updates in place, the additional parsing introduced by r373165
      becomes unnecessary and all added tests pass (with updates, as now clang-format
      respects the style configuration for spaces around the `&` in the test
      examples).
      I've removed these additions and added regression tests for the cases above.
      
      Reviewers: AndWass, MyDeveloperDay
      
      Reviewed By: MyDeveloperDay
      
      Subscribers: cfe-commits
      
      Tags: #clang, #clang-format
      
      Differential Revision: https://reviews.llvm.org/D68695
      
      llvm-svn: 374172
      ae1b7859
    • Simon Pilgrim's avatar
      Fix Wdocumentation unknown parameter warning. NFCI. · 604b7c22
      Simon Pilgrim authored
      llvm-svn: 374171
      604b7c22
    • Clement Courbet's avatar
      [llvm-exegesis] Ensure that ExecutableFunction are aligned. · 04a9a0eb
      Clement Courbet authored
      Summary: Experiments show that this is the alignment we get (for ELF+Linux), but let's ensure that we have it.
      
      Reviewers: gchatelet
      
      Subscribers: tschuett, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68703
      
      llvm-svn: 374170
      04a9a0eb
    • David Green's avatar
      Add and adjust saturating tests. NFC · fcc9c462
      David Green authored
      This adds some extra testing to the existing [su][add/sub]_sat X86 and AArch64
      tests and adds equivalent tests for ARM.
      
      llvm-svn: 374169
      fcc9c462
    • Kadir Cetinkaya's avatar
      [clangd] Make sure ReplyCallbacks are destroyed before RequestCancelersMutex · 9a3a87d1
      Kadir Cetinkaya authored
      Summary:
      After rL374163, replycallbacks might have a cancellable context, which
      will try to access RequestCancellers on destruction. See
      http://45.33.8.238/mac/1245/step_7.txt for a sample failure.
      
      Reviewers: sammccall
      
      Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits, thakis
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D68702
      
      llvm-svn: 374168
      9a3a87d1
    • Michael Liao's avatar
      [clang-offload-bundler] Support `.cui` and `.d`. · 2ae54aba
      Michael Liao authored
      Reviewers: tra, yaxunl
      
      Subscribers: cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D68663
      
      llvm-svn: 374167
      2ae54aba
    • Sjoerd Meijer's avatar
      [LV] Emitting SCEV checks with OptForSize · d1170dbe
      Sjoerd Meijer authored
      When optimising for size and SCEV runtime checks need to be emitted to check
      overflow behaviour, the loop vectorizer can run in this assert:
      
        LoopVectorize.cpp:2699: void llvm::InnerLoopVectorizer::emitSCEVChecks(
        llvm::Loop *, llvm::BasicBlock *): Assertion `!BB->getParent()->hasOptSize()
        && "Cannot SCEV check stride or overflow when opt
      
      We should not generate predicates while optimising for size because
      code will be generated for predicates such as these SCEV overflow runtime
      checks.
      
      This should fix PR43371.
      
      Differential Revision: https://reviews.llvm.org/D68082
      
      llvm-svn: 374166
      d1170dbe
    • Simon Atanasyan's avatar
      [mips] Rename local variable. NFC · dde0fe5d
      Simon Atanasyan authored
      llvm-svn: 374165
      dde0fe5d
    • Simon Atanasyan's avatar
      [mips] Split expandLoadImmReal into multiple methods. NFC · 83c8853f
      Simon Atanasyan authored
      The `expandLoadImmReal` handles four different and almost non-overlapping
      cases: loading a "single" float immediate into a GPR, loading a "single"
      float immediate into a FPR, and the same couple for a "double" float
      immediate.
      
      It's better to move each `else if` branch into separate methods.
      
      llvm-svn: 374164
      83c8853f
    • Kadir Cetinkaya's avatar
      [clangd] Propagate context into reply handlers · 1bb91093
      Kadir Cetinkaya authored
      llvm-svn: 374163
      1bb91093
    • Clement Courbet's avatar
      [llvm-exegesis] Fix r374158 · 64a83bb2
      Clement Courbet authored
      Some bots complain about missing 'class':
      
      LlvmState.h:70:40: error: declaration of ‘std::unique_ptr<const llvm::TargetMachine> llvm::exegesis::LLVMState::TargetMachine’ [-fpermissive]
         std::unique_ptr<const TargetMachine> TargetMachine;
      
      llvm-svn: 374162
      64a83bb2
    • Simon Pilgrim's avatar