It doesn't actually occur during the page lifecycle. By the time your Page object is invoked as a handler for a request, the .aspx has already been parsed and the code compiled into the underlying classes.
When this parsing and compilation occurs depends on the setup of your application. If it's a "Web Site project", this compilation generally happens on the fly by the ASP.Net runtime, meaning that when it detects a request to a page that has not been requested before, or has been modified.
In pre-compiled websites, all the classes already exist and none of the runtime parsing and compilation happens.
The class that actually performs the conversion is a class called PageParser. Essentially the ASP.Net runtime invokes this class' GetCompiledPageInstance method, which ends up compiling the page if it doesn't exist in memory already.
In terms of lifecycle - the Page lifecycle is nested in the HttpApplication's "lifecycle", which is in turn part of the http request processing pipeline. It is well before the Page ever comes into the picture that this compilation happens.