1. Jul 22, 2020
    • Jonas Devlieghere's avatar
      [lldb] Add missing member initialziation list · dd064afe
      Jonas Devlieghere authored
      My previous commit added the default arguments but didn't use them in
      the member initialization list...
      dd064afe
    • Raphael Isemann's avatar
      Revert "[lldb] Unify type name matching in FormattersContainer" · e031eda0
      Raphael Isemann authored
      This reverts commit 5b0de575.
      
      Apparently that caused some test to get stuck on Linuxx. Reverting for now.
      e031eda0
    • Nico Weber's avatar
      Build: Move TF source file inclusion from build system to source files · 4fe912f1
      Nico Weber authored
      Outside of compiler-rt (where it's arguably an anti-pattern too),
      LLVM tries to keep its build files as simple as possible. See e.g.
      llvm/docs/SupportLibrary.rst, "Code Organization".
      
      Differential Revision: https://reviews.llvm.org/D84243
      4fe912f1
    • Kevin P. Neal's avatar
    • Arthur Eubanks's avatar
      [NewPM] Support optnone under new pass manager · b13b8581
      Arthur Eubanks authored
      OptNoneInstrumentation is part of StandardInstrumentations. It skips
      functions (or loops) that are marked optnone.
      
      The feature of skipping optional passes for optnone functions under NPM
      is gated on a -enable-npm-optnone flag. Currently it is by default
      false. That is because we still need to mark all required passes to be
      required. Otherwise optnone functions will start having incorrect
      semantics.  After that is done in following changes, we can remove the
      flag and always enable this.
      
      Reviewed By: ychen
      
      Differential Revision: https://reviews.llvm.org/D83519
      b13b8581
    • Jonas Devlieghere's avatar
      [lldb] Change the CommandArgumentData ctor (NFC) · 98efa3d5
      Jonas Devlieghere authored
      By using default arguments the caller can specify a subset without the
      need for overloads. This is particularly useful in combination with
      emplace_back as these objects are generally stored in a vector.
      98efa3d5
    • Raphael Isemann's avatar
      [lldb] Unify type name matching in FormattersContainer · 5b0de575
      Raphael Isemann authored
      Summary:
      
      FormattersContainer stores LLDB's formatters. It's implemented as a templated
      map-like data structures that supports any kind of value type and only allows
      ConstString and RegularExpression as the key types. The keys are used for
      matching type names (e.g., the ConstString key `std::vector` matches the type
      with the same name while RegularExpression keys match any type where the
      RegularExpression instance matches).
      
      The fact that a single FormattersContainer can only match either by string
      comparison or regex matching (depending on the KeyType) causes us to always have
      two FormatterContainer instances in all the formatting code. This also leads to
      us having every type name matching logic in LLDB twice. For example,
      TypeCategory has to implement every method twice (one string matching one, one
      regex matching one).
      
      This patch changes FormattersContainer to instead have a single `TypeMatcher`
      key that wraps the logic for string-based and regex-based type matching and is
      now the only possible KeyType for the FormattersContainer. This means that a
      single FormattersContainer can now match types with both regex and string
      comparison.
      
      To summarize the changes in this patch:
      * Remove all the `*_Impl` methods from `FormattersContainer`
      * Instead call the FormatMap functions from `FormattersContainer` with a
        `TypeMatcher` type that does the respective matching.
      * Replace `ConstString` with `TypeMatcher` in the few places that directly
        interact with `FormattersContainer`.
      
      I'm working on some follow up patches that I split up because they deserve their
      own review:
      
      * Unify FormatMap and FormattersContainer (they are nearly identical now).
      * Delete the duplicated half of all the type matching code that can now use one
        interface.
      * Propagate TypeMatcher through all the formatter code interfaces instead of
        always offering two functions for everything.
      
      There is one ugly design part that I couldn't get rid of yet and that is that we
      have to support getting back the string used to construct a `TypeMatcher` later
      on. The reason for this is that LLDB only supports referencing existing type
      matchers by just typing their respective input string again (without even
      supplying if it's a regex or not).
      
      Reviewers: davide, mib
      
      Reviewed By: mib
      
      Subscribers: mgorny, JDevlieghere
      
      Differential Revision: https://reviews.llvm.org/D84151
      5b0de575
    • Jordan Rupprecht's avatar
      [NFC] Fix unused var warning · 1ee1da1e
      Jordan Rupprecht authored
      1ee1da1e
    • Jonas Devlieghere's avatar
    • Logan Smith's avatar
      [clang-tools-extra] Disable -Wsuggest-override for unittests/ · fa42b7cf
      Logan Smith authored
      This avoids massive warning spam due to the unit tests' use of gtest and gmock, which do not use the 'override' keyword in their sources.
      
      Differential Revision: https://reviews.llvm.org/D84213
      fa42b7cf
  2. Jul 21, 2020
  3. Jul 22, 2020
    • Jonas Devlieghere's avatar
      [lldb/Reproducers] Don't recursively record everything in the CWD · 9f8d481d
      Jonas Devlieghere authored
      RecordInterestingDirectory was added to collect dSYM bundles and their
      content. For the current working directory we only want the directory to
      be part of the VFS, not necessarily its contents. This patch renames the
      current method to RecordInterestingDirectoryRecursively and adds a new
      one that's not recursive.
      9f8d481d
  4. Jul 21, 2020