LLVM backend for 6502
Go to file
Chandler Carruth 07c2241e45 [LCG] Add a unittest for the LazyCallGraph. I had a weak moment and
resisted this for too long. Just with the basic testing here I was able
to exercise the analysis in more detail and sift out both type signature
bugs in the API and a bug in the DFS numbering. All of these are fixed
here as well.

The unittests will be much more important for the mutation support where
it is necessary to craft minimal mutations and then inspect the state of
the graph. There is just no way to do that with a standard FileCheck
test. However, unittesting these kinds of analyses is really quite easy,
especially as they're designed with the new pass manager where there is
essentially no infrastructure required to rig up the core logic and
exercise it at an API level.

As a minor aside about the DFS numbering bug, the DFS numbering used in
LCG is a bit unusual. Rather than numbering from 0, we number from 1,
and use 0 as the sentinel "unvisited" state. Other implementations often
use '-1' for this, but I find it easier to deal with 0 and it shouldn't
make any real difference provided someone doesn't write silly bugs like
forgetting to actually initialize the DFS numbering. Oops. ;]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206954 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-23 08:08:49 +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 [docs] Add a note to docs/README.txt 2014-04-22 21:47:53 +00:00
examples Fix warnings about an variable only used in asserts. 2014-03-06 06:35:46 +00:00
include [LCG] Add a unittest for the LazyCallGraph. I had a weak moment and 2014-04-23 08:08:49 +00:00
lib [LCG] Add a unittest for the LazyCallGraph. I had a weak moment and 2014-04-23 08:08:49 +00:00
projects Remove projects/sample. 2014-03-12 22:40:22 +00:00
test X86Disassembler - fixed a bug in immediate print 2014-04-23 07:21:04 +00:00
tools Use unique_ptr to manage ParsedBinariesAndObjects in LLVMSymbolizer 2014-04-22 05:26:14 +00:00
unittests [LCG] Add a unittest for the LazyCallGraph. I had a weak moment and 2014-04-23 08:08:49 +00:00
utils [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 03:06:00 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format
.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

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.