[demangler] Use an AST to represent demangled names

Description

[demangler] Use an AST to represent demangled names

The demangler now demangles by producing an AST, then traverses that
AST to produce a demangled name. This is done for performance reasons,
now the demangler doesn't manuiplate std::strings, which hurt
performance and caused string operations to be inlined into the
parser, leading to large code size and stack usage.

Differential revision: https://reviews.llvm.org/D35159

Details

Committed
epilkJul 27 2017, 5:43 PM
Differential Revision
D35159: [libcxxabi][demangler] Use an AST to represent the demangled name
Parents
rL309339: [sancov] Add missing line breaks in test. NFC.
Branches
Unknown
Tags
Unknown