Exercise 8        Name __________________        Score __/18

  1. (9) Give the linearization of each of the following as statements:
    1. MOVE(TEMP t0,ESEQ(MOVE(TEMP t1,CONST 4),CONST 3)) Þ SEQ(MOVE(TEMP 1,CONST 4), MOVE(TEMP t0,CONST 3))Þ

          MOVE(TEMP t1,CONST 4)
          MOVE(TEMP t0,CONST 3)
    2. EXP(CALL(ESEQ(MOVE(TEMP t0,CONST 4),NAME e),CONST 1)) Þ SEQ(MOVE(TEMP t0,CONST 4), EXP(CALL (NAME e, CONST 1)) Þ

          MOVE(TEMP t0,CONST 4)
          EXP(CALL(NAME e, CONST 1))             Possible because all CONST which commute
    3. EXP(CALL(NAME e,CONST 1,ESEQ(MOVE(TEMP t0,CONST 4),CONST 3),CONST 5)) Þ

      SEQ(MOVE(TEMP t0,CONST 4), EXP( CALL (NAME e, (CONST 1, CONST 3, CONST 5))) Þ

          MOVE(TEMP t0,CONST 4)
          EXP(CALL(NAME e,CONST 1,CONST 3,CONST 5))
       

  2. (9) Give the linearization, basic blocks and trace of the following as statement:

SEQ(
  SEQ(
    LABEL WHILE,
    SEQ(
      CJUMP(EQ,CONST 0,CONST 1,T,F),
      SEQ(
        LABEL T,
        MOVE(TEMP t1,CONST 1)
      )
    )
  ),
  SEQ(
    JUMP(NAME WHILE),
    SEQ(
      LABEL F,
      MOVE(TEMP t3,CONST 3)
    )
  )
)


____Linearization____________
LABEL WHILE
  CJUMP(EQ,CONST 0,CONST 1,T,F)
LABEL T
  MOVE(TEMP t1,CONST 1)
  JUMP(NAME WHILE)
LABEL F
  MOVE(TEMP t3,CONST 3)


______Basic Blocks________
LABEL WHILE
  CJUMP(EQ,CONST 0,CONST 1,T,F)
LABEL T
  MOVE(TEMP t1,CONST 1)
  JUMP(NAME WHILE)
LABEL F
  MOVE(TEMP t3,CONST 3)
  JUMP(NAME L0)


______Trace_________
LABEL WHILE
  CJUMP(EQ,CONST 0,CONST 1,T,F)
LABEL F
  MOVE(TEMP t3,CONST 3)
  JUMP(NAME L0)
LABEL T
  MOVE(TEMP t1,CONST 1)
  JUMP(NAME WHILE)
LABEL L0