Use and User in LLVM

Recently I was working on a transformation in middle end to deal with shared variable expansion on an architecture that doesn’t support globals in shared memory space. Use and User are two concepts all around the whole middle end. Initially I cannot tell them apart very clearly. After my work on the transformation, I got a basic impression on them. In this post, I’m going to introduce the two concepts based on my understanding. It will be absolutely an incomplete introduction, but my goal is to explain the two “confusing” (hopefully you’re not the one who thinks it is confusing) concepts in a simple way. Without further ado, let’s get started.


Leave a Reply