eeg
eeg

Reputation: 43

What does "clobbers" mean in the context of LLVM's memory dependence analysis

I am new to LLVM and i am currently working on something involving memory dependence analysis. Reading the docs i find the term "clobber" is used quite heavily. Now, i do understand what a clobbered register is in terms of e.g inline assembler, but its usage in the LLVM docs is confusing me.

For instance, in https://llvm.org/docs/MemorySSA.html it mentions:

The operands of a given MemoryAccess are all (potential) clobbers of said MemoryAccess, and the value produced by a MemoryAccess can act as a clobber for other MemoryAccesses...

or

The store to %a is clearly not a clobber for the store to %b. It would be the walker’s goal to figure this out, and return liveOnEntry when queried for the clobber of MemoryAccess 2.

or

If you choose to make your own walker, you can find the clobber for a MemoryAccess by...

Also, in this (short) talk, on 0:38 he talks about "things that a Store clobbers", and on 0:53 about Load operand being "whatever the Alias Analysis says clobbers it".

I am not sure how to make sense of this usage of the term and i would appreciate any pointers to the right direction.

Upvotes: 3

Views: 640

Answers (0)

Related Questions