public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [c++ patch] avoid inlining twice
@ 2004-02-05 12:29 Jan Hubicka
  2004-02-05 15:11 ` Gabriel Dos Reis
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Jan Hubicka @ 2004-02-05 12:29 UTC (permalink / raw)
  To: gcc-patches, mark

Hi,
I've sent this few times already, but this time I really need it.
Inlining is currently performced twice - once in optimize_function in
C++ frontend, later in cgraph_optimize_function in the backend.  This
kills the first.  It is needed for my cgraph code changes where inlining
must happent after original body has been saved.

Bootstrapped/regtested i686-pc-gnu-linux, OK?

Honza

	* tree.h (optimize_function): Kill prototype.
	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
	* semantics.c (expand_body): Kill.
Index: cp/cp-tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/cp-tree.h,v
retrieving revision 1.949
diff -c -3 -p -r1.949 cp-tree.h
*** cp/cp-tree.h	2 Feb 2004 16:53:01 -0000	1.949
--- cp/cp-tree.h	5 Feb 2004 11:55:26 -0000
*************** extern tree implicitly_declare_fn (speci
*** 3854,3860 ****
  extern tree skip_artificial_parms_for (tree, tree);
  
  /* In optimize.c */
- extern void optimize_function (tree);
  extern bool calls_setjmp_p (tree);
  extern bool maybe_clone_body (tree);
  
--- 3854,3859 ----
Index: cp/optimize.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/optimize.c,v
retrieving revision 1.104
diff -c -3 -p -r1.104 optimize.c
*** cp/optimize.c	22 Jan 2004 00:03:52 -0000	1.104
--- cp/optimize.c	5 Feb 2004 11:55:26 -0000
*************** Software Foundation, 59 Temple Place - S
*** 41,68 ****
  
  static tree calls_setjmp_r (tree *, int *, void *);
  static void update_cloned_parm (tree, tree);
- static void dump_function (enum tree_dump_index, tree);
- 
- /* Optimize the body of FN.  */
- 
- void
- optimize_function (tree fn)
- {
-   dump_function (TDI_original, fn);
- 
-   if (flag_inline_trees
-       /* We do not inline thunks, as (a) the backend tries to optimize
-          the call to the thunkee, (b) tree based inlining breaks that
-          optimization, (c) virtual functions are rarely inlineable,
-          and (d) TARGET_ASM_OUTPUT_MI_THUNK is there to DTRT anyway.  */
-       && !DECL_THUNK_P (fn))
-     {
-       optimize_inline_calls (fn);
-       dump_function (TDI_inlined, fn);
-     }
-   
-   dump_function (TDI_optimized, fn);
- }
  
  /* Called from calls_setjmp_p via walk_tree.  */
  
--- 41,46 ----
*************** maybe_clone_body (tree fn)
*** 251,277 ****
  
    /* We don't need to process the original function any further.  */
    return 1;
- }
- 
- /* Dump FUNCTION_DECL FN as tree dump PHASE.  */
- 
- static void
- dump_function (enum tree_dump_index phase, tree fn)
- {
-   FILE *stream;
-   int flags;
- 
-   stream = dump_begin (phase, &flags);
-   if (stream)
-     {
-       fprintf (stream, "\n;; Function %s",
- 	       decl_as_string (fn, TFF_DECL_SPECIFIERS));
-       fprintf (stream, " (%s)\n",
- 	       decl_as_string (DECL_ASSEMBLER_NAME (fn), 0));
-       fprintf (stream, ";; enabled by -fdump-%s\n", dump_flag_name (phase));
-       fprintf (stream, "\n");
-       
-       dump_node (fn, TDF_SLIM | flags, stream);
-       dump_end (phase, stream);
-     }
  }
--- 229,232 ----
Index: cp/semantics.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/semantics.c,v
retrieving revision 1.388
diff -c -3 -p -r1.388 semantics.c
*** cp/semantics.c	3 Feb 2004 17:59:54 -0000	1.388
--- cp/semantics.c	5 Feb 2004 11:55:27 -0000
*************** expand_body (tree fn)
*** 2894,2903 ****
    /* Emit any thunks that should be emitted at the same time as FN.  */
    emit_associated_thunks (fn);
  
-   timevar_push (TV_INTEGRATION);
-   optimize_function (fn);
-   timevar_pop (TV_INTEGRATION);
- 
    tree_rest_of_compilation (fn, function_depth > 1);
  
    current_function_decl = saved_function;
--- 2894,2899 ----

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 12:29 [c++ patch] avoid inlining twice Jan Hubicka
@ 2004-02-05 15:11 ` Gabriel Dos Reis
  2004-02-05 17:22   ` Jan Hubicka
  2004-02-21 13:45   ` Gabriel Dos Reis
  2004-02-05 16:56 ` Mark Mitchell
  2004-02-21 13:45 ` Jan Hubicka
  2 siblings, 2 replies; 16+ messages in thread
