LLVM backend for 6502
Go to file
Chandler Carruth 40dab1059e Bring TinyPtrVector under test. Somehow we never picked up unit tests
for this class. These tests exercise most of the basic properties, but
the API for TinyPtrVector is very strange currently. My plan is to start
fleshing out the API to match that of SmallVector, but I wanted a test
for what is there first.

Sadly, it doesn't look reasonable to just re-use the SmallVector tests,
as this container can only ever store pointers, and much of the
SmallVector testing is to get construction and destruction right.

Just to get this basic test working, I had to add value_type to the
interface.

While here I found a subtle bug in the combination of 'erase', 'begin',
and 'end'. Both 'begin' and 'end' wanted to use a null pointer to
indicate the "end" iterator of an empty vector, regardless of whether
there is actually a vector allocated or the pointer union is null.
Everything else was fine with this except for erase. If you erase the
last element of a vector after it has held more than one element, we
return the end iterator of the underlying SmallVector which need not be
a null pointer. Instead, simply use the pointer, and poniter + size()
begin/end definitions in the tiny case, and delegate to the inner vector
whenever it is present.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161024 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-31 02:48:31 +00:00
autoconf Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
bindings
cmake autoconf: Re-introduce LLVM_HOSTTRIPLE since r143500, as rework of PR11060. 2012-07-22 03:04:52 +00:00
docs Fix grammar-o. Fixes PR13482! 2012-07-30 21:10:51 +00:00
examples
include Bring TinyPtrVector under test. Somehow we never picked up unit tests 2012-07-31 02:48:31 +00:00
lib Clear kill flags in removeCopyByCommutingDef(). 2012-07-31 02:47:24 +00:00
projects Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
runtime
test Clear kill flags in removeCopyByCommutingDef(). 2012-07-31 02:47:24 +00:00
tools Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
unittests Bring TinyPtrVector under test. Somehow we never picked up unit tests 2012-07-31 02:48:31 +00:00
utils Mark MOVZX32_NOREX as isCodeGenOnly and neverHasSideEffects. The isCodeGenOnly change allows special detection of _NOREX instructions to be removed from tablegen disassembler code. 2012-07-30 06:48:11 +00:00
.gitignore
CMakeLists.txt Revert "Build script changes for R600/SI Codegen v6" 2012-07-16 18:19:46 +00:00
CODE_OWNERS.TXT Add the list of code owners to the top level of the LLVM source tree to 2012-07-26 08:04:09 +00:00
configure autoconf: Re-introduce LLVM_HOSTTRIPLE since r143500, as rework of PR11060. 2012-07-22 03:04:52 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile
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 HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.