llvm-project/llvm/lib
Zachary Turner 3461bfaa9c [MS Demangler] Rework the way operators are demangled.
Previously, some of the code for actually parsing mangled
operator names was more like formatting code in nature,
and was interspersed with the demangling code which builds
the AST.  This means that by the time we got to the printing
code, we had lost all information about what type of operator
we had, and all we were left with was a string that we just
had to print.  However, not all operators are actually even
operators.  it's basically just a catch-all mangling for
"special names", and for some of the other types it helps
to know when we're actually doing the printing what it is.

This patch changes the way things work by introducing an
OperatorInfo structure and corresponding enumeration.  When
we demangle we store the enumeration value and demangled
components separately.  This gives more flexibility during
printing.

In doing so, some demanglings of special names which we didn't
previously support come out of this for free, so we now demangle
those.

A few are more complex and are better left for a followup patch
though.

An exhaustive test of every possible operator code is included,
with the ones that don't yet work commented out.

llvm-svn: 340046
2018-08-17 16:14:05 +00:00
..
Analysis [InstrSimplify,NewGVN] Add option to ignore additional instr info when simplifying. 2018-08-17 14:39:04 +00:00
AsmParser DebugInfo: Add metadata support for disabling DWARF pub sections 2018-08-16 21:29:55 +00:00
BinaryFormat [dwarfdump] Add pretty printer for accelerator table based on Atom. 2018-07-13 17:21:51 +00:00
Bitcode DebugInfo: Add metadata support for disabling DWARF pub sections 2018-08-16 21:29:55 +00:00
CodeGen [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-17 15:22:04 +00:00
DebugInfo [codeview] Use push_macro to avoid conflicts instead of a prefix 2018-08-16 17:34:31 +00:00
Demangle [MS Demangler] Rework the way operators are demangled. 2018-08-17 16:14:05 +00:00
ExecutionEngine [MCJIT] Fix a case of Error::success() being passed to report_fatal_error. 2018-08-15 20:11:21 +00:00
FuzzMutate Remove trailing space 2018-07-30 19:41:25 +00:00
Fuzzer
IR [DomTree] Add constructor to create a new DT based on current DT/CFG and a set of Updates. 2018-08-16 21:54:33 +00:00
IRReader
LTO Remove trailing space 2018-07-30 19:41:25 +00:00
LineEditor
Linker [NFC] Remove an empty line. 2018-07-27 06:50:45 +00:00
MC [MC] Improve COFF associative section lookup 2018-08-16 21:34:41 +00:00
Object llvm-readobj: Fix addend in relocations for android packed format 2018-08-15 17:58:22 +00:00
ObjectYAML [yaml2obj] - Add a support for changing EntSize. 2018-08-07 08:11:38 +00:00
Option Re-revert "[Option] Fix PR37006 prefix choice in findNearest" 2018-05-19 16:21:01 +00:00
Passes Revert "[GVNHoist] Re-enable GVNHoist by default" 2018-07-30 20:07:33 +00:00
ProfileData [Coverage] Ignore 'unused' functions with non-zero execution counts 2018-08-07 22:25:36 +00:00
Support [ARM/AArch64] Support FP16 +fp16fml instructions 2018-08-17 11:29:49 +00:00
TableGen Remove trailing space 2018-07-30 19:41:25 +00:00
Target [PowerPC] Generate lxsd instead of the ld->mtvsrd sequence for vector loads 2018-08-17 15:15:26 +00:00
Testing [LLVMTestingSupport] Add explicit linkage to LLVMSupport 2018-04-08 06:49:17 +00:00
ToolDrivers Give llvm-lib rudimentary help output. 2018-07-14 02:29:44 +00:00
Transforms [InstrSimplify,NewGVN] Add option to ignore additional instr info when simplifying. 2018-08-17 14:39:04 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay [XRay] Improve error reporting when loading traces 2018-08-07 04:42:39 +00:00
CMakeLists.txt
LLVMBuild.txt