From: Gabriel Dos Reis @ 2004-02-05 15:11 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: gcc-patches, mark

Jan Hubicka <jh@suse.cz> writes:

| 	* tree.h (optimize_function): Kill prototype.
| 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
| 	* semantics.c (expand_body): Kill.

Is "kill" the right word for "remove" in the ChangeLog?

-- Gaby

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 12:29 [c++ patch] avoid inlining twice Jan Hubicka
  2004-02-05 15:11 ` Gabriel Dos Reis
@ 2004-02-05 16:56 ` Mark Mitchell
  2004-02-05 17:00   ` Jan Hubicka
  2004-02-21 13:45   ` Mark Mitchell
  2004-02-21 13:45 ` Jan Hubicka
  2 siblings, 2 replies; 16+ messages in thread
From: Mark Mitchell @ 2004-02-05 16:56 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: gcc-patches

Jan Hubicka wrote:

>Hi,
>I've sent this few times already, but this time I really need it.
>Inlining is currently performced twice - once in optimize_function in
>C++ frontend, later in cgraph_optimize_function in the backend.  This
>kills the first.  It is needed for my cgraph code changes where inlining
>must happent after original body has been saved.
>
>Bootstrapped/regtested i686-pc-gnu-linux, OK?
>  
>
What if !flag_unit_at_a_time?

(I'd actually like to see you get rid of that flag; it would be better 
if we were just always unit-at-a-time.)

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 16:56 ` Mark Mitchell
@ 2004-02-05 17:00   ` Jan Hubicka
  2004-02-05 17:03     ` Mark Mitchell
  2004-02-21 13:45     ` Jan Hubicka
  2004-02-21 13:45   ` Mark Mitchell
  1 sibling, 2 replies; 16+ messages in thread
From: Jan Hubicka @ 2004-02-05 17:00 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: Jan Hubicka, gcc-patches

> Jan Hubicka wrote:
> 
> >Hi,
> >I've sent this few times already, but this time I really need it.
> >Inlining is currently performced twice - once in optimize_function in
> >C++ frontend, later in cgraph_optimize_function in the backend.  This
> >kills the first.  It is needed for my cgraph code changes where inlining
> >must happent after original body has been saved.
> >
> >Bootstrapped/regtested i686-pc-gnu-linux, OK?
> > 
> >
> What if !flag_unit_at_a_time?

Even in non-unit-at-a-time, the cgraphunit will do the inlining, there
is no difference from frontend side anymore.
> 
> (I'd actually like to see you get rid of that flag; it would be better 
> if we were just always unit-at-a-time.)

Me too.  The compatiblity issues are getting solved quite happily.
Linux kernel is now mostly safe, so remaining known blockers are one
file in glibc and crtbegin.c in GCC.  I think we can discuss doing that
for 3.5 and perhaps we can even add a comment to current .texi manual
that the flag is there just to help update existing codebases (I already
mentioned the possibility of dropping it in changes.html)

Honza
> 
> -- 
> Mark Mitchell
> CodeSourcery, LLC
> (916) 791-8304
> mark@codesourcery.com
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 17:00   ` Jan Hubicka
@ 2004-02-05 17:03     ` Mark Mitchell
  2004-02-21 13:45       ` Mark Mitchell
  2004-02-21 13:45     ` Jan Hubicka
  1 sibling, 1 reply; 16+ messages in thread
