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 to as the hyperblock, to overcome these problems.
The hyperblock is an efficient structure to utilize
predicated execution for both compile-time optimization and
scheduling. Preliminary experimental results show that the
hyperblock is highly effective for a wide range of
superscalar and VLIW processors.