Determination of data dependences is a task typically performed with high-l
evel language source code in today's optimizing and parallelizing compilers
. Very little work has been done in the field of data dependence analysis o
n assembly language code, but this area will be of growing importance, e.g.
, for increasing instruction-level parallelism. A central element of a data
dependence analysis in this case is a method for memory reference disambig
uation which decides whether two memory operations may access (or definitel
y access) the same memory location. In this paper we describe a new approac
h for the determination of data dependences in assembly code. Our method is
based on a sophisticated algorithm for symbolic value propagation, and it
can derive value-based dependences between memory operations instead of jus
t address-based dependences. We have integrated our method into the SALTO s
ystem for assembly language optimization. Experimental results show that ou
r approach greatly improves the precision of the dependence analysis in man
y cases.