LLVM backend for 6502
Go to file
Rafael Espindola 81c66bcc13 Create .symtab_shndxr only when needed.
We need .symtab_shndxr if and only if a symbol references a section with an
index >= 0xff00.

The old code was trying to figure out if the section was needed ahead of time,
making it a fairly dependent on the code actually writing the table. It was
also somewhat conservative and would create the section in cases where it was
not needed.

If I remember correctly, the old structure was there so that the sections were
created in the same order gas creates them. That was valuable when MC's support
for ELF was new and we tested with elf-dump.py.

This patch refactors the symbol table creation to another class and makes it
obvious that .symtab_shndxr is really only created when we are about to output
a reference to a section index >= 0xff00.

While here, also improve the tests to use macros. One file is one section
short of needing .symtab_shndxr, the second one has just the right number.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204769 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-25 23:44:25 +00:00
autoconf
bindings
cmake Remove cmake module support for Visual C++ 2010 (MSVC10) 2014-03-25 09:34:20 +00:00
docs Adding some very nascent information about the clang tablegen backends, with a promise to add more information later. 2014-03-24 18:18:31 +00:00
examples
include Use Endian.h to simplify this code a bit. 2014-03-25 22:43:53 +00:00
lib Create .symtab_shndxr only when needed. 2014-03-25 23:44:25 +00:00
projects
test Create .symtab_shndxr only when needed. 2014-03-25 23:44:25 +00:00
tools Create .symtab_shndxr only when needed. 2014-03-25 23:44:25 +00:00
unittests Fix these tests on windows. 2014-03-25 13:19:03 +00:00
utils remove a bunch of unused private methods 2014-03-23 17:09:26 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
Makefile.common
Makefile.config.in
Makefile.rules
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.