diff options
author | Jim Laskey <jlaskey@mac.com> | 2005-10-27 18:18:05 +0000 |
---|---|---|
committer | Jim Laskey <jlaskey@mac.com> | 2005-10-27 18:18:05 +0000 |
commit | 15517be4bfc7ec7e60ecb25dc0bb46de27d3de37 (patch) | |
tree | 9fed4cd1874157dfcc88c0d89cdb7acba8338a94 /include | |
parent | b7899d9530020ca8bdb01d12c1abaef19bd716d9 (diff) | |
download | external_llvm-15517be4bfc7ec7e60ecb25dc0bb46de27d3de37.zip external_llvm-15517be4bfc7ec7e60ecb25dc0bb46de27d3de37.tar.gz external_llvm-15517be4bfc7ec7e60ecb25dc0bb46de27d3de37.tar.bz2 |
Structures used to hold scheduling information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24049 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Target/TargetInstrItineraries.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetInstrItineraries.h b/include/llvm/Target/TargetInstrItineraries.h new file mode 100644 index 0000000..3a622c7 --- /dev/null +++ b/include/llvm/Target/TargetInstrItineraries.h @@ -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 |