This is an archive of the discontinued LLVM Phabricator instance.

Implement various flavors of type merging
ClosedPublic

Authored by zturner on May 22 2017, 9:53 AM.

Details

Summary

Our previous algorithm assumed that types and id records were in a single unified stream. For type information in object files this is the case, but for type information in PDB files the IDs and types have already been split out. In that case, we need a mode where we can assume that a given type stream contains only type records or only id records. This patch adds such a mode.

Diff Detail

Repository
rL LLVM

Event Timeline

zturner created this revision.May 22 2017, 9:53 AM
rnk accepted this revision.May 22 2017, 12:52 PM

lgtm!

llvm/test/DebugInfo/PDB/pdbdump-merge-ids-and-types.test
4 ↗(On Diff #99784)

This would make the test slightly faster:

; RUN: llvm-pdbdump raw -tpi-records %t.3.pdb > %t.tpi
; RUN: llvm-pdbdump raw -ipi-records %t.3.pdb > %t.ipi
; RUN: FileCheck %s -check-prefix=TPI-TYPES < %t.tpi
; RUN: FileCheck %s -check-prefix=INTMAIN < %t.tpi
; RUN: FileCheck %s -check-prefix=VOIDMAIN < %t.tpi
; RUN: FileCheck %s -check-prefix=IPI-TYPES < %t.ipi
; RUN: FileCheck %s -check-prefix=IPI-NAMES< %t.ipi
; RUN: FileCheck %s -check-prefix=IPI-UDT< %t.ipi

Up to you. It's probably only worth it for 4+ runs.

This revision is now accepted and ready to land.May 22 2017, 12:52 PM
This revision was automatically updated to reflect the committed changes.
llvm/trunk/test/DebugInfo/PDB/Inputs/merge-types-2.yaml