TRE currently reasons that if a function does not write to any memory, a
passed alloca cannot escape. We strengthen this by not escaping for functions
that write only to argmem memory. An alloca is escaped if its address is
written to a location outside of the function, such as a global. If the
function only writes to arguments, there is no escaping. For example:
unsigned *foo(unsigned *n) {
*n = 12;
return n;
}foo() writes to memory, but only to argmem memory. If n is a passed
alloca, it does not escape.