LLVM backend for 6502
Go to file
Chandler Carruth 13086a658a Begin fleshing out an interface in TTI for modelling the costs of
generic function calls and intrinsics. This is somewhat overlapping with
an existing intrinsic cost method, but that one seems targetted at
vector intrinsics. I'll merge them or separate their names and use cases
in a separate commit.

This sinks the test of 'callIsSmall' down into TTI where targets can
control it. The whole thing feels very hack-ish to me though. I've left
a FIXME comment about the fundamental design problem this presents. It
isn't yet clear to me what the users of this function *really* care
about. I'll have to do more analysis to figure that out. Putting this
here at least provides it access to proper analysis pass tools and other
such. It also allows us to more cleanly implement the baseline cost
interfaces in TTI.

With this commit, it is now theoretically possible to simplify much of
the inline cost analysis's handling of calls by calling through to this
interface. That conversion will have to happen in subsequent commits as
it requires more extensive restructuring of the inline cost analysis.

The CodeMetrics class is now really only in the business of running over
a block of code and aggregating the metrics on that block of code, with
the actual cost evaluation done entirely in terms of TTI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173148 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-22 11:26:02 +00:00
autoconf Disable Uninitialized Use Warnings for Broken gcc Versions 2013-01-15 18:21:15 +00:00
bindings
cmake
docs Fix spelling 2013-01-21 23:20:47 +00:00
examples
include Begin fleshing out an interface in TTI for modelling the costs of 2013-01-22 11:26:02 +00:00
lib Begin fleshing out an interface in TTI for modelling the costs of 2013-01-22 11:26:02 +00:00
projects
runtime
test This test is only supposed to test that the objc-arc alias analysis 2013-01-22 04:41:11 +00:00
tools Fix missed out llvm-stress after APFloat change. 2013-01-22 10:18:26 +00:00
unittests ADT/SparseMultiSetTest.cpp: Try to appease cygwin-clang on stage2, take two. [-Wsign-compare] 2013-01-22 10:39:31 +00:00
utils llvm/utils/valgrind/x86_64-pc-linux-gnu.supp: Add /usr/bin/cmp. 2013-01-20 15:30:29 +00:00
.arcconfig
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT Update CODE_OWNERS.TXT. 2013-01-15 09:37:45 +00:00
configure Disable Uninitialized Use Warnings for Broken gcc Versions 2013-01-15 18:21:15 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Introduce llvm::sys::getProcessTriple() function. 2013-01-16 17:27:22 +00:00
Makefile.rules Pass NO_MISSING_FIELD_INITIALIZERS to Compiler Flags 2013-01-18 23:22:52 +00:00
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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

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