For a first order autonomous ODE, we give a polynomial time algorithm to decide whether it has a polynomial general solution and to compute one if it exists. Experiments show that this algorithm is quite effective in solving ODEs with high degrees and a large number of terms.