Eliminating redundant fragment shader executions on a mobile GPU via hardware memoization
Dynamic purity analysis for java programs