Skip to content
  1. Nov 01, 2017
    • Mitch Phillips's avatar
      Parse DWARF information to reduce false positives. · 7db6f7a3
      Mitch Phillips authored
      Summary: Help differentiate code and data by parsing DWARF information. This will reduce false positive rates where data is placed in executable sections and is mistakenly parsed as code, resulting in an inflation in the number of indirect CF instructions (and hence an inflation of the number of unprotected).
      
      Also prints the DWARF line data around the region of each indirect CF instruction.
      
      Reviewers: pcc
      
      Subscribers: probinson, llvm-commits, vlad.tsyrklevich, mgorny, aprantl, kcc
      
      Differential Revision: https://reviews.llvm.org/D38654
      
      llvm-svn: 317050
      7db6f7a3
  2. Oct 31, 2017
  3. Oct 27, 2017
  4. Oct 26, 2017
  5. Oct 25, 2017
  6. Oct 24, 2017
    • Sam Clegg's avatar
      Fix LLVM_LINK_LLVM_DYLIB=On build of llvm-cfi-verify · dabd5be4
      Sam Clegg authored
      Subscribers: mgorny, aheejin
      
      Differential Revision: https://reviews.llvm.org/D39250
      
      llvm-svn: 316493
      dabd5be4
    • Vedant Kumar's avatar
      [llvm-cov] Use a stable sort on sub-views · 8c07280f
      Vedant Kumar authored
      We need to use a stable sort on instantiation and expansion sub-views to
      produce consistent output. Fortunately, we've gotten lucky and the tests
      have checks for the stable order.
      
      This is needed to unblock D39245. Once that lands, we'll have better
      test coverage for sort non-determinism.
      
      llvm-svn: 316490
      8c07280f
    • Michael Kruse's avatar
      [opt] Initialize WriteBitcode pass. · 3fe15ee8
      Michael Kruse authored
      Probably due to a change of how some pass initializes its dependencies,
      the -write-bitcode pass (Bitcode/Writer/BitcodeWriterPass.cpp) is not
      initialized in opt anymore and therefore not usable with
      
      opt -write-bitcode
      
      Explicitly call initializeWriteBitcodePassPass() to make it available
      in opt again.
      
      Differential Revision: https://reviews.llvm.org/D39223
      
      llvm-svn: 316464
      3fe15ee8
    • Reid Kleckner's avatar
      [codeview] Fix handling of S_HEAPALLOCSITE · 8aa32ffb
      Reid Kleckner authored
      The type index is from the TPI stream, not the IPI stream. Fix the
      dumper, fix type index discovery, and add a test in LLD.
      
      Also improve the log message we emit when we fail to rewrite type
      indices in LLD. That's how I found this bug.
      
      llvm-svn: 316461
      8aa32ffb
  7. Oct 23, 2017
  8. 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
  9. 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
  10. 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
  11. Oct 16, 2017
  12. Oct 14, 2017
  13. Oct 13, 2017
  14. 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
Loading