compile for lock backend pass