From: Mark Mitchell @ 2004-02-05 17:03 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: gcc-patches

Jan Hubicka wrote:

>>Jan Hubicka wrote:
>>
>>    
>>
>>>Hi,
>>>I've sent this few times already, but this time I really need it.
>>>Inlining is currently performced twice - once in optimize_function in
>>>C++ frontend, later in cgraph_optimize_function in the backend.  This
>>>kills the first.  It is needed for my cgraph code changes where inlining
>>>must happent after original body has been saved.
>>>
>>>Bootstrapped/regtested i686-pc-gnu-linux, OK?
>>>
>>>
>>>      
>>>
>>What if !flag_unit_at_a_time?
>>    
>>
>
>Even in non-unit-at-a-time, the cgraphunit will do the inlining, there
>is no difference from frontend side anymore.
>  
>
The patch is OK, then.

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 15:11 ` Gabriel Dos Reis
@ 2004-02-05 17:22   ` Jan Hubicka
  2004-02-05 17:37     ` Gabriel Dos Reis
                       ` (2 more replies)
  2004-02-21 13:45   ` Gabriel Dos Reis
  1 sibling, 3 replies; 16+ messages in thread
From: Jan Hubicka @ 2004-02-05 17:22 UTC (permalink / raw)
  To: Gabriel Dos Reis; +Cc: Jan Hubicka, gcc-patches, mark

> Jan Hubicka <jh@suse.cz> writes:
> 
> | 	* tree.h (optimize_function): Kill prototype.
> | 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
> | 	* semantics.c (expand_body): Kill.
> 
> Is "kill" the right word for "remove" in the ChangeLog?

Not sure, I just feel better when I am killing old code rather than
removing it.  I can use remove if it sounds better.

Honza
> 
> -- Gaby

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 17:22   ` Jan Hubicka
@ 2004-02-05 17:37     ` Gabriel Dos Reis
  2004-02-21 13:45       ` Gabriel Dos Reis
  2004-02-05 18:13     ` Mark Mitchell
  2004-02-21 13:45     ` Jan Hubicka
  2 siblings, 1 reply; 16+ messages in thread
From: Gabriel Dos Reis @ 2004-02-05 17:37 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Jan Hubicka, gcc-patches, mark

Jan Hubicka <hubicka@ucw.cz> writes:

| > Jan Hubicka <jh@suse.cz> writes:
| > 
| > | 	* tree.h (optimize_function): Kill prototype.
| > | 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
| > | 	* semantics.c (expand_body): Kill.
| > 
| > Is "kill" the right word for "remove" in the ChangeLog?
| 
| Not sure, I just feel better when I am killing old code rather than
| removing it.

:-)

| I can use remove if it sounds better.

sure.  Thank you!

-- Gaby

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 17:22   ` Jan Hubicka
  2004-02-05 17:37     ` Gabriel Dos Reis
@ 2004-02-05 18:13     ` Mark Mitchell
  2004-02-21 13:45       ` Mark Mitchell
  2004-02-21 13:45     ` Jan Hubicka
  2 siblings, 1 reply; 16+ messages in thread
From: Mark Mitchell @ 2004-02-05 18:13 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Gabriel Dos Reis, Jan Hubicka, gcc-patches

Jan Hubicka wrote:

>>Jan Hubicka <jh@suse.cz> writes:
>>
>>| 	* tree.h (optimize_function): Kill prototype.
>>| 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
>>| 	* semantics.c (expand_body): Kill.
>>
>>Is "kill" the right word for "remove" in the ChangeLog?
>>    
>>
>
>Not sure, I just feel better when I am killing old code rather than
>removing it.  I can use remove if it sounds better.
>
"Remove" is definitely better.

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 15:11 ` Gabriel Dos Reis
  2004-02-05 17:22   ` Jan Hubicka
@ 2004-02-21 13:45   ` Gabriel Dos Reis
  1 sibling, 0 replies; 16+ messages in thread
