From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Jacobowitz To: "J.T. Conklin" Cc: gdb@sourceware.cygnus.com Subject: Re: SKIP_PROLOGUE() and prologue insn scheduling Date: Tue, 17 Jul 2001 16:31:00 -0000 Message-id: <20010717163126.A5385@nevyn.them.org> References: <5msnfv9nsp.fsf@orac.redback.com> X-SW-Source: 2001-07/msg00226.html On Tue, Jul 17, 2001 at 03:46:30PM -0700, J.T. Conklin wrote: > A coworker asked me what the prefered behavior of the SKIP_PROLOGUE() > macro when the compiler schedules the function prologue in with user > insns. I didn't have a good answer and the internals documentation > doesn't address this, so I'm shooting the question to the list. > > The choice is whether SKIP_PROLOGUE() returns: > 1) 1st user insn even though more prologue insns remain? > 2) 1st user insn after final prologue insn? > > Of these two, I think #1 is the most conservative choice. However, > gdb may may not be able to print function arguments correctly until > the user steps beyond the remainder of the prologue. While #2 does > not have that problem, having user insns execute as part of the > prologue could also be confusing --- Especially those that have > observable side effects (e.g. writes to a memory mapped device). > > What is the common wisdom? At the very least, I think we need to > flesh out this issue in the internals document. IMO, #1 is the way to go. It's regrettable in that a whole lot of tests start failing, since we will display arguments wrong. But if the prologue is being scheduled, it's possible to schedule part of the prologue on the interior of a large if statement (which encompasses the rest of the body of the function, say). If we do #2, we may never stop in the function at all. -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer