+2010-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
+ type if available.
+
2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/22224
* config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
(SUB_LINK_ENTRY32): New.
(SUB_LINK_ENTRY64): New.
- (LINK_SPEC): Replace entry point spec by
- SUB_LINK_ENTRY.
+ (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
* config/i386/mingw32 (SUB_LINK_ENTRY32): New.
(SUB_LINK_ENTRY64): New.
(SUB_LINK_ENTRY): New.
(estimate_num_insns): Special case more builtins.
2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
-
+
PR c/32207
* c-typeck.c (build_binary_op): Move forward check for comparison
pointer with null pointer constant and adjust the diagnostic message.
2010-04-26 Ira Rosen <irar@il.ibm.com>
- * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
- determine if the statement is vectorizable, and a macro to
- access it.
- * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
- Skip statements that can't be vectorized. If the analysis
- fails, mark the statement as unvectorizable if vectorizing
- basic block.
+ * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
+ determine if the statement is vectorizable, and a macro to access it.
+ * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
+ Skip statements that can't be vectorized. If the analysis fails,
+ mark the statement as unvectorizable if vectorizing basic block.
(vect_compute_data_refs_alignment): Likewise.
- (vect_verify_datarefs_alignment): Skip statements marked as
+ (vect_verify_datarefs_alignment): Skip statements marked as
unvectorizable. Add print.
- (vect_analyze_group_access): Skip statements that can't be
- vectorized. If the analysis fails, mark the statement as
+ (vect_analyze_group_access): Skip statements that can't be
+ vectorized. If the analysis fails, mark the statement as
unvectorizable if vectorizing basic block.
- (vect_analyze_data_ref_accesses, vect_analyze_data_refs):
- Likewise.
- * tree-vect-stmts.c (vectorizable_store): Fix the number of
+ (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
+ * tree-vect-stmts.c (vectorizable_store): Fix the number of
generated stmts for SLP.
(new_stmt_vec_info): Initialize the new field.
- * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
+ * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
statements marked as unvectorizable.
2010-04-25 Joseph Myers <joseph@codesourcery.com>
/* Write the extra assembler code needed to declare an object properly. */
+#ifdef HAVE_GAS_GNU_UNIQUE_OBJECT
+#define USE_GNU_UNIQUE_OBJECT 1
+#else
+#define USE_GNU_UNIQUE_OBJECT 0
+#endif
+
#undef ASM_DECLARE_OBJECT_NAME
-#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
- do { \
- HOST_WIDE_INT size; \
- ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
- size_directive_output = 0; \
- if (!flag_inhibit_size_directive \
- && DECL_SIZE (DECL) \
- && (size = int_size_in_bytes (TREE_TYPE (DECL))) > 0) \
- { \
- size_directive_output = 1; \
- ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \
- } \
- ASM_OUTPUT_LABEL(FILE, NAME); \
+#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
+ do { \
+ HOST_WIDE_INT size; \
+ \
+ /* For template static data member instantiations or \
+ inline fn local statics, use gnu_unique_object so that \
+ they will be combined even under RTLD_LOCAL. */ \
+ if (USE_GNU_UNIQUE_OBJECT \
+ && !DECL_ARTIFICIAL (DECL) && DECL_ONE_ONLY (DECL)) \
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "gnu_unique_object"); \
+ else \
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
+ \
+ size_directive_output = 0; \
+ if (!flag_inhibit_size_directive \
+ && (DECL) && DECL_SIZE (DECL)) \
+ { \
+ size_directive_output = 1; \
+ size = int_size_in_bytes (TREE_TYPE (DECL)); \
+ ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \
+ } \
+ \
+ ASM_OUTPUT_LABEL (FILE, NAME); \
} while (0)
/* Output the size directive for a decl in rest_of_decl_compilation