From: Gabriel Dos Reis @ 2004-02-21 13:45 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: gcc-patches, mark

Jan Hubicka <jh@suse.cz> writes:

| 	* tree.h (optimize_function): Kill prototype.
| 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
| 	* semantics.c (expand_body): Kill.

Is "kill" the right word for "remove" in the ChangeLog?

-- Gaby

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [c++ patch] avoid inlining twice
  2004-02-05 12:29 [c++ patch] avoid inlining twice Jan Hubicka
  2004-02-05 15:11 ` Gabriel Dos Reis
  2004-02-05 16:56 ` Mark Mitchell
@ 2004-02-21 13:45 ` Jan Hubicka
  2 siblings, 0 replies; 16+ messages in thread
From: Jan Hubicka @ 2004-02-21 13:45 UTC (permalink / raw)
  To: gcc-patches, mark

Hi,
I've sent this few times already, but this time I really need it.
Inlining is currently performced twice - once in optimize_function in
C++ frontend, later in cgraph_optimize_function in the backend.  This
kills the first.  It is needed for my cgraph code changes where inlining
must happent after original body has been saved.

Bootstrapped/regtested i686-pc-gnu-linux, OK?

Honza

	* tree.h (optimize_function): Kill prototype.
	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
	* semantics.c (expand_body): Kill.
Index: cp/cp-tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/cp-tree.h,v
retrieving revision 1.949
diff -c -3 -p -r1.949 cp-tree.h
*** cp/cp-tree.h	2 Feb 2004 16:53:01 -0000	1.949
--- cp/cp-tree.h	5 Feb 2004 11:55:26 -0000
*************** extern tree implicitly_declare_fn (speci
*** 3854,3860 ****
  extern tree skip_artificial_parms_for (tree, tree);
  
  /* In optimize.c */
- extern void optimize_function (tree);
  extern bool calls_setjmp_p (tree);
  extern bool maybe_clone_body (tree);
  
--- 3854,3859 ----
Index: cp/optimize.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/optimize.c,v
retrieving revision 1.104
diff -c -3 -p -r1.104 optimize.c
*** cp/optimize.c	22 Jan 2004 00:03:52 -0000	1.104
--- cp/optimize.c	5 Feb 2004 11:55:26 -0000
*************** Software Foundation, 59 Temple Place - S
*** 41,68 ****
  
  static tree calls_setjmp_r (tree *, int *, void *);
  static void update_cloned_parm (tree, tree);
- static void dump_function (enum tree_dump_index, tree);
- 
- /* Optimize the body of FN.  */
- 
- void
- optimize_function (tree fn)
- {
-   dump_function (TDI_original, fn);
- 
-   if (flag_inline_trees
-       /* We do not inline thunks, as (a) the backend tries to optimize
-          the call to the thunkee, (b) tree based inlining breaks that
-          optimization, (c) virtual functions are rarely inlineable,
-          and (d) TARGET_ASM_OUTPUT_MI_THUNK is there to DTRT anyway.  */
-       && !DECL_THUNK_P (fn))
-     {
-       optimize_inline_calls (fn);
-       dump_function (TDI_inlined, fn);
-     }
-   
-   dump_function (TDI_optimized, fn);
- }
  
  /* Called from calls_setjmp_p via walk_tree.  */
  
--- 41,46 ----
*************** maybe_clone_body (tree fn)
*** 251,277 ****
  
    /* We don't need to process the original function any further.  */
    return 1;
- }
- 
- /* Dump FUNCTION_DECL FN as tree dump PHASE.  */
- 
- static void
- dump_function (enum tree_dump_index phase, tree fn)
- {
-   FILE *stream;
-   int flags;
- 
-   stream = dump_begin (phase, &flags);
-   if (stream)
-     {
-       fprintf (stream, "\n;; Function %s",
- 	       decl_as_string (fn, TFF_DECL_SPECIFIERS));
-       fprintf (stream, " (%s)\n",
- 	       decl_as_string (DECL_ASSEMBLER_NAME (fn), 0));
-       fprintf (stream, ";; enabled by -fdump-%s\n", dump_flag_name (phase));
-       fprintf (stream, "\n");
-       
-       dump_node (fn, TDF_SLIM | flags, stream);
-       dump_end (phase, stream);
-     }
  }
--- 229,232 ----
Index: cp/semantics.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/semantics.c,v
retrieving revision 1.388
diff -c -3 -p -r1.388 semantics.c
*** cp/semantics.c	3 Feb 2004 17:59:54 -0000	1.388
--- cp/semantics.c	5 Feb 2004 11:55:27 -0000
*************** expand_body (tree fn)
*** 2894,2903 ****
    /* Emit any thunks that should be emitted at the same time as FN.  */
    emit_associated_thunks (fn);
  
-   timevar_push (TV_INTEGRATION);
-   optimize_function (fn);
-   timevar_pop (TV_INTEGRATION);
- 
    tree_rest_of_compilation (fn, function_depth > 1);
  
    current_function_decl = saved_function;
--- 2894,2899 ----

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 17:22   ` Jan Hubicka
  2004-02-05 17:37     ` Gabriel Dos Reis
  2004-02-05 18:13     ` Mark Mitchell
