在命令式语言,如C/C++中,其依赖关系及分类如下:
依赖(Dependence)
-- Control Dependence
-- Data Dependence (Reads and Writes of the same location, registers / Memories etc)
-- True Dependence (Write then Read / Read After Write / RAW)
-- Anti-Dependence (Read then Write / Write After Read / WAR )
-- Output-Dependence (Write then Write / Write After Write / WAW )
-- Loop Dependence ( Extends Data Dependence for Loop / Nested Loop, i.e. statement instances for each iteration in loops described by iteration vectors)
当编译器中的一种优化转换(Optimization Transformation)保留了(Preserve)程序的依赖关系,那么,保留了(Preserve)程序的意义(Meaning),那么该转换(Transformation)是有效的(Valid)。