llvm-project/llvm
Duncan Sands 445071c44f Fix PR3117: not all nodes being legalized. The
essential problem was that the DAG can contain
random unused nodes which were never analyzed.
When remapping a value of a node being processed,
such a node may become used and need to be analyzed;
however due to operands being transformed during
analysis the node may morph into a different one.
Users of the morphing node need to be updated, and
this wasn't happening.  While there I added a bunch
of documentation and sanity checks, so I (or some
other poor soul) won't have to scratch their head
over this stuff so long trying to remember how it
was all supposed to work next time some obscure
problem pops up!  The extra sanity checking exposed
a few places where invariants weren't being preserved,
so those are fixed too.  Since some of the sanity
checking is expensive, I added a flag to turn it
on.  It is also turned on when building with
ENABLE_EXPENSIVE_CHECKS=1.

llvm-svn: 60797
2008-12-09 21:33:20 +00:00
..
Xcode Remove Stacker.html from Xcode project. 2008-10-14 23:23:59 +00:00
autoconf Revert accidental last patch 2008-11-20 04:28:08 +00:00
bindings PR2731: C and Ocaml bindings for setTailCall and isTailCall. 2008-08-30 16:34:54 +00:00
cmake Fix a link issue I ran into trying compiling LLVM on MinGW with CMake. 2008-11-30 02:42:05 +00:00
docs Man page typo fix. 2008-12-09 14:41:00 +00:00
examples reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an 2008-11-21 16:42:48 +00:00
include Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
lib Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
projects Add "sample" documentation to sample project. 2008-09-15 05:31:29 +00:00
runtime Fixing the stack walker. 2008-01-24 05:16:36 +00:00
test Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
tools Support -emit-llvm properly (with -S and -c). 2008-12-09 14:40:18 +00:00
utils Make 'extern' an option property. 2008-12-07 16:47:12 +00:00
website
win32 Add files to VC++ projects. 2008-11-13 21:18:54 +00:00
CMakeLists.txt CMake: Option for building with -fPIC. 2008-11-20 19:13:51 +00:00
CREDITS.TXT Keep CREDITS.TXT sorted by name. 2008-11-07 12:44:36 +00:00
LICENSE.TXT llvmc doesn't exist anymore, and llvmc2 doesn't have a special license file. 2008-06-20 20:05:57 +00:00
Makefile Proper way of doing llvm canadian-cross compilation. 2008-11-10 07:33:13 +00:00
Makefile.common remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.config.in Use spaces rather than tab. 2008-10-22 09:42:14 +00:00
Makefile.rules Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
ModuleInfo.txt
README.txt Remove extra lines 2008-07-28 20:50:25 +00:00
build-for-llvm-top.sh
configure Add XCore backend. 2008-11-07 10:59:00 +00:00
llvm.spec.in

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.