I forgot to mention one important part..I am using GCC 4.0.2

Hello Everyone,
    I am currently working on the OpenRISC port of GCC. There isn't much
significant backend optimization implemented, its just a straightforward
port.
 
    Now, is it possible for the code to move between Basic blocks (or
even inside the basic blocks) after machine dependent reorganization
stage?  If so, how can I stop it from happening.. or can I? 
 
I printed out the RTL dump using the following code during the machine
dependent reorganization


FOR_EACH_BB(bb) {
    for (insn = bb_head(bb); insn != bb_end(bb); insn = NEXT_INSN(insn))
{
       if (INSN_P(insn))
          print_rtl_single(insn);
    }
}
 
Then I compared with the assembly output and the RTL-equivalent and they
do not come out in the same order.. A couple instructions were even
moved outside a basic-block... Am I going through the instruction chain
in the wrong way?
 
Any help is deeply appreciated!
 
Thanks,
 
Balaji V. Iyer.
-- 
 
Balaji V. Iyer
PhD Candidate,
Center for Efficient, Scalable and Reliable Computing, Department of
Electrical and Computer Engineering, North Carolina State University.


Reply via email to