A temp spill may not have direct dbg.declare attached. This can cause problem for debugger when it wants to print the value in resume/destroy/cleanup functions.
In particular, we found this happening to "this" pointer that a temp is used to store its value in entry block and spilled later.
I'm not sure alias is the right term here: if we walk up a load chain, we are not finding aliases, instead we're adding levels of pointer indirections. These pointers don't alias, they point to different addresses.