How to identify passes applied in different optimization levels?

Hi,
I want to know how to identify the passes applied in different optimization levels in LLVM. For instance I want to know the passes that applied on temp.c.o and their order.

opt -enable-new-pm=0 --O2   temp.c.o -o temp.c.o

Your inputs are greatly appreciated.