Techniques for Managing Irregular Control Flow on GPUs