2005
DOI: 10.1002/spe.627
|View full text |Cite
|
Sign up to set email alerts
|

Branch elimination by condition merging

Abstract: 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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2008
2008
2021
2021

Publication Types

Select...
6
1

Relationship

1
6

Authors

Journals

citations
Cited by 10 publications
(2 citation statements)
references
References 14 publications
0
2
0
Order By: Relevance
“…When merging multiple variable conditions, the branches executed were reduced by an average of 11.54%. For space considerations the techniques that merge single variable conditions are not shown here but are discussed, in detail, in a technical report [13]. The average number of branches executed when using both techniques was reduced by 15.81% while the average number of instructions executed was reduced by 5.74%.…”
Section: Resultsmentioning
confidence: 99%
“…When merging multiple variable conditions, the branches executed were reduced by an average of 11.54%. For space considerations the techniques that merge single variable conditions are not shown here but are discussed, in detail, in a technical report [13]. The average number of branches executed when using both techniques was reduced by 15.81% while the average number of instructions executed was reduced by 5.74%.…”
Section: Resultsmentioning
confidence: 99%
“…We can also use compilation tool to collect profile data to reorder the sequences of conditional branches of program so that the program executes faster [10]. In real-time system, in order to avoid unnecessary computations that occurred at different locations in a program, those original computations will be computed once and the subsequent computations could be replaced by variables or registers [5].…”
Section: Introductionmentioning
confidence: 99%