This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Rewrite of pure/const pass and nothrow stuff

Sorry for taking so long to reply. Just a small comment.

>  2) There is local variant of the pass.  It can be done during early optimization
>  and at the place original RTL pass executed.  Especially in early
>  optimization we are effective.  Main motivation for doing so early is to strip down EH
>  and dead calls to get early inliner more informed; main motivation for late pass is to avoid
>  dwarf2out from unnecesarily outputting unwind info and being stupid.
>  IPA pass is the only able to handle non-trivial recursion cycles.

The current pass has a hidden ordering problem. If we have

void f(void) {g()};

the pass will mark g as nothrow and that will invalidate f's eh
regions since the call will be in a eh region but will not throw. An
IPA pass could update f to fix it. With your patch, don't we still
have the same problem in the early and RTL passes?

Rafael Avila de Espindola

Google | Gordon House | Barrow Street | Dublin 4 | Ireland
Registered in Dublin, Ireland | Registration Number: 368047

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]