数据依赖分析(data dependence analysis),理学-计算机科学技术-计算机软件-系统软件-编译系统,分析程序语句是否存在约束指令执行顺序的依赖关系的过程。依赖关系程序执行过程中,如果指令A必须在指令B之前执行,就称B依赖A。这种执行顺序的约束关系就是依赖关系。其中,由读、写同一存储地址引起的依赖关系称为数据依赖。数据依赖关系决定指令的执行顺序,可用于判断是否可以对指令重新排序或并行。如果语句T数据依赖于S,意味着存在T的一个实例T'和S的一个实例S',且满足:①S'和T'都访问同一存储地址M。②在程序的串行执行中,S'在T'之前执行。③在同一次执行中,S'和T'之间没有其他语句写M。 数据依赖关系可以分为4类:①真依赖,也称为流依赖或写后读依赖:S写地址M,T读地址M;记做。②反向依赖,也称为读后写依赖:S读地址M,T写地址M;记做。③输出依赖,也称为写后写依赖:S写地址M,T写地址M;记做。④输入依赖,也称为读后读依赖:S读地址M,T读地址M;记做。由于读操作并不改变内存的状态,对同一地址的不同读操作相互独立,因此,输入依赖又称为假依赖。