LLVM backend for 6502
Go to file
Arnold Schwaighofer d42730dc71 IfConverter: Use TargetSchedule for instruction latencies
For targets that have instruction itineraries this means no change. Targets
that move over to the new schedule model will use be able the new schedule
module for instruction latencies in the if-converter (the logic is such that if
there is no itineary we will use the new sched model for the latencies).

Before, we queried "TTI->getInstructionLatency()" for the instruction latency
and the extra prediction cost. Now, we query the TargetSchedule abstraction for
the instruction latency and TargetInstrInfo for the extra predictation cost. The
TargetSchedule abstraction will internally call "TTI->getInstructionLatency" if
an itinerary exists, otherwise it will use the new schedule model.

ATTENTION: Out of tree targets!

(I will also send out an email later to LLVMDev)

This means, if your target implements

 unsigned getInstrLatency(const InstrItineraryData *ItinData,
                          const MachineInstr *MI,
                          unsigned *PredCost);

and returns a value for "PredCost", you now also need to implement

 unsigned getPredictationCost(const MachineInstr *MI);

(if your target uses the IfConversion.cpp pass)

radar://15077010

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191671 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-30 15:28:56 +00:00
autoconf Remove error output from configure if CFLAGS is set (r174313). 2013-09-24 11:38:45 +00:00
bindings [python-bindings] Added support for getting/setting operands of values and getting the number of operands of a value. 2013-09-11 01:38:12 +00:00
cmake [CMake] Hack GetSVN.cmake to handle unusual terminals. 2013-09-16 21:38:01 +00:00
docs [mips] Fix a broken link to mips.com in the documentation. 2013-09-30 09:35:37 +00:00
examples
include IfConverter: Use TargetSchedule for instruction latencies 2013-09-30 15:28:56 +00:00
lib IfConverter: Use TargetSchedule for instruction latencies 2013-09-30 15:28:56 +00:00
projects Enable libcxx as part of the top level CMake build when it is checked 2013-09-28 18:17:10 +00:00
runtime
test Enable building LTO on WIN32. 2013-09-30 15:28:14 +00:00
tools Enable building LTO on WIN32. 2013-09-30 15:28:14 +00:00
unittests Plug a memory leak in a unit test. Stack allocation is sufficient here. 2013-09-29 11:29:20 +00:00
utils Filter out repeated sections from the X86 disassembler modRMTable. Saves about ~43K from a released build. Unfortunately the disassembler tables are still upwards of 800K. 2013-09-30 06:23:19 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt Set the minimal stack size with msvc when using cmake >= 2.8.11. 2013-09-25 14:06:55 +00:00
CODE_OWNERS.TXT Add more owners to CODE_OWNERS.TXT (Kostya Serebryany: AddressSanitizer and ThreadSanitizer; Evgeniy Stepanov: MemorySanitizer) 2013-06-27 08:47:12 +00:00
configure Remove error output from configure if CFLAGS is set (r174313). 2013-09-24 11:38:45 +00:00
CREDITS.TXT Update. 2013-09-27 20:40:40 +00:00
LICENSE.TXT Be more specific and capitalize filenames. 2013-05-21 21:22:34 +00:00
llvm.spec.in
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
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.