On 9/5/15 08:07, Chen Gang wrote: > Hello all: > > It is about Bug65804, after this git commit below, the current blackfin > kernel code can not pass building when enable FUNCTION_TRACER. > > I want to consult: Is it the original gcc and current kernel issue? or > our related git commit "e52beba PR debug/54694" need be improved? > After a simple check, for me, I guess our gcc need be improved. Unlike the other archs, bfin will generate LINK and UNLINK insns when "-fno-omit-frame-pointer", which can be sure FP is always OK. Thanks. > The related git commit: > > commit e52beba9024b5499c5a75929423764b9aa81ffb8 > Author: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> > Date: Wed Jan 15 21:41:03 2014 +0000 > > PR debug/54694 > > Diagnose frame_pointer_required vs fixed hfp > > git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206647 138bc75d-0d04-0410-961f-82ee72b054a4 > > diff --git a/gcc/ChangeLog b/gcc/ChangeLog > index c93bf23..075582a 100644 > --- a/gcc/ChangeLog > +++ b/gcc/ChangeLog > @@ -1,3 +1,11 @@ > +2014-01-15 Richard Henderson <rth@xxxxxxxxxx> > + > + PR debug/54694 > + * reginfo.c (global_regs_decl): Globalize. > + * rtl.h (global_regs_decl): Declare. > + * ira.c (do_reload): Diagnose frame_pointer_needed and it > + reserved via global_regs. > + > 2014-01-15 Teresa Johnson <tejohnson@xxxxxxxxxx> > > * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef. > diff --git a/gcc/ira.c b/gcc/ira.c > index 41e05f4..ee6010a 100644 > --- a/gcc/ira.c > +++ b/gcc/ira.c > @@ -5532,6 +5532,18 @@ do_reload (void) > if (need_dce && optimize) > run_fast_dce (); > > + /* Diagnose uses of the hard frame pointer when it is used as a global > + register. Often we can get away with letting the user appropriate > + the frame pointer, but we should let them know when code generation > + makes that impossible. */ > + if (global_regs[HARD_FRAME_POINTER_REGNUM] && frame_pointer_needed) > + { > + tree decl = global_regs_decl[HARD_FRAME_POINTER_REGNUM]; > + error_at (DECL_SOURCE_LOCATION (current_function_decl), > + "frame pointer required, but reserved"); > + inform (DECL_SOURCE_LOCATION (decl), "for %qD", decl); > + } > + > timevar_pop (TV_IRA); > } > > ... > > Thanks. > -- > Chen Gang (陈刚) > > Open, share, and attitude like air, water, and life which God blessed > > -- Chen Gang (陈刚) Open, share, and attitude like air, water, and life which God blessed