@ 2004-02-21 13:45     ` Jan Hubicka
  2 siblings, 0 replies; 16+ messages in thread
From: Jan Hubicka @ 2004-02-21 13:45 UTC (permalink / raw)
  To: Gabriel Dos Reis; +Cc: Jan Hubicka, gcc-patches, mark

> Jan Hubicka <jh@suse.cz> writes:
> 
> | 	* tree.h (optimize_function): Kill prototype.
> | 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
> | 	* semantics.c (expand_body): Kill.
> 
> Is "kill" the right word for "remove" in the ChangeLog?

Not sure, I just feel better when I am killing old code rather than
removing it.  I can use remove if it sounds better.

Honza
> 
> -- Gaby

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 17:00   ` Jan Hubicka
  2004-02-05 17:03     ` Mark Mitchell
@ 2004-02-21 13:45     ` Jan Hubicka
  1 sibling, 0 replies; 16+ messages in thread
From: Jan Hubicka @ 2004-02-21 13:45 UTC (permalink / raw)
  To: Mark Mitchell; +Cc: Jan Hubicka, gcc-patches

> Jan Hubicka wrote:
> 
> >Hi,
> >I've sent this few times already, but this time I really need it.
> >Inlining is currently performced twice - once in optimize_function in
> >C++ frontend, later in cgraph_optimize_function in the backend.  This
> >kills the first.  It is needed for my cgraph code changes where inlining
> >must happent after original body has been saved.
> >
> >Bootstrapped/regtested i686-pc-gnu-linux, OK?
> > 
> >
> What if !flag_unit_at_a_time?

Even in non-unit-at-a-time, the cgraphunit will do the inlining, there
is no difference from frontend side anymore.
> 
> (I'd actually like to see you get rid of that flag; it would be better 
> if we were just always unit-at-a-time.)

Me too.  The compatiblity issues are getting solved quite happily.
Linux kernel is now mostly safe, so remaining known blockers are one
file in glibc and crtbegin.c in GCC.  I think we can discuss doing that
for 3.5 and perhaps we can even add a comment to current .texi manual
that the flag is there just to help update existing codebases (I already
mentioned the possibility of dropping it in changes.html)

Honza
> 
> -- 
> Mark Mitchell
> CodeSourcery, LLC
> (916) 791-8304
> mark@codesourcery.com
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 16:56 ` Mark Mitchell
  2004-02-05 17:00   ` Jan Hubicka
