1. In explicit parallel instruction computing (EPIC), the compiler encodes multiple operations into a long instruction word so hardware can schedule these operations at run-time on multiple functional units without analysis. Why might the compiler be better able to find instructions that do not have dependencies that run-time hardware of a superscalar computer?

2. For a typical program on a traditional computer, more time is spent doing procedure calls than anything else. Why are procedure calls so time consuming?

3. What ways are parameters passed on a procedure call?

4. Translate the following code to Itanium assembly language to eliminate the branch instructions by using predicate register(s).

if (R2 < R3) then

R1 = R1 + 1

else

R1 = R1 - R2

end if