Project

General

Profile

Actions

Task #5503

closed

[parser][basis][backend] implement "atomic hammock" backend

Added by Sergey Smolov almost 10 years ago. Updated almost 10 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
12/16/2014
Due date:
% Done:

100%

Estimated time:
Detected in build:
svn
Published in build:
r1366

Description

The HDL parser backend for "atomic hammocks" elaboration to be implemented.

An atomic hammock is a hammock subgraph into process's control flow graph. This subgraph contains one switch node, one merge node, two case nodes and one (or two) basic block node. The subgraph structure is:

switch
/ \
case1 case2
/ \
block1 block2 (or nothing)
\ /
merge

Each basic block contains exactly one assignment. If there are two basic blocks in the hammock, same variables are defined.

For such hammock subgraph the backend performs it into the following basic block (let the block1 contains x = 1 assignment and block2 contains x= 2 assignment):

x = (switch_condition == case1) ? 1 : 2
Actions

Also available in: Atom PDF