llvm-6502/include/llvm
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
..
ADT Undefine NetBSD, it may have been defined by an earlier include of 2013-09-25 17:49:57 +00:00
Analysis Teach MemoryBuiltins and InstructionSimplify that operator new never returns NULL. 2013-09-24 16:37:51 +00:00
Assembly
Bitcode Add function attribute 'optnone'. 2013-08-23 11:53:55 +00:00
CodeGen IfConverter: Use TargetSchedule for instruction latencies 2013-09-30 15:28:56 +00:00
Config [conf] Add config variable to disable crash related overrides. 2013-08-30 20:39:21 +00:00
DebugInfo Dump the normal dwarf pubtypes section as well. 2013-09-25 23:02:41 +00:00
ExecutionEngine Fix include guards. 2013-08-20 22:52:02 +00:00
IR Adding intrinsics to the llvm backend for TBM instruction set. 2013-09-27 18:38:42 +00:00
IRReader
LTO Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
MC Implements parsing and emitting of .cfi_window_save in MC. 2013-09-26 14:49:40 +00:00
Object Object/COFF: Rename getXXX{Begin,End} -> xxx_{begin,end}. 2013-09-27 21:47:05 +00:00
Option Option parsing: support case-insensitive option matching. 2013-08-28 20:04:31 +00:00
Support Make SourceMgr::PrintMessage() testable and add unit tests 2013-09-27 21:09:25 +00:00
TableGen Move StringToOffsetTable into the TableGen include directory so I can use it in clang. 2013-08-29 05:09:55 +00:00
Target IfConverter: Use TargetSchedule for instruction latencies 2013-09-30 15:28:56 +00:00
Transforms Remove the long, long defunct IR block placement pass. 2013-09-14 09:28:14 +00:00
AutoUpgrade.h AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format. 2013-09-28 00:22:27 +00:00
CMakeLists.txt
DebugInfo.h Debug Info: move class definition of DIRef. 2013-09-11 18:55:55 +00:00
DIBuilder.h Revert r190269 to fix dragonegg failures. 2013-09-08 06:02:56 +00:00
GVMaterializer.h
InitializePasses.h Remove the long, long defunct IR block placement pass. 2013-09-14 09:28:14 +00:00
InstVisitor.h
LinkAllIR.h
LinkAllPasses.h Remove the long, long defunct IR block placement pass. 2013-09-14 09:28:14 +00:00
Linker.h
Pass.h
PassAnalysisSupport.h
PassManager.h Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." 2013-09-19 06:02:43 +00:00
PassManagers.h
PassRegistry.h
PassSupport.h