[llvm-commits] CVS: llvm/include/llvm/Target/TargetInstrItineraries.h

Jim Laskey jlaskey at apple.com
Thu Oct 27 11:18:17 PDT 2005



Changes in directory llvm/include/llvm/Target:

TargetInstrItineraries.h added (r1.1)
---
Log message:

Structures used to hold scheduling information.


---
Diffs of the changes:  (+46 -0)

 TargetInstrItineraries.h |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+)


Index: llvm/include/llvm/Target/TargetInstrItineraries.h
diff -c /dev/null llvm/include/llvm/Target/TargetInstrItineraries.h:1.1
*** /dev/null	Thu Oct 27 13:18:16 2005
--- llvm/include/llvm/Target/TargetInstrItineraries.h	Thu Oct 27 13:18:05 2005
***************
*** 0 ****
--- 1,46 ----
+ //===-- llvm/Target/TargetInstrItineraries.h - Scheduling -------*- C++ -*-===//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by the James M. Laskey and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file describes the structures used for instruction itineraries and
+ // states.  This is used by schedulers to determine instruction states and
+ // latencies.
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #ifndef LLVM_TARGET_TARGETINSTRITINERARIES_H
+ #define LLVM_TARGET_TARGETINSTRITINERARIES_H
+ 
+ namespace llvm {
+ 
+ //===----------------------------------------------------------------------===//
+ // Instruction stage - These values represent a step in the execution of an
+ // instruction.  The latency represents the number of discrete time slots used
+ // need to complete the stage.  Units represent the choice of functional units
+ // that can be used to complete the stage.  Eg. IntUnit1, IntUnit2.
+ //
+ struct InstrStage {
+   unsigned Cycles;  // Length of stage in machine cycles
+   unsigned Units;   // Choice of functional units
+ };
+ 
+ 
+ //===----------------------------------------------------------------------===//
+ // Instruction itinerary - An itinerary represents a sequential series of steps
+ // required to complete an instruction.  Itineraries are represented as
+ // sequences of instruction stages.
+ //
+ struct InstrItinerary {
+   unsigned First;    // Index of first stage in itinerary
+   unsigned Last;     // Index of last + 1 stage in itinerary
+ };
+ 
+ 
+ } // End llvm namespace
+ 
+ #endif






More information about the llvm-commits mailing list