LLVM backend for 6502
Go to file
Duncan Sands edfcf598fa Sometimes (rarely) nodes held in LegalizeTypes
maps can be deleted.  This happens when RAUW
replaces a node N with another equivalent node
E, deleting the first node.  Solve this by
adding (N, E) to ReplacedNodes, which is already
used to remap nodes to replacements.  This means
that deleted nodes are being allowed in maps,
which can be delicate: the memory may be reused
for a new node which might get confused with the
old deleted node pointer hanging around in the
maps, so detect this and flush out maps if it
occurs (ExpungeNode).  The expunging operation
is expensive, however it never occurs during
a llvm-gcc bootstrap or anywhere in the nightly
testsuite.  It occurs three times in "make check":
Alpha/illegal-element-type.ll,
PowerPC/illegal-element-type.ll and
X86/mmx-shift.ll.  If expunging proves to be too
expensive then there are other more complicated
ways of solving the problem.
In the normal case this patch adds the overhead
of a few more map lookups, which is hopefully
negligable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52214 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-11 11:42:12 +00:00
autoconf For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h" 2008-05-29 17:41:17 +00:00
bindings Remove a duplicative binding. Patch by Mahadevan R. 2008-05-19 05:47:10 +00:00
docs adjust calls to ConstantFP::get to new API 2008-06-10 01:52:17 +00:00
examples API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) 2008-05-16 19:29:10 +00:00
include Sometimes (rarely) nodes held in LegalizeTypes 2008-06-11 11:42:12 +00:00
lib Sometimes (rarely) nodes held in LegalizeTypes 2008-06-11 11:42:12 +00:00
projects
runtime
test Use %link not %llvmgxx (which includes -c) to do the link. 2008-06-10 18:01:54 +00:00
tools Make all help strings start in upper case. 2008-05-30 21:14:10 +00:00
utils Remove some debug output from tblgen. This fixes a test. 2008-06-10 14:53:49 +00:00
website
win32 Update VC project files, patch by Cédric Venet! 2008-06-07 19:33:54 +00:00
Xcode
build-for-llvm-top.sh
configure Regenerate 2008-05-29 17:41:34 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h" 2008-05-29 17:41:17 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Warn of potential violations of strict aliasing rules. 2008-06-05 23:00:08 +00:00
ModuleInfo.txt
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.