2003 Design, Automation and Test in Europe Conference and Exhibition
DOI: 10.1109/date.2003.1253619
|View full text |Cite
|
Sign up to set email alerts
|

Dynamic conditional branch balancing during the high-level synthesis of control-intensive designs

Abstract: We present two novel strategies to increase the scope for application of speculative code motions: (1) Adding scheduling steps dynamically during scheduling to conditional branches with fewer scheduling steps. This increases the opportunities to apply code motions such as conditional speculation that duplicate operations into the branches of a conditional block. (2) Determining if an operation can be conditionally speculated into multiple basic blocks either by using existing idle resources or by creating new … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Publication Types

Select...
5

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(5 citation statements)
references
References 13 publications
0
5
0
Order By: Relevance
“…(ii) Duplicating up involves moving operations from a BB in which conditional branches merge to its preceding BBs in the conditional branches. Conditional speculation [Gupta et al 2004] and branch balancing [Gupta et al 2003a] fall under this category. (iii) Boosting up moves operations from a BB within a conditional branch to the BB preceding the CB from which the conditional branch sprouts.…”
Section: Introductionmentioning
confidence: 99%
“…(ii) Duplicating up involves moving operations from a BB in which conditional branches merge to its preceding BBs in the conditional branches. Conditional speculation [Gupta et al 2004] and branch balancing [Gupta et al 2003a] fall under this category. (iii) Boosting up moves operations from a BB within a conditional branch to the BB preceding the CB from which the conditional branch sprouts.…”
Section: Introductionmentioning
confidence: 99%
“…For the other trails, the heuristic calls a procedure that finds a scheduling step (trailStep) in the lastBBInTrail with an un-utilized resource on which operation op can execute. This procedure, FindResSlot, may also insert a new scheduling step into a basic block if no scheduling step is found with an empty resource slot [59]. A duplicate copy of op is then inserted into this trailStep in lastBBInTrail.…”
Section: Incorporating Chaining Into the Code Motion Techniquementioning
confidence: 99%
“…If there is no idle resource, the code motion heuristic employed later by the scheduler may even instruct this function to create new scheduling steps [59]. If the FindResSlot function is unable to accommodate a duplicated copy of op in any of the basic blocks in bbList, then the operation op is removed from the available operation list.…”
Section: Priority-based Global List Scheduling Heuristicmentioning
confidence: 99%
See 1 more Smart Citation
“…In this paper, we present algorithms for two techniques that insert new scheduling steps dynamically during scheduling in the shorter of the two branches of a conditional block without increasing the longest path through the conditional [4]. The new scheduling steps, together with idle resources in the basic block of the other conditional branch, can be used to schedule operations by conditional speculation.…”
Section: Introductionmentioning
confidence: 99%