Type Hierarchy ============== ``TypeHirarchy`` provides class-hierarchy recovery for C++-style programs. **Headers**: ``include/Analysis/TypeHirarchy/`` **Implementation**: ``lib/Analysis/TypeHirarchy/`` Overview -------- This subsystem reconstructs inheritance and virtual-function-table structure from LLVM IR and debug information. It is useful for analyses that need dynamic type information or devirtualization-style reasoning. Main components --------------- - ``TypeHierarchy`` defines the generic hierarchy-query interface. - ``DIBasedTypeHierarchy`` and ``DIBasedTypeHierarchyData`` recover hierarchy information from debug metadata. - ``LLVMVFTable`` and ``LLVMVFTableData`` model virtual-function tables. - ``TypeHierarchyAnalysis`` packages the functionality as an analysis pass. Typical use cases ----------------- - Build class-hierarchy facts for indirect-call resolution. - Recover subtype relationships for object-oriented analyses. - Provide a basis for vtable- and dynamic-dispatch reasoning. Notes ----- The directory name in the current tree is spelled ``TypeHirarchy`` to match the existing code layout.