address order and BB numbering
Although "BASIC_BLOCK array contains BBs in an unspecified order" as the GCC internal doc says, can I assume that the final virtual address for an instruction in BB_m is always higher than the virtual address for an instruction in BB_n, when m < n. (Let's assume the linker for the target machine produce code from low address to high address.) It seems to be rigth to me. Just curious. Thanks, _ Is your PC infected? Get a FREE online computer virus scan from McAfee® Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
Re: address order and BB numbering
On May 19, 2006, at 12:48 PM, sean yang wrote: Although "BASIC_BLOCK array contains BBs in an unspecified order" as the GCC internal doc says, can I assume that the final virtual address for an instruction in BB_m is always higher than the virtual address for an instruction in BB_n, when m < n. (Let's assume the linker for the target machine produce code from low address to high address.) Definitely not. Various phases that need to know the order of insns produce a CUID for that phase, but it is not maintained globally.
Re: address order and BB numbering
From: Dale Johannesen <[EMAIL PROTECTED]> To: sean yang <[EMAIL PROTECTED]> CC: Dale Johannesen <[EMAIL PROTECTED]>, gcc@gcc.gnu.org Subject: Re: address order and BB numbering Date: Fri, 19 May 2006 12:54:56 -0700 On May 19, 2006, at 12:48 PM, sean yang wrote: Although "BASIC_BLOCK array contains BBs in an unspecified order" as the GCC internal doc says, can I assume that the final virtual address for an instruction in BB_m is always higher than the virtual address for an instruction in BB_n, when m < n. (Let's assume the linker for the target machine produce code from low address to high address.) Definitely not. Various phases that need to know the order of insns produce a CUID for that phase, but it is not maintained globally. Thanks for the answer. Then this must be a very dummy question. How the compiler keep the instruction order in the RTL IR format in a function? By the information like "insn 50 56 51" ? e.g., (insn 50 56 51 4 (clobber (reg/i:SI 0 ax)) -1 (nil) ) _ FREE pop-up blocking with the new MSN Toolbar get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
Re: address order and BB numbering
sean yang wrote on 05/19/06 15:48: > can I assume that the final virtual address for > an instruction in BB_m is always higher than the virtual address for an > instruction in BB_n, when m < n. > No. Think code insertion.
Re: address order and BB numbering
> Then this must be a very dummy question. How the compiler keep the > instruction order in the RTL IR format in a function? By the information > like "insn 50 56 51" ? e.g., > (insn 50 56 51 4 (clobber (reg/i:SI 0 ax)) -1 (nil) ) It's a linked list. The 56 and 51 link to the previous and next insn in the chain.