Hi : I'm puzzled when looking into speculative scheduling in gcc, the 4.2.4 version.
First, I noticed the document describing IBM haifa instruction scheduler(as PowerPC Reference Compiler Optimization Project). It presents that the instruction motion from bb s(dominated by t) to t is speculative when split_blocks(s, t) not empty. Second, There is SCED_FLAGS like DO_SPECULATION in codes. Here goes questions. 1, Does the DO_SPECULATION flag constrol whether do the mentioned speculative motion or not? 2, For mips target, which has the DO_SPECULATION bit cleared, gcc still does speculative motion when scheduling(first pass), so it seems the answer of question 1 is negative, but then what the DO_SPECULATION flag for? I must have missed something important, Please help out. Thanks -- Best Regards.