Skip to content
  1. Sep 11, 2016
  2. Sep 10, 2016
  3. Sep 09, 2016
    • Zachary Turner's avatar
      [pdb] Print out some more info when dumping a raw stream. · 36efbfa6
      Zachary Turner authored
      We have various command line options that print the type of a
      stream, the size of a stream, etc but nowhere that it can all be
      viewed together.
      
      Since a previous patch introduced the ability to dump the bytes
      of a stream, this seems like a good place to present a full view
      of the stream's properties including its size, what kind of data
      it represents, and the blocks it occupies.  So I added the
      ability to print that information to the -stream-data command
      line option.
      
      llvm-svn: 281077
      36efbfa6
    • Vedant Kumar's avatar
      [llvm-cov] Remove some asserts in the html renderer (NFC) · c236e5a0
      Vedant Kumar authored
      These asserts are making tests fragile. The renderer does not enter an
      invalid state when they fail, however, it may spit out a garbled
      coverage report because the source text no longer matches the provided
      coverage mapping.
      
      Another follow-up to r281072.
      
      llvm-svn: 281076
      c236e5a0
    • Zachary Turner's avatar
      [pdb] Add command line options for dumping individual streams and blocks · 72c5b645
      Zachary Turner authored
      I ran into a situation where I wanted to print out the contents of
      page 6 of a PDB as a binary blob, and there was no straightforward
      way to do that.
      
      In addition to adding that, this patch also adds the ability to dump
      a stream by index as a binary blob, and it will stitch together all
      the blocks and dump the whole thing as one seemingly contiguous
      sequence of bytes.
      
      llvm-svn: 281070
      72c5b645
    • Zachary Turner's avatar
      [pdb] Pass CVRecord's through the visitor as non-const references. · 9ba31a5e
      Zachary Turner authored
      This simplifies a lot of code, and will actually be necessary for
      an upcoming patch to serialize TPI record hash values.
      
      The idea before was that visitors should be examining records, not
      modifying them.  But this is no longer true with a visitor that
      constructs a CVRecord from Yaml.  To handle this until now, we
      were doing some fixups on CVRecord objects at a higher level, but
      the code is really awkward, and it makes sense to just have the
      visitor write the bytes into the CVRecord.  In doing so I uncovered
      a few bugs related to `Data` and `RawData` and fixed those.
      
      Reviewed By: rnk
      Differential Revision: https://reviews.llvm.org/D24362
      
      llvm-svn: 281067
      9ba31a5e
    • Zachary Turner's avatar
      [pdb] Write PDB TPI Stream from Yaml. · c6d54da8
      Zachary Turner authored
      This writes the full sequence of type records described in
      Yaml to the TPI stream of the PDB file.
      
      Reviewed By: rnk
      Differential Revision: https://reviews.llvm.org/D24316
      
      llvm-svn: 281063
      c6d54da8
    • Vedant Kumar's avatar
      [llvm-cov] Handle native paths correctly in the text index · d938dfb3
      Vedant Kumar authored
      Treat filenames the same way in the text index as we do in the html
      index. This is a follow-up to r281008 (an attempt to unbreak the
      native_separators.c test on Windows).
      
      Patch by Maggie Yi!
      
      llvm-svn: 281062
      d938dfb3
    • Vedant Kumar's avatar
      [llvm-cov] Emit a summary in the report directory's index · a59334da
      Vedant Kumar authored
      llvm-cov writes out an index file in '-output-dir' mode, albeit not a
      very informative one. Try to fix that by using the CoverageReport API to
      include some basic summary information in the index file.
      
      llvm-svn: 281011
      a59334da
    • Vedant Kumar's avatar
      [llvm-cov] Constify some methods (NFC) · aae0ba70
      Vedant Kumar authored
      llvm-svn: 281010
      aae0ba70
    • Vedant Kumar's avatar
      [llvm-cov] Add an API to prepare file reports (NFC) · 627887b6
      Vedant Kumar authored
      It would be nice to prepare file reports (using the CoverageReport API)
      without actually rendering them to the console. I plan on using this to
      flesh out the 'index' files in the coverage views.
      
      llvm-svn: 281009
      627887b6
    • Saleem Abdulrasool's avatar
      llvm-objdump: add missing ) in help output, NFC · ec6a774e
      Saleem Abdulrasool authored
      Add a missing ')' in the help output.  NFC.
      
      llvm-svn: 281000
      ec6a774e
  4. Sep 08, 2016
    • Vedant Kumar's avatar
      [llvm-cov] Fix issues with segment highlighting in the html view · 0b33f2c0
      Vedant Kumar authored
      The text and html coverage views take different approaches to emitting
      highlighted regions. That's because this problem is easier in the text
      view: there's no need to worry about escaping text or adding tooltip
      content to a highlighted snippet.
      
      Unfortunately, the html view didn't get region highlighting quite right.
      
      This patch fixes the situation, bringing parity between the two views.
      
      llvm-svn: 280981
      0b33f2c0
    • Zachary Turner's avatar
      [pdb] Make YamlTypeDumperCallbacks reuse *this. · 22b652db
      Zachary Turner authored
      Previously we were making new instances of YamlTypeDumperCallbacks
      in order to recurse down and serialize / deserialize nested
      records such as field lists.  This meant you could not pass
      context from a higher operation to a lower operation because
      it would be using a new instance of the visitor callback
      delegate.
      
      YAMLIO library was updated to support context-sensitive mappings,
      so now we can reuse the same instance of the visitor callback
      delegate even for nested operations.
      
      llvm-svn: 280978
      22b652db
    • Vedant Kumar's avatar
      [llvm-cov] Use less space to describe source names · 0053c0b6
      Vedant Kumar authored
      In r279628, we made SourceCoverageView list the binary associated with a
      view and started adding labels (e.g "Source: foo" or "Function: bar") to
      everything. Condense this information a bit to unclutter reports.
      
      llvm-svn: 280896
      0053c0b6
    • Vedant Kumar's avatar
      [llvm-cov] Drop the longest common filename prefix from summaries · fa754371
      Vedant Kumar authored
      Remove the longest common prefix from filenames when printing coverage
      summaries. This makes them easier to compare.
      
      llvm-svn: 280895
      fa754371
  5. Sep 07, 2016
  6. Sep 06, 2016
    • Ying Yi's avatar
      [llvm-cov] Add the project summary to the text coverage report for each source file. · 24e91bd0
      Ying Yi authored
      This patch is a spin-off from https://reviews.llvm.org/D23922. It extends the text view to preserve the same feature as the html view.
      
      Differential Revision: https://reviews.llvm.org/D24241
      
      llvm-svn: 280756
      24e91bd0
    • Ying Yi's avatar
      [llvm-cov] Add the "Go to first unexecuted line" feature. · d36b47c4
      Ying Yi authored
      This patch provides easy navigation to find the zero count lines, especially useful when the source file is very large.
      
      Differential Revision: https://reviews.llvm.org/D23277
      
      llvm-svn: 280739
      d36b47c4
    • Rafael Espindola's avatar
      Add an c++ itanium demangler to llvm. · b940b66c
      Rafael Espindola authored
      This adds a copy of the demangler in libcxxabi.
      
      The code also has no dependencies on anything else in LLVM. To enforce
      that I added it as another library. That way a BUILD_SHARED_LIBS will
      fail if anyone adds an use of StringRef for example.
      
      The no llvm dependency combined with the fact that this has to build
      on linux, OS X and Windows required a few changes to the code. In
      particular:
      
          No constexpr.
          No alignas
      
      On OS X at least this library has only one global symbol:
      __ZN4llvm16itanium_demangleEPKcPcPmPi
      
      My current plan is:
      
          Commit something like this
          Change lld to use it
          Change lldb to use it as the fallback
      
          Add a few #ifdefs so that exactly the same file can be used in
          libcxxabi to export abi::__cxa_demangle.
      
      Once the fast demangler in lldb can handle any names this
      implementation can be replaced with it and we will have the one true
      demangler.
      
      llvm-svn: 280732
      b940b66c
    • Justin Bogner's avatar
      bugpoint: Return Errors instead of passing around strings · 1c039155
      Justin Bogner authored
      This replaces the threading of `std::string &Error` through all of
      these APIs with checked Error returns instead. There are very few
      places here that actually emit any errors right now, but threading the
      APIs through will allow us to replace a bunch of exit(1)'s that are
      scattered through this code with proper error handling.
      
      This is more or less NFC, but does move around where a couple of error
      messages are printed out.
      
      llvm-svn: 280720
      1c039155
    • Justin Bogner's avatar
      Revert "bugpoint: Stop threading errors through APIs that never fail" · 24dac6af
      Justin Bogner authored
      This isn't the right thing to do - it turns out a number of the APIs
      that "never fail" just exit(1) if something bad happens. We can and
      should thread Error through this instead.
      
      That diff will make more sense with this reverted. Sorry for the
      noise.
      
      This reverts r280690
      
      llvm-svn: 280691
      24dac6af
    • Justin Bogner's avatar
      bugpoint: Stop threading errors through APIs that never fail · 46b1a9a7
      Justin Bogner authored
      This simplifies ListReducer and most of its subclasses by removing the
      std::string &Error that was threaded through all of them but almost
      never used. If we end up needing error handling in more places here we
      can reinstate it using llvm::Error instead of these unwieldy strings.
      
      The 2 cases (out of 12) that actually can hit the error cases are a
      little bit awkward now, but those will clean up as I refactor this API
      further.
      
      llvm-svn: 280690
      46b1a9a7
  7. Sep 04, 2016
  8. Sep 03, 2016
    • Nico Weber's avatar
      Revert r280549. · 05e78450
      Nico Weber authored
      The test it added doesn't pass:
      http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/15318/steps/ninja%20check%201/logs/FAIL%3A%20LLVM%3A%3Apdbdump-yaml-types.test
      
      Command Output (stdout):
      --
      $ "D:/buildslave/clang-x64-ninja-win7/stage1/./bin\llvm-pdbdump.EXE" "pdb2yaml" "-tpi-stream" "D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB/Inputs/empty.pdb"
      $ "D:/buildslave/clang-x64-ninja-win7/stage1/./bin\FileCheck.EXE" "-check-prefix=YAML" "D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB\pdbdump-yaml-types.test"
      # command stderr:
      D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB\pdbdump-yaml-types.test:36:7: error: expected string not found in input
      YAML: Name: apartment
            ^
      <stdin>:153:10: note: scanning from here
       Value: 161
               ^
      
      llvm-svn: 280577
      05e78450
    • Zachary Turner's avatar
      [codeview] Make FieldList records print as a yaml sequence. · 83849415
      Zachary Turner authored
      Before we were kind of imitating the behavior of a Yaml sequence
      by outputting each record one after the other.  This makes it a
      little cumbersome when we want to go the other direction -- from
      Yaml to Pdb.  So this treats FieldList records as no different than
      any other list of records, by printing them as a Yaml sequence with
      the exact same format.
      
      llvm-svn: 280549
      83849415
  9. Sep 02, 2016
  10. Sep 01, 2016
    • Justin Bogner's avatar
      bugpoint: clang-format and modernize comments in ListReducer. NFC · 06d466a9
      Justin Bogner authored
      llvm-svn: 280414
      06d466a9
    • Hal Finkel's avatar
      Add a counter-function insertion pass · 40d7f5c2
      Hal Finkel authored
      As discussed in https://reviews.llvm.org/D22666, our current mechanism to
      support -pg profiling, where we insert calls to mcount(), or some similar
      function, is fundamentally broken. We insert these calls in the frontend, which
      means they get duplicated when inlining, and so the accumulated execution
      counts for the inlined-into functions are wrong.
      
      Because we don't want the presence of these functions to affect optimizaton,
      they should be inserted in the backend. Here's a pass which would do just that.
      The knowledge of the name of the counting function lives in the frontend, so
      we're passing it here as a function attribute. Clang will be updated to use
      this mechanism.
      
      Differential Revision: https://reviews.llvm.org/D22825
      
      llvm-svn: 280347
      40d7f5c2
    • Zachary Turner's avatar
      [codeview] Have visitTypeBegin return the record type. · 77807637
      Zachary Turner authored
      Previously we were assuming that any visitation of types would
      necessarily be against a type we had binary data for.  Reasonable
      assumption when were just reading PDBs and dumping them, but once
      we start writing PDBs from Yaml this breaks down, because we have
      no binary data yet, only Yaml, and from that we need to read the
      record kind and perform the switch based on that.
      
      So this patch does that.  Instead of having the visitor switch
      on the kind that is already in the CVType record, we change the
      visitTypeBegin() method to return the Kind, and switch on the
      returned value.  This way, the default implementation can still
      return the value from the CVType, but the implementation which
      visits Yaml records and serializes binary PDB type records can
      use the field in the Yaml as the source of the switch.
      
      llvm-svn: 280307
      77807637
    • Reid Kleckner's avatar
      34151b30
  11. Aug 31, 2016
    • Zachary Turner's avatar
      [codeview] Add TypeVisitorCallbackPipeline. · 2f951ce9
      Zachary Turner authored
      We were kind of hacking this together before by embedding the
      ability to forward requests into the TypeDeserializer.  When
      we want to start adding more different kinds of visitor callback
      interfaces though, this doesn't scale well and is very inflexible.
      
      So introduce the notion of a pipeline, which itself implements
      the TypeVisitorCallbacks interface, but which contains an internal
      list of other callbacks to invoke in sequence.
      
      Also update the existing uses of CVTypeVisitor to use this new
      pipeline class for deserializing records before visiting them
      with another visitor.
      
      llvm-svn: 280293
      2f951ce9
    • Vedant Kumar's avatar
      [llvm-cov] Drop redundant "No." suffix in a column title · 8938f92a
      Vedant Kumar authored
      llvm-svn: 280181
      8938f92a
  12. Aug 30, 2016
Loading