Dynamic data race detection with hardware support