* 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
+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.
copy_rtx_and_substitute (constant, map, for_lhs)),
0);
}
+ else if (DEFERRED_CONSTANT_P (orig) && inlining)
+ notice_rtl_inlining_of_deferred_constant ();
return orig;
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
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++;
+}
\f
/* Used in the hash tables to avoid outputting the same constant
twice. Unlike 'struct constant_descriptor_tree', RTX constants