Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Chandler Carruth 99650c9088 Move the CodeExtractor utility to a dedicated header file / source file,
and expose it as a utility class rather than as free function wrappers.

The simple free-function interface works well for the bugpoint-specific
pass's uses of code extraction, but in an upcoming patch for more
advanced code extraction, they simply don't expose a rich enough
interface. I need to expose various stages of the process of doing the
code extraction and query information to decide whether or not to
actually complete the extraction or give up.

Rather than build up a new predicate model and pass that into these
functions, just take the class that was actually implementing the
functions and lift it up into a proper interface that can be used to
perform code extraction. The interface is cleaned up and re-documented
to work better in a header. It also is now setup to accept the blocks to
be extracted in the constructor rather than in a method.

In passing this essentially reverts my previous commit here exposing
a block-level query for eligibility of extraction. That is no longer
necessary with the more rich interface as clients can query the
extraction object for eligibility directly. This will reduce the number
of walks of the input basic block sequence by quite a bit which is
useful if this enters the normal optimization pipeline.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156163 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04 10:18:49 +00:00
autoconf fix typo 2012-04-30 20:06:58 +00:00
bindings [python] Add negative MemoryBuffer testcase 2012-03-22 11:23:52 +00:00
cmake Pass -fcolor-diagnostics when it is supported. This makes a difference when 2012-05-04 03:23:36 +00:00
docs Use correct variable in this example. Pointed out by waynix on IRC. 2012-05-03 15:25:19 +00:00
examples Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
include Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
lib Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
projects Update config.sub in the sample project. 2012-04-27 10:27:32 +00:00
runtime Switch to c-style comments in a C file. 2012-04-27 19:30:29 +00:00
test Allow v16i16 and v32i8 shuffles to be rewritten as narrower shuffles. 2012-05-04 04:44:49 +00:00
tools Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
unittests SmallVector: Don't rely on having an assignment operator around in push_back for POD-like types. 2012-04-29 10:53:29 +00:00
utils Remove TargetRegisterClass::SuperRegClasses. 2012-05-04 03:30:28 +00:00
.gitignore Add tools/lld to .gitignore. 2012-05-02 21:25:32 +00:00
CMakeLists.txt CMake: Prune redundant LLVM_COMPILER_JOBS from llvm/CMakeLists.txt. HandleLLVMOptions.cmake has it. 2012-04-21 14:50:56 +00:00
configure fix typo 2012-04-30 20:06:58 +00:00
CREDITS.TXT Update the documentation of CellSPU, in case it gets removed in 3.1. 2012-04-29 20:00:55 +00:00
LICENSE.TXT Add YAML parser to Support. 2012-04-03 23:09:22 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile When cross compiling, install a host version of llvm-config. <rdar://11187889> 2012-04-19 23:19:55 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Add profiling support for Intel Parallel Amplifier XE (VTune) for JITted code in LLVM. 2012-03-13 08:33:15 +00:00
Makefile.rules Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
README.txt test commit 2012-03-20 13:12:38 +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.