Skip to content
  1. Oct 23, 2017
  2. Oct 19, 2017
    • Vedant Kumar's avatar
      [llvm-cov] Move LineCoverageIterator to libCoverage. NFC. · 821160d5
      Vedant Kumar authored
      LineCoverageIterator makes it easy for clients of coverage data to
      determine line execution counts for a file or function. The coverage
      iteration logic is tricky enough that it really pays not to have
      multiple copies of it. Hopefully having just one implementation in LLVM
      will make the iteration logic easier to test, reuse, and update.
      
      This commit is NFC but I've added a unit test to go along with it just
      because it's easy to do now.
      
      llvm-svn: 316141
      821160d5
    • Vedant Kumar's avatar
      [llvm-cov] Use the coverage namespace. NFC. · e955f618
      Vedant Kumar authored
      This is a simple code cleanup. It will facilitate moving
      LineCoverageIterator to libCoverage.
      
      llvm-svn: 316140
      e955f618
  3. Oct 18, 2017
    • Vedant Kumar's avatar
      [llvm-cov] Suppress sub-line highlights in simple cases · 9cbd33fe
      Vedant Kumar authored
      llvm-cov tends to highlight too many regions because its policy is to
      highlight all region entry segments. This can look confusing to users:
      not all region entry segments are interesting and deserve highlighting.
      Emitting these highlights only when the region count differs from the
      line count is a more user-friendly policy.
      
      llvm-svn: 316109
      9cbd33fe
    • Vedant Kumar's avatar
      [llvm-cov] Pass LineCoverageStats in SourceCoverageView. NFC. · 08a0a310
      Vedant Kumar authored
      Instead of copying around the wrapped segment and the list of line
      segments, just pass a reference to a LineCoverageStats object. This
      simplifies the interface. It also makes an upcoming change to suppress
      distracting highlights possible.
      
      llvm-svn: 316108
      08a0a310
    • Vedant Kumar's avatar
      [llvm-cov] Highlight gaps in consecutive uncovered regions · 988faf87
      Vedant Kumar authored
      llvm-cov typically doesn't highlight gap segments, but it should if the
      gap occurs after an uncovered region in order to preserve continuity.
      
      llvm-svn: 316107
      988faf87
    • NAKAMURA Takumi's avatar
      Untabify. · 6f43bd4b
      NAKAMURA Takumi authored
      llvm-svn: 316079
      6f43bd4b
    • Vlad Tsyrklevich's avatar
      Statically link llvm-cfi-verify's libraries. · 4dc1c973
      Vlad Tsyrklevich authored
      Summary:
      llvm-cfi-verify (D38379) introduced a potential build failure when compiling with `-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON`. Specific versions of cmake seem to treat the `add_subdirectory()` rule differently. It seems as if old versions of cmake BFS these rules, adding them to the fringe for expansion later. Newer versions of cmake seem to immediately execute CMakeFiles that are present in this subdirectory.
      
      If the subdirectory is expanded through the fringe, the globbing resultant from `llvm_add_implicit_projects()` from `cmake/modules/AddLLVM.cmake:1012` means that `tools/llvm-shlib/CMakeFile.txt` gets executed before `tools/llvm-cfi-verify/lib/CMakeFile.txt`. As the latter CMakeFile adds a new library, this expansion order means that the library files required the unit tests in `unittests/tools/llvm-cfi-verify/` are not present in the dynamic library. This causes unit tests to fail as the required functions can't be found.
      
      This change now ensures that the libraries created by `llvm-cfi-verify` are statically linked into the unit tests. As `tools/llvm-cfi-verify/lib` no longer adds anything to `llvm-shlib`, there should be no concern about the order-of-compilation.
      
      Reviewers: skatkov, pcc
      
      Reviewed By: skatkov, pcc
      
      Subscribers: llvm-commits, kcc, pcc, aheejin, vlad.tsyrklevich, mgorny
      
      Differential Revision: https://reviews.llvm.org/D39020
      
      llvm-svn: 316059
      4dc1c973
  4. Oct 17, 2017
    • Matt Morehouse's avatar
      [llvm-special-case-list-fuzzer] Add fuzz target. · 3f6c1627
      Matt Morehouse authored
      Summary: Create a fuzzer for sanitizer blacklists.
      
      Patch by: hctim
      
      Reviewers: morehouse
      
      Reviewed By: morehouse
      
      Subscribers: llvm-commits, mgorny, kcc
      
      Differential Revision: https://review.llvm.org/D38981
      
      llvm-svn: 316014
      3f6c1627
    • Vedant Kumar's avatar
      [llvm-cov] Add one correction to r315960 (PR34962) · 4d1969f2
      Vedant Kumar authored
      In r315960, I accidentally assumed that the first line segment is
      guaranteed to be the non-gap region entry segment (given that one is
      present). It can actually be any segment on the line, and the test I
      checked in demonstrates that.
      
      llvm-svn: 315963
      4d1969f2
    • Vedant Kumar's avatar
      [llvm-cov] Remove workaround in line execution count calculation (PR34962) · 58548c30
      Vedant Kumar authored
      Gap areas make it possible to correctly determine when to use counts
      from deferred regions. Before gap areas were introduced, llvm-cov needed
      to use a heuristic to do this: it ignored counts from segments that
      start, but do not end, on a line. This heuristic breaks down on a simple
      example (see PR34962).
      
      This patch removes the heuristic and picks counts from any region entry
      segment which isn't a gap area.
      
      llvm-svn: 315960
      58548c30
  5. Oct 16, 2017
  6. Oct 14, 2017
  7. Oct 13, 2017
  8. Oct 12, 2017
    • Justin Bogner's avatar
      Re-commit "llvm-isel-fuzzer: Handle a subset of backend flags in the exec name" · 9ea7fbd1
      Justin Bogner authored
      Here we add a secondary option parser to llvm-isel-fuzzer (and provide
      it for use with other fuzzers). With this, you can copy the fuzzer to
      a name like llvm-isel-fuzzer=aarch64-gisel for a fuzzer that fuzzer
      AArch64 with GlobalISel enabled, or fuzzer=x86_64 to fuzz x86, with no
      flags required. This should be useful for running these in OSS-Fuzz.
      
      Note that this handrolls a subset of cl::opts to recognize, rather
      than embedding a complete command parser for argv[0]. If we find we
      really need the flexibility of handling arbitrary options at some
      point we can rethink this.
      
      This re-applies 315545 using "=" instead of ":" as a separator for
      arguments.
      
      llvm-svn: 315557
      9ea7fbd1
    • Hans Wennborg's avatar
      Revert r315545 "llvm-isel-fuzzer: Handle a subset of backend flags in the executable name" · 022829d8
      Hans Wennborg authored
      It broke some tests on Windows:
      
      Failing Tests (4):
          LLVM :: tools/llvm-isel-fuzzer/execname-options.ll
          LLVM :: tools/llvm-isel-fuzzer/missing-triple.ll
          LLVM :: tools/llvm-isel-fuzzer/x86-empty-bc.ll
          LLVM :: tools/llvm-isel-fuzzer/x86-empty.ll
      
      > llvm-isel-fuzzer: Handle a subset of backend flags in the executable name
      >
      > Here we add a secondary option parser to llvm-isel-fuzzer (and provide
      > it for use with other fuzzers). With this, you can copy the fuzzer to
      > a name like llvm-isel-fuzzer:aarch64-gisel for a fuzzer that fuzzer
      > AArch64 with GlobalISel enabled, or fuzzer:x86_64 to fuzz x86, with no
      > flags required. This should be useful for running these in OSS-Fuzz.
      >
      > Note that this handrolls a subset of cl::opts to recognize, rather
      > than embedding a complete command parser for argv[0]. If we find we
      > really need the flexibility of handling arbitrary options at some
      > point we can rethink this.
      
      llvm-svn: 315554
      022829d8
    • Justin Bogner's avatar
      llvm-isel-fuzzer: Handle a subset of backend flags in the executable name · a5969ce1
      Justin Bogner authored
      Here we add a secondary option parser to llvm-isel-fuzzer (and provide
      it for use with other fuzzers). With this, you can copy the fuzzer to
      a name like llvm-isel-fuzzer:aarch64-gisel for a fuzzer that fuzzer
      AArch64 with GlobalISel enabled, or fuzzer:x86_64 to fuzz x86, with no
      flags required. This should be useful for running these in OSS-Fuzz.
      
      Note that this handrolls a subset of cl::opts to recognize, rather
      than embedding a complete command parser for argv[0]. If we find we
      really need the flexibility of handling arbitrary options at some
      point we can rethink this.
      
      llvm-svn: 315545
      a5969ce1
    • Zachary Turner's avatar
      Revert "[ADT] Make Twine's copy constructor private." · 41a9ee98
      Zachary Turner authored
      This reverts commit 4e4ee1c507e2707bb3c208e1e1b6551c3015cbf5.
      
      This is failing due to some code that isn't built on MSVC
      so I didn't catch.  Not immediately obvious how to fix this
      at first glance, so I'm reverting for now.
      
      llvm-svn: 315536
      41a9ee98
    • Lang Hames's avatar
      [MC] Have MCObjectStreamer take its MCAsmBackend argument via unique_ptr. · 2241ffa4
      Lang Hames authored
      MCObjectStreamer owns its MCCodeEmitter -- this fixes the types to reflect that,
      and allows us to remove the last instance of MCObjectStreamer's weird "holding
      ownership via someone else's reference" trick.
      
      llvm-svn: 315531
      2241ffa4
    • Zachary Turner's avatar
      [ADT] Make Twine's copy constructor private. · 337462b3
      Zachary Turner authored
      There's a lot of misuse of Twine scattered around LLVM.  This
      ranges in severity from benign (returning a Twine from a function
      by value that is just a string literal) to pretty sketchy (storing
      a Twine by value in a class).  While there are some uses for
      copying Twines, most of the very compelling ones are confined
      to the Twine class implementation itself, and other uses are
      either dubious or easily worked around.
      
      This patch makes Twine's copy constructor private, and fixes up
      all callsites.
      
      Differential Revision: https://reviews.llvm.org/D38767
      
      llvm-svn: 315530
      337462b3
    • Vlad Tsyrklevich's avatar
      MC Helpers for llvm-cfi-verify. · 0ee26324
      Vlad Tsyrklevich authored
      Add instruction analysis and machinecode traversal helpers in
      preparation for control flow graph generation implementation.
      
      Reviewers: vlad.tsyrklevich
      
      Reviewed By: vlad.tsyrklevich
      
      Subscribers: mgorny, llvm-commits, pcc, kcc
      
      Differential Revision: https://reviews.llvm.org/D38424
      
      llvm-svn: 315528
      0ee26324
  9. Oct 11, 2017
Loading