Hi Jeff, On 30/04/19 16:29, Jeff Law wrote: > On 1/4/19 9:03 AM, Matthew Malcomson wrote: >> Hi there, >> >> I'm trying to figure out precisely what NOTE_INSN_FUNCTION_BEG means and >> hoping someone here knows. > It doesn't mean very much anymore. I believe it was used to > distinguish between stuff like copying incoming arguments into pseudos > and real user code. > > However, in a world with instruction scheduling and other code motion it > just doesn't have much use because it's so imprecise, particularly as we > get deeper into the RTL pipeline. >
Ah, I guess an imprecise marker probably needs an imprecise definition ;-) >> > Well, the question I'd ask is precisely what are you trying to mark? I'm wanting to mark the first instruction from "user code". I'm trying to fix PR88432, where gdb puts the breakpoint from the "start" command in the wrong place. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88432 Gdb breaks on the second debug line entry in a function, which in practice is the instruction directly after NOTE_INSN_FUNCTION_BEG. The "fuzzy" definition from gccint.info didn't seem to explain what was to happen with compiler inserted code that was not part of the prologue, and this was what I was hoping to nail down. When looking, it seemed the note was being used in three slightly different ways (I went into more information in the cover letter of my [RFC] patch https://gcc.gnu.org/ml/gcc-patches/2019-01/msg00543.html ), and I was hoping to get a precise definition so I could decide what approach to take. Thanks, MM > > Jeff >