[1992] Proceedings the 25th Annual International Symposium on Microarchitecture MICRO 25
DOI: 10.1109/micro.1992.696999
|View full text |Cite
|
Sign up to set email alerts
|

Effective Compiler Support For Predicated Execution Using The Hyperblock

Abstract: Predicated execution is an effective technique for dealing with conditional branches in application programs. However, there are several problems associated with conventional compiler support for predicated execution. First, all paths of control are combined into a single path regardless of their execution frequency and size with conventional if-conversion techniques. Second, speculative execution is difficult to combine with predicated execution. In this paper, we propose the use of a new structure, referred … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
45
0
1

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 263 publications
(53 citation statements)
references
References 13 publications
0
45
0
1
Order By: Relevance
“…Their motivation is to make these loops suitable for software pipelining, a technique to speed up loop executions by interleaving iterations, which requires a linear sequence of instructions without control-flow changes. Their algorithm provides the basis for more elaborate techniques like hyperblock formation [18], which does not if-convert the whole loop body but only a subset of basic blocks. The blocks are merged into singleentry multiple-exit regions of predicated instructions, the socalled hyperblocks.…”
Section: Related Workmentioning
confidence: 99%
“…Their motivation is to make these loops suitable for software pipelining, a technique to speed up loop executions by interleaving iterations, which requires a linear sequence of instructions without control-flow changes. Their algorithm provides the basis for more elaborate techniques like hyperblock formation [18], which does not if-convert the whole loop body but only a subset of basic blocks. The blocks are merged into singleentry multiple-exit regions of predicated instructions, the socalled hyperblocks.…”
Section: Related Workmentioning
confidence: 99%
“…It is often used in SIMD engines such as graphics processors to allow efficient software pipelinening of loops [24]. Mahlke et al show that the use of hyperblock scheduling on a fully predicated instruction set results in an average speedup of 72% on an 8 issue processor [25] Allen et al have demonstrated how control dependence in the instruction stream can be translated into data dependence using an if-conversion pass in the compiler back end [26].…”
Section: Related Workmentioning
confidence: 99%
“…An S-Region could be a basic block or a group of basic blocks such as loops, hyperblocks [11], superblocks [19] or subroutines. There are several criteria that must be considered before a region can selected for issue in the static mode: 4.…”
Section: Role Of the Compiler: Identify-ing And Scheduling S-regionsmentioning
confidence: 99%