There was a foreach loop example that was observed to cause a
segmentation fault. After some investigation, it was found that
one of the registers was clobbered in the optimization process.
This patch modifies the register interference implementation.
Previously, variables that were defined at an instruction were
not considered in the register interference graph. However, by
defintion, a variable is live where it is defined and wherever
it holds a value that is used in the future. With this patch,
the register interference graph also takes into account where
the variables are defined, and considers them to be live.
1) Included variables that are being defined in live set.
2) Split foreach_string.stp test probes to accomodate for stack size.