There are some small asynchronous processors in which each stage reacts directly to the previous one without waiting for clock pulses. In theory, they should be faster but in practice, as the circuit becomes more complicated, it gets more and more difficult to cater for race and delay conditions, particularly when propagation paths can be widely different.
I used to work on the design of SPARC processors and one of our processors had a self timed, asynchronous integer divider on it and I know the DFT guy had a hard time to run ATPG tool. Technically, you can extend the asynchronicity to the entire chip and eliminate the clock. Asynchronous circuits are more efficient, but the circuits will be way more complicated and also you have to develop your own CAD tools to suit the asynchnous logic siince most of the tools widely available cannot handle the timing loops. Too much headache..