varasm.c (notice_rtl_inlining_of_deferred_constant): New function.

* varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
	* rtl.h: Prototype it.
	* integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
	when appropriate.

From-SVN: r66762
This commit is contained in:
Zack Weinberg 2003-05-13 16:23:02 +00:00 committed by Zack Weinberg
parent c707d0b01a
commit a2a6a79b5b
4 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2003-05-13 Zack Weinberg <zack@codesourcery.com>
* varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
* rtl.h: Prototype it.
* integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
when appropriate.
2003-05-13 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.

View File

@ -2215,6 +2215,8 @@ copy_rtx_and_substitute (orig, map, for_lhs)
copy_rtx_and_substitute (constant, map, for_lhs)),
0);
}
else if (DEFERRED_CONSTANT_P (orig) && inlining)
notice_rtl_inlining_of_deferred_constant ();
return orig;

View File

@ -1945,6 +1945,9 @@ extern rtx find_next_ref PARAMS ((rtx, rtx));
extern rtx output_constant_def PARAMS ((tree, int));
/* Called from integrate.c when a deferred constant is inlined. */
extern void notice_rtl_inlining_of_deferred_constant PARAMS ((void));
/* Define a default value for STORE_FLAG_VALUE. */
#ifndef STORE_FLAG_VALUE

View File

@ -2672,6 +2672,15 @@ output_constant_def_contents (symbol)
align);
}
/* A constant which was deferred in its original location has been
inserted by the RTL inliner into a different function. The
current function's deferred constant count must be incremented. */
void
notice_rtl_inlining_of_deferred_constant ()
{
n_deferred_constants++;
}
/* Used in the hash tables to avoid outputting the same constant
twice. Unlike 'struct constant_descriptor_tree', RTX constants