Extracting Parallelism From Legacy Sequential Code Using Transactional Memory