llvm-project/llvm
Zachary Turner 6284aee9f8 [NativePDB] Rewrite the PdbSymUid to use our own custom namespacing scheme.
Originally we created our 64-bit UID scheme by using the first byte as
sort of a "tag" to represent what kind of symbol this was, and we
re-used the PDB_SymType enumeration for this.  For native pdb support,
this is not really the right abstraction layer, because what we really
want is something that tells us *how* to find the symbol.  This means,
specifically, is in the globals stream / public stream / module stream /
TPI stream / etc, and for whichever one it is in, where is it within
that stream?

A good example of why the old namespacing scheme was insufficient is
that it is more or less impossible to create a uid for a field list
member of a class/struction/union/enum that tells you how to locate
the original record.

With this new scheme, the first byte is no longer a PDB_SymType enum
but a new enum created specifically to identify where in the PDB
this record lives.  This gives us much better flexibility in
what kinds of symbols the uids can identify.

llvm-svn: 347018
2018-11-16 02:42:32 +00:00
..
benchmarks
bindings [bindings/go] Add Go bindings to LLVMGetIndices 2018-11-08 04:04:04 +00:00
cmake Fix DragonFlyBSD linkage issue. 2018-11-10 18:47:00 +00:00
docs Added missing whitespace in the link. 2018-11-16 01:23:12 +00:00
examples Add bracket that was lost in rL346727 and has been causing buildbot failures for some time. 2018-11-13 11:28:46 +00:00
include [NativePDB] Rewrite the PdbSymUid to use our own custom namespacing scheme. 2018-11-16 02:42:32 +00:00
lib [X86] Use ANY_EXTEND instead of SIGN_EXTEND in the AVX2 and later path for legalizing vXi8 multiply. 2018-11-16 01:16:59 +00:00
projects
resources
runtimes
test Revert r347014 "[X86] Add some test cases for vector multiplies on vectors shorter than 128 bits with -x86-experimental-vector-widening-legalization." 2018-11-16 01:57:55 +00:00
tools [llvm-objdump] Use `auto` declaration in typecasting 2018-11-15 11:51:13 +00:00
unittests [VFS] Update unittest to fix Windows buildbot. 2018-11-16 02:20:33 +00:00
utils Mark @llvm.trap cold 2018-11-14 19:53:41 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore [git/svn] Ignore Visual Studio's CMakeSettings.json. 2018-10-29 14:51:02 +00:00
CMakeLists.txt Revert "Reorder FindPythonInterp so that config-ix can use PYTHON_EXECUTABLE" 2018-11-08 01:10:24 +00:00
CODE_OWNERS.TXT
CREDITS.TXT It's a test commit, which is my first commit and also add my name to CREDITS.TXT 2018-11-06 03:07:03 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT Adding Yvan as release test backup for Diana 2018-11-08 11:51:27 +00:00
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

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

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.