Each time you recompile an OpenCL input file and build an intermediate binary with the "-ir=<file>" switch there is a new timestamp/GUID/something buried in the binary.
The same input file should generate the same binary output (modulo the same workstation, compiler, driver, etc.).
I really wish this wasn't happening as it's not very friendly to version control systems.
This is just for the .IR output option and I don't know if it also occurs with the SPIR-V output options.