LLVM backend for 6502
Go to file
David Blaikie b86fbcb08c Simplify destruction of Modules in LLVContextImpl.
This avoids copying the container by simply deleting until empty.

While I'd rather move to a stricter ownership semantic (unique_ptr),
SmallPtrSet can't cope with unique_ptr and the ownership semantics here
are a bit incestuous (Module sort of owns itself, but sort of doesn't
(if the LLVMContext is destroyed before the Module, then it deregisters
itself from the context... )).

Ideally Modules would be given to the context, or possibly an
emplace-like function to construct them there. Modules then shouldn't be
destroyed by LLVM API clients, but by interacting with the owner
(LLVMContext) directly (but even then, passing a Module* to LLVMContext
doesn't provide an easy way to destroy the Module, since the set would
be over unique_ptrs and you'd need a heterogenous lookup function which
SmallPtrSet doesn't have either).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206794 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-21 21:27:19 +00:00
autoconf ARM64: initial backend import 2014-03-29 10:18:08 +00:00
bindings Convert getFileOffset to getOffset and move it to its only user. 2014-04-21 13:45:32 +00:00
cmake Added Sphinx documentation generation to CMake build system. 2014-04-18 21:45:25 +00:00
docs Added Sphinx documentation generation to CMake build system. 2014-04-18 21:45:25 +00:00
examples Fix warnings about an variable only used in asserts. 2014-03-06 06:35:46 +00:00
include Use unique_ptr to manage objects owned by the ScheduleDAGMI. 2014-04-21 20:32:32 +00:00
lib Simplify destruction of Modules in LLVContextImpl. 2014-04-21 21:27:19 +00:00
projects Remove projects/sample. 2014-03-12 22:40:22 +00:00
test Handle _GLOBAL_OFFSET_TABLE_ in 64 bit mode. 2014-04-21 21:15:45 +00:00
tools Convert getFileOffset to getOffset and move it to its only user. 2014-04-21 13:45:32 +00:00
unittests Make the User::value_op_iterator a random access iterator. I had written 2014-04-17 09:07:50 +00:00
utils More C++ification. 2014-04-20 22:10:16 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.gitignore Remove projects/sample. 2014-03-12 22:40:22 +00:00
CMakeLists.txt Added Sphinx documentation generation to CMake build system. 2014-04-18 21:45:25 +00:00
CODE_OWNERS.TXT ARM Linux support 2014-04-02 23:03:28 +00:00
configure ARM64: initial backend import 2014-03-29 10:18:08 +00:00
CREDITS.TXT Test commit. 2014-04-10 22:25:51 +00:00
LICENSE.TXT Remove projects/sample. 2014-03-12 22:40:22 +00:00
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 Add a --enable-clang-plugin-support option to configure. 2014-03-10 16:58:35 +00:00
Makefile.rules Use -std=gnu++11 on cygwin and mingw. 2014-03-12 20:01:15 +00:00
README.txt Revert "Test commit to check e-mail address. Please discard this." 2013-10-04 10:59:13 +00:00

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.