3

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.

0x6K5
  • 57
  • 6
eeg
  • 43
  • 5
  • 2
    The store to %a is clearly not a clobber for the store to %b. In this context I think its mean that store to %a will not overwrite anything which on store to %b is depending on so in this sense store to %b is independent of store to %a. I could be wrong here tho. – Eraklon Feb 25 '20 at 19:24

0 Answers0