LLVM backend for 6502
Go to file
Chris Lattner 3bd39d4ca8 Implement some dag combines that allow doing fneg/fabs/fcopysign in integer
registers if used by a bitconvert or using a bitconvert.  This allows us to
avoid constant pool loads and use cheaper integer instructions when the
values come from or end up in integer regs anyway.  For example, we now 
compile CodeGen/X86/fp-in-intregs.ll to:

_test1:
	movl	$2147483648, %eax
	xorl	4(%esp), %eax
	ret
_test2:
	movl	$1065353216, %eax
	orl	4(%esp), %eax
	andl	$3212836864, %eax
	ret

Instead of:
_test1:
	movss	4(%esp), %xmm0
	xorps	LCPI2_0, %xmm0
	movd	%xmm0, %eax
	ret
_test2:
	movss	4(%esp), %xmm0
	andps	LCPI3_0, %xmm0
	movss	LCPI3_1, %xmm1
	andps	LCPI3_2, %xmm1
	orps	%xmm0, %xmm1
	movd	%xmm1, %eax
	ret

bitconverts can happen due to various calling conventions that require
fp values to passed in integer regs in some cases, e.g. when returning
a complex.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46414 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-27 17:42:27 +00:00
autoconf Update version to 2.3svn 2008-01-17 05:57:22 +00:00
bindings Modify Makefile.rules to allow makefiles to prepend to C.Flags and 2008-01-06 21:54:35 +00:00
docs Add description of 'llvm.trap' intrinsic. Also, minor fixes in formatting. 2008-01-15 22:31:34 +00:00
examples remove attributions from examples. 2007-12-29 20:37:57 +00:00
include make isExactlyValue work for long double. 2008-01-27 06:19:08 +00:00
lib Implement some dag combines that allow doing fneg/fabs/fcopysign in integer 2008-01-27 17:42:27 +00:00
projects remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
runtime Fixing the stack walker. 2008-01-24 05:16:36 +00:00
test Implement some dag combines that allow doing fneg/fabs/fcopysign in integer 2008-01-27 17:42:27 +00:00
tools - Introduces versioning macro LLVM_LTO_VERSION 2008-01-15 23:52:34 +00:00
utils Add interator interface to DAGInit also 2008-01-22 11:00:07 +00:00
website
win32 Add files to windows project files. Also include <algorithm> explicitly so that vstudio build works 2008-01-15 21:43:17 +00:00
Xcode Removing obsolete files from the Xcode project. 2007-12-31 01:45:55 +00:00
build-for-llvm-top.sh
configure Update version to 2.3svn 2008-01-17 05:57:22 +00:00
CREDITS.TXT Update credits. 2007-12-11 09:32:07 +00:00
LICENSE.TXT Update license for current year. 2008-01-17 05:57:59 +00:00
llvm.spec.in
Makefile remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11: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 improve compatibility with mingw, patch by Alain Frisch 2008-01-15 22:50:50 +00:00
Makefile.rules One too many )'s breaks 'make clean' with certain versions of make. 2008-01-22 05:19:26 +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.