examples of basic blocks
Download
Skip this Video
Download Presentation
Examples of Basic Blocks

Loading in 2 Seconds...

play fullscreen
1 / 6

Examples of Basic Blocks - PowerPoint PPT Presentation


  • 68 Views
  • Uploaded on

Examples of Basic Blocks. t7. +. t5. t4. *. +. t1. t3. *. *. b. b. t2. 2. *. a. a. a. b. a b. Following sequence of three-address statements forms a basic block: t1 : = a * a t2 := a * b t3 := 2 * t2 t4 := t1+ t3 t5 := b * b t6 := t4 + t5

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Examples of Basic Blocks' - dorit


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
examples of basic blocks

Examples of Basic Blocks

t7

+

t5

t4

*

+

t1

t3

*

*

b

b

t2

2

*

a

a

a

b

ab

Following sequence of three-address statements forms a basic block:

t1 : = a * a

t2 := a * b

t3 := 2 * t2

t4 := t1+ t3

t5 := b * b

t6 := t4 + t5

It computes: a*a + 2*a*b + b*b

Given 3-AS x := y+z:

-it defines X

-it uses (reference) y and z

Live name: A name is a basic block is said to be live at a given point if its value is used after that point in the program, perhaps in another basic block.

t7

t6

examples of 3 address code translation
3 Address Code.
  • i = m-1; j = n ; v = a[n];
  • (1) i := m-l; j:=n; t1 := 4*n; v := a[t1];
  • while(1) {
  • do i = i + 1; while(a[i]
  • (5) i := i+1; t2 := 4*i; t3 := a[t2];
  • (8) if t3
  • do j = j-1; while (a[j] > v);
  • j:=j+1; t4:=4*j ; t5:=a[t4];
  • (12) if t5 >v goto (9)
  • (13) if( i >=j) goto (23)
  • x = a[i]; a[i] = a[n]; a[n]=x
  • (14) t6 := 4*i; x:=a[t6];
  • (16) t7 := 4*i; x:=a[t6];
  • (18) t9:= a[t8]; a[t7]:=t9;
  • (20) t10:= 4*j; a[t10]:= x
  • (22) goto(5)
  • (23) ...

Examples of 3 address code translation

C-code

void quicksort(m,n)

int m,n

{

int i,j;

int v,x;

if (n<=m) return;

/* fragment begins */

i:=m-1; j=n ; v=a[n];

while(1) {

do i=i+1; while(a[i]

do j=j-1; while(a[j]>v)

if (i>=j) break;

x=a[i];a[i]=a[n];a[n]=x;}

x=a[i];a[i]=a[n];a[n]=x;

/* fragment ends */

quicksort( m ,j); quicksort(l+1,n);

}

example of flow graphs
i:=m-1

j:=n

t1=4*n

v:= a[t1]

B1

Example of Flow graphs

I=i+1

t2:=4*i

t3:=a[t2]

if( t3

B2

j:=j-1

t4:= 4 * j

t5:= a[t4]

if( t5 >v ) goto B3

B3

B4

if(i>=j) goto B6

t11:= 4* i

X= a[t11]

t12:= 4 * i

t13:= 4*n

t14 := a[t13]

a[t12]:= t14

t15 := 4 * n

a[t15]:= x

B6

t6:=4*i

x:= a[t6]

t7 := 4 * i

t8 := 4 * j

t9:= a[t8]

a[t7]:= t9

t10:= 4 * j

a[t10]:=x

goto B2

B5

partition into basic blocks algorithm

Partition into Basic Blocks algorithm

Input : A sequence of 3 address statements

Output: A sequence of basic blocks with each 3A Statement in exactly

one block.

Method:

(1) First determine a set of leaders, the 1st statement of basic blocks:

a) The first statement is a leader

b) Any statement that is a target of a conditional or

unconditional goto is a leader

c) Any statement that immediately follows a goto, or conditional

goto statement is a leader.

(2) For each leader its basic block consists of:

a) The leader

b) All statements upto but not including the next leader or the

end of the program.

example of partition into basic blocks

Example of Partition into Basic Blocks

(1) prod : = 0

(2) i : = 1

(3) t1 : = 4 * i

(4) t2 : = a[t1]

(5) t3 : = 4 * i

(6) t4 : = b[t3]

(7) t5 : = t2 * t4

(8) t6 : = prod + t5

(9) prod : = t6

(10) t7 : = i+1

(11) i : = t7

(12) if( i <=20) goto (3)

slide6
Example of Partition into Basic Blocks

A leader by rule 1.a

A block by rule 2

A leader by rule 1.b

A block by rule 2

A leader by rule 1.c

(1) prod : = 0

(2) i : = 1

(3) t1 : = 4 * i

(4) t2 : = a[t1]

(5) t3 : = 4 * i

(6) t4 : = b[t3]

(7) t5 : = t2 * t4

(8) t6 : = prod + t5

(9) prod : = t6

(10) t7 : = i+1

(11) i : = t7

(12) if( i <=20) goto (3)

B1

B2

ad