Definition of values in compare instruction

Hi,

I am working on Instruction prefetching, and wish to pre-fetch (insert intrinsic prefetch instruction) basic blocks based long before the branch operation is seen. I was thinking if there is any way of extracting the values used in the compare instruction, and going to there definition to speculate on the taken branch.

I would like to know if I can extract the values from the instruction, and go to their available/reaching definition.

Thanks!

Regards,
Silky Arora
University of Michigan