Hi, I have tried memory dependence analysis. I found that load could have def dependence on another load. How could this happen? And what does clobber dependence mean? Thanks a lot! Best, Linhai
> I have tried memory dependence analysis. I found that load could have > def dependence on another load. How could this happen? And what does > clobber dependence mean?For example, we may have two 32-bit register R0 and R1, and [R0,R1] can be considered as one 64-bit register X1. When you load X1, this operation actually affect R0 and R1. If you have another load R0, we can say those load instructions have dependence. From the comment of the source code [1], clobber dependence means the content of some memory locations (X) that we cares is modified by a store instruction, thus "load X" might have clobber dependence with the store instruction. HTH, chenwj [1] http://llvm.org/docs/doxygen/html/MemoryDependenceAnalysis_8h_source.html -- Wei-Ren Chen (陳韋任) Homepage: http://people.cs.nctu.edu.tw/~chenwj
Thanks a lot! Best, Linhai On 2014-10-26 23:05, Wei-Ren Chen wrote:>> I have tried memory dependence analysis. I found that load could >> have >> def dependence on another load. How could this happen? And what does >> clobber dependence mean? > > For example, we may have two 32-bit register R0 and R1, and [R0,R1] > can > be considered as one 64-bit register X1. When you load X1, this > operation actually affect R0 and R1. If you have another load R0, we > can > say those load instructions have dependence. > > From the comment of the source code [1], clobber dependence means the > content of some memory locations (X) that we cares is modified by a > store > instruction, thus "load X" might have clobber dependence with the store > instruction. > > HTH, > chenwj > > [1] > http://llvm.org/docs/doxygen/html/MemoryDependenceAnalysis_8h_source.html