This is the mail archive of the gcc@gcc.gnu.org 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]

Re: Comment at end of stmt:expand_decl



  In message <10002062338.AA27015@vlsi1.ultra.nyu.edu>you write:
  > Does that comment make sense to anybody?
  > 
  > RTX_UNCHANGING_P means that a register is only set once.  WHat does it
  > matter whether the scope of the variable is or is not the entire function?
  > 
  > RIght now, this is the source of a bug since if we put a variable into the
  > stack via ADDRESSOF, references to the variable before it was put into
  > the stack will not have RTX_UNCHANING_P set but those after will, which
  > will cause the scheduler to do the wrong thing.
  > 
  > I propose removing the comment in question and doign the code that is
  > current #if 0'ed out.  Does anybody know why this would be wrong?
The change was added by Wilson in 1993 -- if you look at the old gcc2 sources:

Fri May 14 13:23:51 1993  Jim Wilson  (wilson@wookumz.gnu.ai.mit.edu)

        * integrate.c (expand_inline_function): Set map->integrating.
        (copy_rtx_and_substitute, case MEM): Don't copy RTX_UNCHANGING_P
        when doing function inlining.
        * integrate.h (struct inline_remap): Add integrating field.
        * unroll.c (unroll_loop): Clear map->integrating.
        * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.

Presumably the change is somehow related to problems inlining.

jeff





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