1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
Go to file
Dan Gohman 18a3644dde When a constant's type is refined, update the constant in place
instead of cloning and RAUWing it.

 - Make AbstractTypeUser a friend of Value so that it can offer
   its subclasses a way to update a Value's type in place. This
   is better than a universally visible setType method on Value,
   and it's sufficient for the immediate need.

 - Eliminate the constant "convert" functions. This eliminates a
   lot of logic duplication, and fixes a complicated bug where a
   constant can't actually be cloned during the type refinement
   process because some of the types that its folder needs are
   half-destroyed, being in the middle of refinement themselves.

 - Move the getValType functions from being static overloaded
   functions in Constants.cpp to be members of class template
   specializations in ConstantsContext.h. This means that the
   code ends up getting instantiated twice, however it also
   makes it possible to eliminate all "convert" functions, so
   it's not a big net code size increase. And if desired, the
   duplicate instantiations could be eliminated with some
   reorganization.

llvm-svn: 81861
2009-09-15 15:58:07 +00:00
autoconf Enable the jit for llvm-config. 2009-09-14 16:38:49 +00:00
bindings Expose initializing the native target for the execution engine. 2009-09-14 21:54:32 +00:00
cmake Update CMake dependencies. 2009-09-14 05:22:54 +00:00
docs Give llvm-link a -S option. 2009-09-15 15:35:07 +00:00
examples Allocate the module provider in the Kaleidoscope code on the heap, not the stack, so that it can be properly deleted. Also update the tutorial with the new code. This fixes PR4762, hopefully better than the last time. 2009-08-26 20:58:25 +00:00
include When a constant's type is refined, update the constant in place 2009-09-15 15:58:07 +00:00
lib When a constant's type is refined, update the constant in place 2009-09-15 15:58:07 +00:00
projects install-sh chmods to 0755 by default, and this causes 'git diff' to show 2009-08-28 16:12:48 +00:00
runtime OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
test When a constant's type is refined, update the constant in place 2009-09-15 15:58:07 +00:00
tools Give llvm-link a -S option. 2009-09-15 15:35:07 +00:00
unittests Attempt to fix some 4.0.0 build warnings. 2009-09-14 02:38:53 +00:00
utils Add a valgrind suppressions file for x86_64/linux/4.3.3. 2009-09-14 16:10:32 +00:00
website
win32 Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. 2009-07-24 23:12:02 +00:00
Xcode Remove the IA-64 backend. 2009-07-24 00:30:09 +00:00
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt CMake: New user-settable variable LLVM_TARGET_ARCH useful when 2009-09-13 22:18:38 +00:00
configure Enable the jit for llvm-config. 2009-09-14 16:38:49 +00:00
CREDITS.TXT Add myself to the blame list. 2009-08-20 15:20:15 +00:00
LICENSE.TXT Add regular expression matching support, based on OpenBSD regexec()/regcomp() 2009-08-30 08:24:09 +00:00
llvm.spec.in
Makefile Build (not test) the unittests as part of a normal build. 2009-09-13 22:39:27 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Improve support for cross-hosted builds of LLVM. 2009-09-02 23:52:23 +00:00
Makefile.rules Build (not test) the unittests as part of a normal build. 2009-09-13 22:39:27 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
README.txt README.txt: test commit w/blank line appended 2009-03-23 21:00:45 +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 HTML documentation provided in docs/index.html for further
assistance with LLVM.