1983
DOI: 10.1145/2166.357217
|View full text |Cite
|
Sign up to set email alerts
|

Postpass Code Optimization of Pipeline Constraints

Abstract: Pipeline interlocks are used in a pipelined architecture to prevent the execution of a machine instruction before its operands are available. An alternative to this complex piece of hardware is to rearrange the instructions at compile time to avoid pipeline interlocks. This problem is called code reorganization and is studied here. The basic problem of reorganization of machine-level instructions at compile time is shown to be NP-complete. A heuristic algorithm is proposed, and its properties and effectiveness… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

2
54
0
4

Year Published

1993
1993
2013
2013

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 226 publications
(60 citation statements)
references
References 17 publications
2
54
0
4
Order By: Relevance
“…By using induction and the properties of forward scheduling and backward scheduling, we can prove the fol- v [5,12] v [6,15] v [6,15] v [8,15] 6 v [6, 15] v [8,10] v [8,10] v [4,8] v [5,13] v [2,6] v [3,7] Proof Suppose that there exists a feasible schedule σ ′ , but a schedule σ computed by our algorithm is not feasible. Let v k be the first late instruction and t the earliest integer time point satisfying 1) there are m k (σ(v k ) − t) instructions scheduled in the time interval [t, σ(v k )) on m k functional unit of type R(v k ) in σ, where m k is the number of functional units of type R(v k ), and 2) for each instruction …”
Section: Compute Dmentioning
confidence: 99%
See 2 more Smart Citations
“…By using induction and the properties of forward scheduling and backward scheduling, we can prove the fol- v [5,12] v [6,15] v [6,15] v [8,15] 6 v [6, 15] v [8,10] v [8,10] v [4,8] v [5,13] v [2,6] v [3,7] Proof Suppose that there exists a feasible schedule σ ′ , but a schedule σ computed by our algorithm is not feasible. Let v k be the first late instruction and t the earliest integer time point satisfying 1) there are m k (σ(v k ) − t) instructions scheduled in the time interval [t, σ(v k )) on m k functional unit of type R(v k ) in σ, where m k is the number of functional units of type R(v k ), and 2) for each instruction …”
Section: Compute Dmentioning
confidence: 99%
“…In non-real-time applications, the objective of instruction scheduling is to find a shortest schedule for a set of instructions. This problem is NP-complete even if the target processor has only one functional unit and latencies can be arbitrarily large [12,13].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Scheduling for such processors, whether RISC or CISC, has generally been less ambitious and more ad hoc than that for VLIW processors [183][184][185]98,186]. This was a direct consequence of the lack of parallelism in those machines and the corresponding lack of opportunity for the scheduler to make a big difference.…”
Section: Scheduling For Rise and Superscalar Processorsmentioning
confidence: 99%
“…However, in the context of pipelined or multiple-issue processors, where instruction scheduling is important, the issue of the phase-ordering between it and register allocation has been a topic of much debate. There are advocates both for performing register allocation before scheduling [185,200,192] as well as for performing it after scheduling [183,[201][202][203]. Each phase-ordering has its advantages and neither one is completely satisfactory.…”
Section: Register Allocationmentioning
confidence: 99%