LLVM backend for 6502
Go to file
Chandler Carruth 6527ecc918 Teach MBP to force-merge layout successors for blocks with unanalyzable
branches that also may involve fallthrough. In the case of blocks with
no fallthrough, we can still re-order the blocks profitably. For example
instruction decoding will in some cases continue past an indirect jump,
making laying out its most likely successor there profitable.

Note, no test case. I don't know how to write a test case that exercises
this logic, but it matches the described desired semantics in
discussions with Jakob and others. If anyone has a nice example of IR
that will trigger this, that would be lovely.

Also note, there are still assertion failures in real world code with
this. I'm digging into those next, now that I know this isn't the cause.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144499 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-13 12:17:28 +00:00
autoconf Add an option '--enable-libcpp' that will have the compiler pass on 2011-11-11 22:51:42 +00:00
bindings Minor fixes in Makefiles for the OCaml bindings: 2011-11-09 12:00:39 +00:00
cmake Fix CRT selection logic when using CMake NMake generator. 2011-11-06 23:37:22 +00:00
docs LLVMBuild: Add explicit information on whether targets define an assembly printer, assembly parser, or disassembler. 2011-11-11 00:23:56 +00:00
examples build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
include Prune more RALinScan. RALinScan was also here! 2011-11-13 01:33:10 +00:00
lib Teach MBP to force-merge layout successors for blocks with unanalyzable 2011-11-13 12:17:28 +00:00
projects build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
runtime PathProfiling.c: Get rid of using "inline". We may expect compiler shall optimize out "static" scope w/o "inline". 2011-11-08 12:03:14 +00:00
test Rewrite #3 of machine block placement. This is based somewhat on the 2011-11-13 11:20:44 +00:00
tools llvm-config-2: Detect when we are running out of a BuildTools development tree, so that we can always provide library/include information for the real build directory. 2011-11-11 22:59:47 +00:00
unittests unittests/MultiJITTest.cpp: Tweak how to check symbol value for Win32 --enable-shared. 2011-11-09 08:30:43 +00:00
utils LLVMBuild: Add info for gtest. 2011-11-12 02:11:04 +00:00
.gitignore git: Add tools/lldb to the ignore list. 2011-11-10 22:55:50 +00:00
CMakeLists.txt Revert r144300 "llvm-config: Replace with C++ version (was llvm-config-2).", 2011-11-10 19:59:35 +00:00
configure Add an option '--enable-libcpp' that will have the compiler pass on 2011-11-11 22:51:42 +00:00
CREDITS.TXT CREDITS.TXT: Add a line. (test commit) 2011-10-29 23:42:14 +00:00
LICENSE.TXT Happy new year. 2011-06-12 15:26:54 +00:00
llvm.spec.in
LLVMBuild.txt build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
Makefile build/Make: Define a TARGET_NATIVE_ARCH variable to be a bit more precise than 2011-11-12 00:18:02 +00:00
Makefile.common
Makefile.config.in build/Make: Define a TARGET_NATIVE_ARCH variable to be a bit more precise than 2011-11-12 00:18:02 +00:00
Makefile.rules build/Make: Define a TARGET_NATIVE_ARCH variable to be a bit more precise than 2011-11-12 00:18:02 +00:00
README.txt test commit undo 2011-11-10 20:39:51 +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.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.