@ 2004-02-21 13:45   ` Mark Mitchell
  1 sibling, 0 replies; 16+ messages in thread
From: Mark Mitchell @ 2004-02-21 13:45 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: gcc-patches

Jan Hubicka wrote:

>Hi,
>I've sent this few times already, but this time I really need it.
>Inlining is currently performced twice - once in optimize_function in
>C++ frontend, later in cgraph_optimize_function in the backend.  This
>kills the first.  It is needed for my cgraph code changes where inlining
>must happent after original body has been saved.
>
>Bootstrapped/regtested i686-pc-gnu-linux, OK?
>  
>
What if !flag_unit_at_a_time?

(I'd actually like to see you get rid of that flag; it would be better 
if we were just always unit-at-a-time.)

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 17:37     ` Gabriel Dos Reis
@ 2004-02-21 13:45       ` Gabriel Dos Reis
  0 siblings, 0 replies; 16+ messages in thread
From: Gabriel Dos Reis @ 2004-02-21 13:45 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Jan Hubicka, gcc-patches, mark

Jan Hubicka <hubicka@ucw.cz> writes:

| > Jan Hubicka <jh@suse.cz> writes:
| > 
| > | 	* tree.h (optimize_function): Kill prototype.
| > | 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
| > | 	* semantics.c (expand_body): Kill.
| > 
| > Is "kill" the right word for "remove" in the ChangeLog?
| 
| Not sure, I just feel better when I am killing old code rather than
| removing it.

:-)

| I can use remove if it sounds better.

sure.  Thank you!

-- Gaby

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 17:03     ` Mark Mitchell
@ 2004-02-21 13:45       ` Mark Mitchell
  0 siblings, 0 replies; 16+ messages in thread
From: Mark Mitchell @ 2004-02-21 13:45 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: gcc-patches

Jan Hubicka wrote:

>>Jan Hubicka wrote:
>>
>>    
>>
>>>Hi,
>>>I've sent this few times already, but this time I really need it.
>>>Inlining is currently performced twice - once in optimize_function in
>>>C++ frontend, later in cgraph_optimize_function in the backend.  This
>>>kills the first.  It is needed for my cgraph code changes where inlining
>>>must happent after original body has been saved.
>>>
>>>Bootstrapped/regtested i686-pc-gnu-linux, OK?
>>>
>>>
>>>      
>>>
>>What if !flag_unit_at_a_time?
>>    
>>
>
>Even in non-unit-at-a-time, the cgraphunit will do the inlining, there
>is no difference from frontend side anymore.
>  
>
The patch is OK, then.

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [c++ patch] avoid inlining twice
  2004-02-05 18:13     ` Mark Mitchell
@ 2004-02-21 13:45       ` Mark Mitchell
  0 siblings, 0 replies; 16+ messages in thread
From: Mark Mitchell @ 2004-02-21 13:45 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Gabriel Dos Reis, Jan Hubicka, gcc-patches

Jan Hubicka wrote:

>>Jan Hubicka <jh@suse.cz> writes:
>>
>>| 	* tree.h (optimize_function): Kill prototype.
>>| 	* optimize.c (dump_function, optimize_function, dump_finction): Kill.
>>| 	* semantics.c (expand_body): Kill.
>>
>>Is "kill" the right word for "remove" in the ChangeLog?
>>    
>>
>
>Not sure, I just feel better when I am killing old code rather than
>removing it.  I can use remove if it sounds better.
>
"Remove" is definitely better.

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2004-02-05 18:13 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-05 12:29 [c++ patch] avoid inlining twice Jan Hubicka
2004-02-05 15:11 ` Gabriel Dos Reis
2004-02-05 17:22   ` Jan Hubicka
2004-02-05 17:37     ` Gabriel Dos Reis
2004-02-21 13:45       ` Gabriel Dos Reis
2004-02-05 18:13     ` Mark Mitchell
2004-02-21 13:45       ` Mark Mitchell
2004-02-21 13:45     ` Jan Hubicka
2004-02-21 13:45   ` Gabriel Dos Reis
2004-02-05 16:56 ` Mark Mitchell
2004-02-05 17:00   ` Jan Hubicka
2004-02-05 17:03     ` Mark Mitchell
2004-02-21 13:45       ` Mark Mitchell
2004-02-21 13:45     ` Jan Hubicka
2004-02-21 13:45   ` Mark Mitchell
2004-02-21 13:45 ` Jan Hubicka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).