1. A method of compiling code, the method comprising: identifying a first portion of the code that does not include a software transactional memory (STM) designator; converting the first portion of the code into a first pseudo STM transaction including a sequence of instructions configured to execute atomically with an STM system; ensuring that the first portion of the code does not include a synchronization operation; and configuring the first pseudo STM transaction prior to a synchronization operation so that the first pseudo STM transaction commits before the synchronization operation starts.