These are ‘variables’ in the sense that they are infinite, but the LLVM backend maps them to use CPU registers for computations.
LLVM allows for an infinite set of virtual registers labeled from %0, %1, %2, …
Custom Named Registers
By default, registers are numbered, %0, %1, but you can give them custom names like:
%myvar, %subresult, etc