LLVM backend for 6502
Go to file
Chris Lattner c5eff4488b Symbolically evaluate constant expressions like &A[123] - &A[4].f.
This occurs in C++ code like:

#include <iostream>
#include <iterator>
int a[] = { 1, 2, 3, 4, 5 };
int main() {
  using namespace std;
  copy(a, a + sizeof(a)/sizeof(a[0]), ostream_iterator<int>(cout, "\n"));
  return 0;
}

Before we would decide the loop trip count is:
sdiv (i32 sub (i32 ptrtoint (i32* getelementptr ([5 x i32]* @a, i32 0, i32 5) to i32), i32 ptrtoint ([5 x i32]* @a to i32)), i32 4)

Now we decide it is "5".  Amazing.

This code will need to be refactored, but I'm doing that as a separate
commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33665 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 22:32:46 +00:00
autoconf Fix the TARGET_HAS_JIT settings. Sparc doesn't, x86_64 does, ARM doesn't. 2007-01-21 06:41:11 +00:00
docs Grammar fix 2007-01-28 15:27:21 +00:00
examples Fix a #include to resolve IntegerType class. 2007-01-19 22:45:50 +00:00
include For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid 2007-01-30 20:08:39 +00:00
lib Symbolically evaluate constant expressions like &A[123] - &A[4].f. 2007-01-30 22:32:46 +00:00
projects remove obsolete comment 2007-01-17 05:26:57 +00:00
runtime the old trace values pass has been removed, remove its runtime library. 2007-01-07 18:13:48 +00:00
test For PR411: 2007-01-30 16:16:01 +00:00
tools For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid 2007-01-30 20:08:39 +00:00
utils Make the constant honest. 2007-01-26 23:00:54 +00:00
win32 Unbreak VC++ build. 2007-01-15 20:27:18 +00:00
Xcode Update project 2007-01-29 18:45:08 +00:00
.cvsignore Add llvm.spec, a generated file. 2006-10-18 19:23:56 +00:00
configure Regenerate. 2007-01-21 06:42:03 +00:00
CREDITS.TXT Testing commit, and adding an entry to CREDITS.TXT 2007-01-08 03:10:00 +00:00
LICENSE.TXT Welcome 2007. 2007-01-18 21:22:36 +00:00
llvm.spec.in Minor technical correction in documentation. 2006-08-21 01:58:57 +00:00
Makefile Undo removal of the runtime libraries. While this may have been a bit 2006-11-17 03:32:33 +00:00
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in For PR739: 2007-01-17 20:24:45 +00:00
Makefile.rules Work around broken binutils on alpha 2007-01-26 13:34:50 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +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.