chapter3-m2-ziavras

May be data dependent on more than one predecessor

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: tain data dependences because an instr may be data dependent on more because an instr. may be data dependent on more than one predecessor – Program order is what determines which predecessor will actually deliver a data value maintain control dependences S. Ziavras Data Flow (2) L: DADDU BEQZ DSUBU … OR R1,R2,R3 R4,L R1,R5,R6 R1 value used by OR OR depends on whether the branch is taken or not not R7,R1,R8 Data flow must be preserved • Branch taken use R1 value computed by DADDU • Branch not taken use R1 value computed by DSUBU Prevent illegal change to data flow by preserving the control dependence of OR on the branch control dependence of OR on the branch S. Ziavras Compiler Speculation Sometimes, violating the control dependence cannot th affect either the exception behavior or the data flow DADDU BEQZ DSUBU DADDU Skipnext: OR R1,R2,R3 R12,skipnext R4,R5,R6 R5,R4,R9 R7,R8,R9 If we knew that R4 reg. result of DSUBU was unused after skipnext & moving DSUBU before branch would not be produ...
View Full Document

Ask a homework question - tutors are online