Using Heuristic Value Prediction and Dynamic Task Granularity Resizing to Improve Software Speculation. (20th May 2014)