Go to file
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
clang [CodeGen] Merge identical block descriptor global variables. 2018-08-17 15:46:07 +00:00
clang-tools-extra [clangd] Add parantheses while auto-completing functions. 2018-08-17 15:42:54 +00:00
compiler-rt [NFC] Some small test updates for Implicit Conversion sanitizer. 2018-08-17 07:33:38 +00:00
debuginfo-tests Add a basic integration test for C++ smart pointers 2018-08-16 23:05:15 +00:00
libclc amdgcn: Use __constant AS for amdgcn builtins. 2018-08-03 15:14:08 +00:00
libcxx Recommit r339943 - Establish the <bit> header. NFC yet. Reviewed as https://reviews.llvm.org/D50815 - with a fix for the sanitizer bots 2018-08-17 16:07:48 +00:00
libcxxabi Factor Node creation out of the demangler. No functionality change intended. 2018-08-16 22:04:36 +00:00
libunwind NFC: Test commit access 2018-08-16 16:55:07 +00:00
lld [LLD][ELF] - Remove dead code. NFC. 2018-08-17 11:19:55 +00:00
lldb Fix compiler warnings after rL339649. 2018-08-17 07:28:24 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [MS Demangler] Rework the way operators are demangled. 2018-08-17 16:14:05 +00:00
openmp [OMPT] Remove OMPT idle callback 2018-08-15 13:54:28 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [DepInfo] Use isl++ in Dependences::isValidSchedule. NFC. 2018-08-10 22:33:27 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.