This fixes issue#2349. In essence, what happened was that the CUDA memory optimisations run a CSE which combined two EMR-introduced F_noop operations that are required to produce memory of two different shapes. By providing the type as parameter, this becomes a CSE-safe scenario! While doing so, I decided to rename F_noop into F_EMR_noop in order to: a) disentangle the different "uses" of F_noop in the compiler b) to clearly indicate that this "noop" solely serves the purpose of EMR