Determine if the call of f, or function type or delegate type t1, has any side effects.
Build a temporary variable to copy the value of e into.
The result of this expression will be discarded. Print error messages if the operation has no side effects (and hence is meaningless).
Build a temporary variable to extract e's evaluation, if e is not trivial.
Determine if Expression has any side effects.
Front-end expression rewriting should create temporary variables for non trivial sub-expressions in order to: 1. save evaluation order 2. prevent sharing of sub-expression in AST
Find side-effects of expressions.