We have two transformations that create new variables in the module - TransformationAddGlobalVariable and TransformationAddLocalVariable. Some transformations also require that 'irrelevant' variables are present in the module (e.g. TransformationPushIdThroughVariable and TransformationAddCopyMemory).
We could create a new variable in the fuzzer pass and check that it's irrelevant in the transformation's IsApplicable method but other transformations might clobber the value of the variable in this case. Thus, we are simply reusing the same code inside TransformationPushIdThroughVariable and TransformationAddCopyMemory. It would be good to refactor it into a separate function(s) (say, in fuzzerutil) to reduce the boilerplate.