Practical Verification of High-Level Dataraces in Transactional Memory Programs