Conditional branches are expensive. Branches require a significant percentage of execution cycles since they occur frequently and cause pipeline flushes when mispredicted. In addition, branches result in forks in the control flow, which can prevent other code-improving transformations from being applied. In this paper we describe profile-based techniques for replacing the execution of a set of two or more branches with a single branch on a conventional scalar processor. These sets of branches can include tests of multiple variables. For instance, the test if (p1! = 0 & & p2! = 0),which is testing for NULL pointers, can be replaced with if (p1 & p2! = 0). Program profiling is performed to target condition merging along frequently...
[[abstract]]Branches are a major limiting factor to instruction-level parallelism. One solution is t...
T here is an insatiable demand for computers ofever-increasing performance. Old applicationsare appl...
Control divergence poses many problems in parallelizing loops. While predicated execution is commonl...
Conditional branches are expensive. Branches require a significant percentage of execution cycles si...
Conditional branches are expensive. Branches require a significant percentage of execution cycles si...
The conditional branch has long been considered an expensive operation. The relative cost of condit...
Irregular control-flow structures like deeply nested conditional branches are common in real-world s...
The conditional branch has long been considered an expensive operation. The relative cost of conditi...
Predicated execution has been used to reduce the number of branch mispredictions by eliminating hard...
Dynamic predication has been proposed to reduce the branch misprediction penalty due to hard-to-pred...
An operational data flow analysis framework for tracking controlling expressions of conditional bran...
This paper describes a general code-improving transformation that can coalesce conditional branches ...
If-conversion is a compiler technique that reduces the misprediction penalties caused by hard-to-pre...
To achieve highly accurate branch prediction, it is necessary not only to allocate more resources to...
This article describes a technique for path unfolding for conditional branches in parallel programs ...
[[abstract]]Branches are a major limiting factor to instruction-level parallelism. One solution is t...
T here is an insatiable demand for computers ofever-increasing performance. Old applicationsare appl...
Control divergence poses many problems in parallelizing loops. While predicated execution is commonl...
Conditional branches are expensive. Branches require a significant percentage of execution cycles si...
Conditional branches are expensive. Branches require a significant percentage of execution cycles si...
The conditional branch has long been considered an expensive operation. The relative cost of condit...
Irregular control-flow structures like deeply nested conditional branches are common in real-world s...
The conditional branch has long been considered an expensive operation. The relative cost of conditi...
Predicated execution has been used to reduce the number of branch mispredictions by eliminating hard...
Dynamic predication has been proposed to reduce the branch misprediction penalty due to hard-to-pred...
An operational data flow analysis framework for tracking controlling expressions of conditional bran...
This paper describes a general code-improving transformation that can coalesce conditional branches ...
If-conversion is a compiler technique that reduces the misprediction penalties caused by hard-to-pre...
To achieve highly accurate branch prediction, it is necessary not only to allocate more resources to...
This article describes a technique for path unfolding for conditional branches in parallel programs ...
[[abstract]]Branches are a major limiting factor to instruction-level parallelism. One solution is t...
T here is an insatiable demand for computers ofever-increasing performance. Old applicationsare appl...
Control divergence poses many problems in parallelizing loops. While predicated execution is commonl...