Optimizing Datalog for the GPU