Skip to content
  1. Dec 13, 2019
    • Momchil Velikov's avatar
      [AArch64] Emit PAC/BTI .note.gnu.property flags · d53e6186
      Momchil Velikov authored
      This patch make LLVM emit the processor specific program property types
      defined in AArch64 ELF spec
      https://developer.arm.com/docs/ihi0056/f/elf-for-the-arm-64-bit-architecture-aarch64-abi-2019q2-documentation
      
      A file containing no functions gets both property flags.  Otherwise, a property
      is set iff all the functions in the file have the corresponding attribute.
      
      Patch by Daniel Kiss and Momchil Velikov.
      
      Differential Revision: https://reviews.llvm.org/D71019
      d53e6186
    • Fangrui Song's avatar
      [MC][PowerPC] Fix a crash when redefining a symbol after .set · f99eedeb
      Fangrui Song authored
      Fix PR44284. This is probably not valid assembly but we should not crash.
      
      Reviewed By: luporl, #powerpc, steven.zhang
      
      Differential Revision: https://reviews.llvm.org/D71443
      f99eedeb
    • Mark Murray's avatar
      [ARM][MVE][Intrinsics] All vqdmulhq/vqrdmulhq tests should be for signed numbers. · a2cd4600
      Mark Murray authored
      Fix broken tests. I can't yet explain how they worked locally pre-commit.
      a2cd4600
    • Fangrui Song's avatar
    • Fangrui Song's avatar
      [ELF] Update st_size when merging a common symbol with a shared symbol · 69d10d28
      Fangrui Song authored
      When a common symbol is merged with a shared symbol, increase st_size if
      the shared symbol has a larger st_size. At runtime, the executable's
      symbol overrides the shared symbol.  The shared symbol may be created
      from common symbols in a previous link.  This rule makes sure we pick
      the largest size among all common symbols.
      
      This behavior matches GNU ld. See
      https://sourceware.org/bugzilla/show_bug.cgi?id=25236 for discussions.
      
      A shared symbol does not hold alignment constraints. Ignore the
      alignment update.
      
      Reviewed By: peter.smith
      
      Differential Revision: https://reviews.llvm.org/D71161
      69d10d28
    • Mitch Phillips's avatar
      [Scudo] [GWP-ASan] Add GWP-ASan to Scudo Standalone. · ed4618ed
      Mitch Phillips authored
      Summary:
      Adds GWP-ASan to Scudo standalone. Default parameters are pulled across from the
      GWP-ASan build. No backtrace support as of yet.
      
      Reviewers: cryptoad, eugenis, pcc
      
      Reviewed By: cryptoad
      
      Subscribers: merge_guards_bot, mgorny, #sanitizers, llvm-commits, cferris, vlad.tsyrklevich, pcc
      
      Tags: #sanitizers, #llvm
      
      Differential Revision: https://reviews.llvm.org/D71229
      ed4618ed
    • Mark Murray's avatar
      [ARM][MVE][Intrinsics] remove extraneous intrinsics. (Reapply) · c1ef116c
      Mark Murray authored
      Summary:
      I overstepped my reach and generated too many intrinsics; these never
      made it into the tests.
      
      Remove these extras. Some needed to be signed-olny, and there were some
      possible but unrequired _x variants that needed an extra argument to
      IntrinsicMX to allow [de-]selection at compile-time.
      
      Reviewers: simon_tatham
      
      Subscribers: kristof.beyls, dmgreen, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D71466
      c1ef116c
    • LLVM GN Syncbot's avatar
      gn build: Merge 84728e65 · 65a3e1dc
      LLVM GN Syncbot authored
      65a3e1dc
    • Dmitri Gribenko's avatar
    • Miloš Stojanović's avatar
      [llvm-exegesis][mips] Add BenchmarkResultTest unit test · 84728e65
      Miloš Stojanović authored
      Test writing and reading benchmark instructions to and from disc, and
      check calculations of min, max and avg values from a list of benchmark
      measures.
      
      Differential Revision: https://reviews.llvm.org/D71265
      84728e65
    • Sam McCall's avatar
      [clangd] Fall back to selecting token-before-cursor if token-after-cursor fails. · b60896fa
      Sam McCall authored
      Summary:
      The problem:
      
      LSP specifies that Positions are between characters. Therefore when a position
      (or an empty range) is used to target elements of the source code, there is an
      ambiguity - should we look left or right of the cursor?
      
      Until now, SelectionTree resolved this to the right except in trivial cases
      (where there's whitespace, semicolon, or eof on the right).
      This meant that it's unable to e.g. out-line `int foo^()` today.
      
      Complicating this, LSP notwithstanding the cursor is *on* a character in many
      editors (mostly terminal-based). In these cases there's no ambiguity - we must
      "look right" - but there's also no way to tell in LSP.
      
      (Several features currently resolve this by using getBeginningOfIdentifier,
      which tries to rewind and supports end-of-identifier. But this relies on
      raw lexing and is limited and buggy).
      
      Precedent: well - most other languages aren't so full of densely packed symbols
      that we might want to target. Bias-towards-identifier works well enough.
      MS C++ for vscode seems to mostly use bias-toward-identifier too.
      The problem with this solution is it doesn't provide any way to target some
      things such as the constructor call in Foo^(bar());
      
      Presented solution:
      
      When an ambiguous selection is found, we generate *both* possible selection
      trees. We try to run the feature on the rightward tree first, and then on the
      leftward tree if it fails.
      
      This is basically do-what-I-mean, the main downside is the need to do this on
      a feature-by-feature basis (because each feature knows what "fail" means).
      The most complicated instance of this is Tweaks, where the preferred selection
      may vary tweak-by-tweak.
      
      Wrinkles:
      
      While production behavior is pretty consistent, this introduces some
      inconsistency in testing, depending whether the interface we're testing is
      inside or outside the "retry" wrapper.
      
      In particular, for many features like Hover, the unit tests will show production
      behavior, while for Tweaks the harness would have to run the loop itself if
      we want this.
      
      Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D71345
      b60896fa
    • Sam McCall's avatar
      [Tooling/Syntax] Helpers to find spelled tokens touching a location. · 22f81250
      Sam McCall authored
      Summary: Useful when positions are used to target nodes, with before/after ambiguity.
      
      Reviewers: ilya-biryukov, kbobyrev
      
      Subscribers: cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D71356
      22f81250
    • Mark Murray's avatar
      [ARM][MVE][Intrinsics] remove extraneous intrinsics. · 0eb09927
      Mark Murray authored
      Summary:
      I overstepped my reach and generated too many intrinsics; these never
      made it into the tests.
      
      Remove these extras. Some needed to be signed-olny, and there were some
      possible but unrequired _x variants that needed an extra argument to
      IntrinsicMX to allow [de-]selection at compile-time.
      
      Reviewers: simon_tatham
      
      Subscribers: kristof.beyls, dmgreen, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D71466
      0eb09927
    • Sam Parker's avatar
      [ARM][MVE] Make VPT invalid for tail predication · 84593f05
      Sam Parker authored
      We've been marking VPT incompatible instructions as invalid for tail
      predication too, though this may not strictly be true. VPT are
      incompatible and, unless its the first predicate def in a loop,
      they shouldn't be compatible for tail predication either.
      
      Differential Revision: https://reviews.llvm.org/D71410
      84593f05
    • Kristina Bessonova's avatar
      [llvm-dwarfdump][Statistics] Don't count coverage less than 1% as 0% · d5655c4d
      Kristina Bessonova authored
      Summary:
      This is a follow up for D70548.
      Currently, variables with debug info coverage between 0% and 1% are put into
      zero-bucket. D70548 changed the way statistics calculate a variable's coverage:
      we began to use enclosing scope rather than a possible variable life range.
      Thus more variables might be moved to zero-bucket despite they have some debug
      info coverage.
      The patch is to distinguish between a variable that has location info but
      it's significantly less than its enclosing scope and a variable that doesn't
      have it at all.
      
      Reviewers: djtodoro, aprantl, dblaikie, avl
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D71070
      d5655c4d
    • Nicola Zaghen's avatar
      Reland [DataLayout] Fix occurrences that size and range of pointers are assumed to be the same. · 97572775
      Nicola Zaghen authored
      GEP index size can be specified in the DataLayout, introduced in D42123. However, there were still places
      in which getIndexSizeInBits was used interchangeably with getPointerSizeInBits. This notably caused issues
      with Instcombine's visitPtrToInt; but the unit tests was incorrect, so this remained undiscovered.
      
      This fixes the buildbot failures.
      
      Differential Revision: https://reviews.llvm.org/D68328
      
      Patch by Joseph Faulls!
      97572775
    • Jon Chesterfield's avatar
    • Sanjay Patel's avatar
      [x86] add tests for shift-trunc-shift; NFC · dc9e6ba9
      Sanjay Patel authored
      More coverage for a possible generic transform.
      dc9e6ba9
    • Mikhail Maltsev's avatar
      [ARM][MVE] Add vector reduction intrinsics with two vector operands · 99581fd4
      Mikhail Maltsev authored
      Summary:
      This patch adds intrinsics for the following MVE instructions:
      * VABAV
      * VMLADAV, VMLSDAV
      * VMLALDAV, VMLSLDAV
      * VRMLALDAVH, VRMLSLDAVH
      
      Each of the above 4 groups has a corresponding new LLVM IR intrinsic,
      since the instructions cannot be easily represented using
      general-purpose IR operations.
      
      Reviewers: simon_tatham, ostannard, dmgreen, MarkMurrayARM
      
      Reviewed By: MarkMurrayARM
      
      Subscribers: merge_guards_bot, kristof.beyls, hiraditya, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D71062
      99581fd4
    • Kristina Bessonova's avatar
      [llvm-dwarfdump][Statistics] Change the coverage buckets representation. NFC · 1cc4b603
      Kristina Bessonova authored
      Summary:
      This changes the representation of 'coverage buckets' in llvm-dwarfdump and
      llvm-locstats to one that makes more clear what the buckets contain.
      
      See some related details in D71070.
      
      Reviewers: djtodoro, aprantl, cmtice, jhenderson
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D71366
      1cc4b603
    • Simon Tatham's avatar
      [ARM][MVE] Add intrinsics for more immediate shifts. · 25305a93
      Simon Tatham authored
      Summary:
      This fills in the remaining shift operations that take a single vector
      input and an immediate shift count: the `vqshl`, `vqshlu`, `vrshr` and
      `vshll[bt]` families.
      
      `vshll[bt]` (which shifts each input lane left into a double-width
      output lane) is the most interesting one. There are separate MC
      instruction ids for shifting by exactly the input lane width and
      shifting by less than that, because the instruction encoding is so
      completely different for the lane-width special case. So I had to
      write two sets of patterns to match based on the immediate shift
      count, which involved adding a ComplexPattern matcher to avoid the
      general-case pattern accidentally matching the special case too. For
      that family I've made sure to add an llc codegen test for both
      versions of each instruction.
      
      I'm experimenting with a new strategy for parametrising the isel
      patterns for all these instructions: adding extra fields to the
      relevant `Instruction` subclass itself, which are ignored by the
      Tablegen backends that generate the MC data, but can be retrieved from
      each instance of that instruction subclass when it's passed as a
      template parameter to the multiclass that generates its isel patterns.
      A nice effect of that is that I can fill in those informational fields
      using `let` blocks, rather than having to type them out once per
      instruction at `defm` time.
      
      (As a result, quite a lot of existing instruction `def`s are
      reindented by this patch, so it's clearer to read with whitespace
      changes ignored.)
      
      Reviewers: dmgreen, MarkMurrayARM, miyuki, ostannard
      
      Reviewed By: MarkMurrayARM
      
      Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D71458
      25305a93
    • John Brawn's avatar
      [ARM] Add custom strict fp conversion lowering when non-strict is custom · 01ba201a
      John Brawn authored
      We have custom lowering for operations converting to/from floating-point types
      when we don't have hardware support for those types, and this doesn't interact
      well with the target-independent legalization of the strict versions of these
      operations. Fix this by adding similar custom lowering of the strict versions.
      
      This fixes the last of the assertion failures in the CodeGen/ARM/fp-intrinsics
      test, with the remaining failures due to poor instruction selection.
      
      Differential Revision: https://reviews.llvm.org/D71127
      01ba201a
    • Tim Renouf's avatar
      Revert "AMDGPU: Try to commute sub of boolean ext" · fce1a6f5
      Tim Renouf authored
      This reverts commit 69fcfb7d.
      
      As shown in the test I attached to this commit, the change I reverted
      causes a problem with "zext(cc1) - zext(cc2)". It commuted
      the operands to the sub and used different logic to select the addc/subc
      instruction:
         sub zext (setcc), x => addcarry 0, x, setcc
         sub sext (setcc), x => subcarry 0, x, setcc
      
      ... but that is bogus. I believe it is not possible to fold those commuted
      patterns into any form of addcarry or subcarry. It may have worked as
      intended before "AMDGPU: Change boolean content type to 0 or 1" because
      the setcc was considered to be -1 rather than 1.
      
      Differential Revision: https://reviews.llvm.org/D70978
      
      Change-Id: If2139421aa6c935cbd1d925af58fe4a4aa9e8f43
      fce1a6f5
    • Djordje Todorovic's avatar
      [llvm-locstats] Avoid the locstats when no scope bytes coverage found · baea9136
      Djordje Todorovic authored
      If the total number of PC range bytes in each variable's enclosing scope
      ('scope bytes total') is 0, we will have division by zero.
      
      Differential Revision: https://reviews.llvm.org/D71415
      baea9136
    • Anastasia Stulova's avatar
      [Sema] Improve diagnostic about addr spaces for overload candidates · ed8dadb3
      Anastasia Stulova authored
      Allow sending address spaces into diagnostics to simplify and improve
      error reporting. Improved wording of diagnostics for address spaces
      in overloading.
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D71111
      ed8dadb3
    • Alex Richardson's avatar
      [NFC] Use EVT instead of bool for getSetCCInverse() · be15dfa8
      Alex Richardson authored
      Summary:
      The use of a boolean isInteger flag (generally initialized using
      VT.isInteger()) caused errors in our out-of-tree CHERI backend
      (https://github.com/CTSRD-CHERI/llvm-project).
      
      In our backend, pointers use a separate ValueType (iFATPTR) and therefore
      .isInteger() returns false. This meant that getSetCCInverse() was using the
      floating-point variant and generated incorrect code for us:
      `(void *)0x12033091e < (void *)0xffffffffffffffff` would return false.
      
      Committing this change will significantly reduce our merge conflicts
      for each upstream merge.
      
      Reviewers: spatel, bogner
      
      Reviewed By: bogner
      
      Subscribers: wuzish, arsenm, sdardis, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, jrtc27, atanasyan, jsji, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D70917
      be15dfa8
    • Alex Richardson's avatar
      [ELF] Allow getErrPlace() to work before Out::bufferStart is set · 2bbd32f5
      Alex Richardson authored
      Summary:
      So far it seems like the only test affected by this change is the one I
      recently added for R_MIPS_JALR relocations since the other test cases that
      use this function early (unknown-relocation-*) do not have a valid input
      section for the relocation offset.
      
      Reviewers: ruiu, grimar, MaskRay, espindola
      
      Reviewed By: ruiu, MaskRay
      
      Subscribers: emaste, sdardis, jrtc27, atanasyan, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D70659
      2bbd32f5
    • Sjoerd Meijer's avatar
      Revert "[ARM][MVE] findVCMPToFoldIntoVPS. NFC." · e91420e1
      Sjoerd Meijer authored
      This reverts commit 9468e333.
      
      There's a test that doesn't like this change. The RDA analysis
      gets invalided by changes in the block, which is not taken into
      account. Revert while I work on a fix for this.
      e91420e1
    • Mark Murray's avatar
      [ARM][MVE][Intrinsics] Add *_x() variants of my *_m() intrinsics. · 228c7407
      Mark Murray authored
      Summary:
      Better use of multiclass is used, and this helped find some existing
      bugs in the predicated VMULL* intrinsics, which are now fixed.
      
      The refactored VMULL[TB]Q_(INT|POLY)_M() intrinsics were discovered
      to have an argument ("inactive") with incorrect type, and this required
      a fix that is included in this whole patch. The argument "inactive"
      should have been the same width (per vector element) as the return
      type of the intrinsic, but was not in the case where the return type
      was double the element width of the input types.
      
      To assist in testing the multiclassing , and to thwart further gremlins,
      the unit tests are improved in scope.
      
      The *.ll tests are all generated by a small bit of throw-away scripting
      from the corresponding *.c tests, and as such the diffs are large and
      nasty. Look at the file rather than the diff.
      
      Reviewers: dmgreen, miyuki, ostannard, simon_tatham
      
      Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D71421
      228c7407
    • Raphael Isemann's avatar
      [lldb][NFC] Remove all `setUp` overrides that only call the parent implementation · 9bace26a
      Raphael Isemann authored
      Summary:
      A lot of our tests copied the setUp code from our TestSampleTest.py:
      
      ```
          def setUp(self):
              # Call super's setUp().
              TestBase.setUp(self)
      ```
      
      This code does nothing unless we actually do any setUp work in there, so let's remove all these method definitions.
      
      Reviewers: labath, JDevlieghere
      
      Reviewed By: labath
      
      Subscribers: lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D71454
      9bace26a
    • Raphael Isemann's avatar
    • Raphael Isemann's avatar
      [lldb][NFC] Remove 'from __future__ import print_function' from all tests that... · a52a1113
      Raphael Isemann authored
      [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()'
      
      Summary:
      A lot of tests do this trick but the vast majority of them don't even call `print()`.
      
      Most of this patch was generated by a script that just looks at all the files and deletes the line if there is no `print (` or `print(` anywhere else in the file.
      I checked the remaining tests manually and deleted the import if we never call print (but instead do stuff like `expr print(...)` and similar false-positives).
      I also corrected the additional empty lines after the import in the files that I manually edited.
      
      Reviewers: JDevlieghere, labath, jfb
      
      Reviewed By: labath
      
      Subscribers: dexonsmith, wuzish, nemanjai, kbarton, christof, arphaman, abidh, lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D71452
      a52a1113
    • Kai Nacke's avatar
      [Docs] Fix target feature matrix for PowerPC and SystemZ · caa7c9e6
      Kai Nacke authored
      The target feature matrix in the code generator documentation is
      outdated. This PR fixes some entries for PowerPC and SystemZ.
      
      Both have:
      - assembly parser
      - disassembler
      - .o file writing
      
      Reviewers: uweigand
      
      Differential Revision: https://reviews.llvm.org/D71004
      caa7c9e6
    • Raphael Isemann's avatar
    • Raphael Isemann's avatar
      [lldb][NFC] Make metadata tracking type safe · 5ab9fa44
      Raphael Isemann authored
      Summary:
      LLDB associates additional information with Types and Declarations which it calls ClangASTMetadata.
      ClangASTMetadata is stored by the ClangASTSourceCommon which is implemented by having a large map of
      `void *` keys to associated `ClangASTMetadata` values. To make this whole mechanism even unsafer
      we also decided to use `clang::Decl *` as one of pointers we throw in there (beside `clang::Type *`).
      
      The Decl class hierarchy uses multiple inheritance which means that not all pointers have the
      same address when they are implicitly converted to pointers of their parent classes. For example
      `clang::Decl *` and `clang::DeclContext *` won't end up being the same address when they
      are implicitly converted from one of the many Decl-subclasses that inherit from both.
      
      As we use the addresses as the keys in our Metadata map, this means that any implicit type
      conversions to parent classes (or anything else that changes the addresses) will break our metadata tracking
      in obscure ways.
      
      Just to illustrate how broken this whole mechanism currently is:
      ```lang=cpp
        // m_ast is our ClangASTContext. Let's double check that from GetTranslationUnitDecl
        // in ClangASTContext and ASTContext return the same thing (one method just calls the other).
        assert(m_ast->GetTranslationUnitDecl() == m_ast->getASTContext()->getTranslationUnitDecl());
        // Ok, both methods have the same TU*. Let's store metadata with the result of one method call.
        m_ast->SetMetadataAsUserID(m_ast->GetTranslationUnitDecl(), 1234U);
        // Retrieve the same Metadata for the TU by using the TU* from the other method... which fails?
        EXPECT_EQ(m_ast->GetMetadata(m_ast->getASTContext()->getTranslationUnitDecl())->GetUserID(), 1234U);
        // Turns out that getTranslationUnitDecl one time returns a TranslationUnitDecl* but the other time
        // we return one of the parent classes of TranslationUnitDecl (DeclContext).
      ```
      
      This patch splits up the `void *` API into two where one does the `clang::Type *` tracking and one the `clang::Decl *` mapping.
      Type and Decl are disjoint class hierarchies so there is no implicit conversion possible that could influence
      the address values.
      
      I had to change the storing of `clang::QualType` opaque pointers to their `clang::Type *` equivalents as
      opaque pointers are already `void *` pointers to begin with. We don't seem to ever set any qualifier in any of these
      QualTypes to this conversion should be NFC.
      
      Reviewers: labath, shafik, aprantl
      
      Reviewed By: labath
      
      Subscribers: JDevlieghere, lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D71409
      5ab9fa44
    • Kerry McLaughlin's avatar
      Recommit "[AArch64][SVE] Implement intrinsics for non-temporal loads & stores" · 4194ca8e
      Kerry McLaughlin authored
      Updated pred_load patterns added to AArch64SVEInstrInfo.td by this patch
      to use reg + imm non-temporal loads to fix previous test failures.
      
      Original commit message:
      
      Adds the following intrinsics:
        - llvm.aarch64.sve.ldnt1
        - llvm.aarch64.sve.stnt1
      
      This patch creates masked loads and stores with the
      MONonTemporal flag set when used with the intrinsics above.
      4194ca8e
    • David Stenberg's avatar
      [LiveDebugValues] Omit entry values for DBG_VALUEs with pre-existing expressions · 5c7cc6f8
      David Stenberg authored
      Summary:
      This is a quickfix for PR44275. An assertion that checks that the
      DIExpression is valid failed due to attempting to create an entry value
      for an indirect parameter. This started appearing after D69028, as the
      indirect parameter started being represented using an DW_OP_deref,
      rather than with the DBG_VALUE's second operand, meaning that the
      isIndirectDebugValue() check in LiveDebugValues did not exclude such
      parameters. A DIExpression that has an entry value operation can
      currently not have any other operation, leading to the failed isValid()
      check.
      
      This patch simply makes us stop considering emitting entry values
      for such parameters. To support such cases I think we at least need
      to do the following changes:
      
       * In DIExpression::isValid(): Remove the limitation that a
         DW_OP_LLVM_entry_value operation can be the only operation in a
         DIExpression.
      
       * In LiveDebugValues::emitEntryValues(): Create an entry value of size
         1, so that it only wraps the register operand, and not the whole
         pre-existing expression (the DW_OP_deref).
      
       * In LiveDebugValues::removeEntryValue(): Check that the new debug
         value has the same debug expression as the original, rather than
         checking that the debug expression is empty.
      
       * In DwarfExpression::addMachineRegExpression(): Modify the logic so
         that a DW_OP_reg* expression is emitted for the entry value.
         That is how GCC emits entry values for indirect parameters. That will
         currently not happen to due the DW_OP_deref causing the
         !HasComplexExpression to fail. The LocationKind needs to be changed
         also, rather than always emitting a DW_OP_stack_value for entry values.
      
      There are probably more things I have missed, but that could hopefully
      be a good starting point for emitting such entry values.
      
      Reviewers: djtodoro, aprantl, jmorse, vsk
      
      Reviewed By: aprantl, vsk
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #debug-info, #llvm
      
      Differential Revision: https://reviews.llvm.org/D71416
      5c7cc6f8
    • Kadir Cetinkaya's avatar
      [clangd] Fix windows builds · 6b8ff5e4
      Kadir Cetinkaya authored
      6b8ff5e4
    • Pavel Labath's avatar
      [lldb/cmake] Temporarily revive LLDB_DISABLE_CURSES · ec109fb7
      Pavel Labath authored
      At least one lldb bot still uses this cmake variable instead of
      LLDB_ENABLE_CURSES. Add code to set the default value of the "enable"
      variable based on the old value of the "disable" setting.
      
      This should bring those bots back up, until we can update the master to
      use the new setting.
      ec109fb7
    • Kadir Cetinkaya's avatar
      [clangd] Add "inline" keyword to prevent ODR-violations in DefineInline · 087528a3
      Kadir Cetinkaya authored
      Reviewers: ilya-biryukov, hokein
      
      Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D68261
      087528a3
Loading