• Samuel Huang's avatar
    [Supersize] Refactor to prepare for LTO string support integration. · 3df5254f
    Samuel Huang authored
    This CL refactors Supersize to prepare for bcanalyzer.py integration.
    Details:
    - Variable and function renames.
    - Split _BulkObjectFileAnalyzerWorker.AnalyzePaths():
      - _ClassifyPaths(): Explicitly store .a files and .o files. For LTO
        we'll split .o into ELF and BC buckets.
      - _MakeBatches(): Reusable later for ELF and BC separately.
      - _DoBulkFork(): Reusable.
      - _RunNm(): Absorbs nm-specific code, will add alternative.
    - Split _BulkObjectFileAnalyzerWorker.AnalyzeStringLiterals()
      - _ReadElfStringData(): Separation of concern.
      - _GetEncodedRangesFromStringAddresses(): ELF-specific code. Will
        add alternative.
      - Restructure how results are merged, with more comments.
    - Split ResolveStringPiecesIndirect() (was ResolveStringPieces()):
      - _AnnotateStringData(): Reusable.
      - Will add alternative: ResolveStringPieces().
    
    Bug: 723798
    Change-Id: Ib8e0e1785ae11652a17d060c9629e3986df0f93a
    Reviewed-on: https://chromium-review.googlesource.com/1146775
    Commit-Queue: Samuel Huang <huangs@chromium.org>
    Reviewed-by: default avatarSamuel Huang <huangs@chromium.org>
    Reviewed-by: default avataragrieve <agrieve@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#577274}
    3df5254f
nm.py 6.59 KB