How does extra copy added by spill code get eliminated?

The spill code like “trivial spiller” in LLVM creates a new virtual register and an extra load/store instruction based on the new virtual register for each def/use of the original register which is replaced. Since the newly created vreg doesn’t need physical register, where doesn’t it get eliminated? I checked RegisterCoalescer but didn’t get the exact function for such purpose.