Re: Using cfglayout mode in the selective scheduler

2008-08-12 Thread Andrey Belevantsev
Zdenek Dvorak wrote: I am probably missing something: The basic idea is enabling cfglayout mode and then ensuring that insn stream and control flow are in sync with each other at all times. This is required because e.g. on Itanium the final bundling happens right after scheduling, and any extra

Re: Using cfglayout mode in the selective scheduler

2008-08-11 Thread Zdenek Dvorak
Hi, > > I am probably missing something: > > > >> The basic idea is enabling cfglayout mode and then ensuring that insn > >> stream and control flow are in sync with each other at all times. This > >> is required because e.g. on Itanium the final bundling happens right > >> after scheduling, and a

Re: Using cfglayout mode in the selective scheduler

2008-08-11 Thread Steven Bosscher
On Mon, Aug 11, 2008 at 10:02 PM, Zdenek Dvorak <[EMAIL PROTECTED]> wrote: > Hi, > > I am probably missing something: > >> The basic idea is enabling cfglayout mode and then ensuring that insn >> stream and control flow are in sync with each other at all times. This >> is required because e.g. on I

Re: Using cfglayout mode in the selective scheduler

2008-08-11 Thread Zdenek Dvorak
Hi, I am probably missing something: > The basic idea is enabling cfglayout mode and then ensuring that insn > stream and control flow are in sync with each other at all times. This > is required because e.g. on Itanium the final bundling happens right > after scheduling, and any extra jumps emit

Re: Using cfglayout mode in the selective scheduler

2008-08-11 Thread Steven Bosscher
On Mon, Aug 11, 2008 at 3:55 PM, Andrey Belevantsev <[EMAIL PROTECTED]> wrote: > 1. Make the required fixes inside the cfglayout hooks so that both the new > behavior and the old behavior is supported and the user can choose one of > them. As we still need to see the created jumps, we need to make

Using cfglayout mode in the selective scheduler

2008-08-11 Thread Andrey Belevantsev
Hello, Currently, the selective scheduler pass uses cfgrtl mode. This results in creating extra jumps and basic blocks while changing control flow, especially when redirecting edges. When this happens, we need to initialize scheduler's data structures. To do this, we have implemented contr