Efficient upper-bound limit analysis