Structures used to hold scheduling information.
authorJim Laskey <jlaskey@mac.com>
Thu, 27 Oct 2005 18:18:05 +0000 (18:18 +0000)
committerJim Laskey <jlaskey@mac.com>
Thu, 27 Oct 2005 18:18:05 +0000 (18:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24049 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetInstrItineraries.h [new file with mode: 0644]

diff --git a/include/llvm/Target/TargetInstrItineraries.h b/include/llvm/Target/TargetInstrItineraries.h
new file mode 100644 (file)
index 0000000..3a622c7
--- /dev/null
@@ -0,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