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? 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