OSDN Git Service

3cc8d2b5ccc41c2644ce908e07b11a302eb1140f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2
3         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
4
5 2010-05-07  Richard Guenther  <rguenther@suse.de>
6
7         PR tree-optimization/44020
8         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
9         code when PRE is not yet initialized.
10
11 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12
13         * config/mips/dbxmdebug.h: Remove.
14         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
15
16 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
17
18         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
19         with null pointer and also warn about ordered comparison of zero with
20         pointer if -Wextra.
21
22 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
23
24         * graphite-blocking.c
25         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
26         * graphite-clast-to-gimple.c
27         (clast_to_gcc_expression): Same.
28         (precision_for_value): Same.
29         (precision_for_interval): Same.
30         (gcc_type_for_interval): Same.
31         (graphite_create_new_guard): Same.
32         (compute_bounds_for_level): Same.
33         (graphite_create_new_loop_guard): Same.
34         * graphite-interchange.c
35         (build_linearized_memory_access): Same.
36         (pdr_stride_in_loop): Same.
37         (memory_strides_in_loop_1): Same.
38         (memory_strides_in_loop): Same.
39         (extend_scattering): Same.
40         (psct_scattering_dim_for_loop_depth): Same.
41         (pbb_number_of_iterations): Same.
42         * graphite-poly.h
43         (debug_iteration_domains): Same.
44         * graphite-ppl.c
45         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
46         (ppl_set_inhomogeneous_gmp): Same.
47         (ppl_strip_loop): Same.
48         (ppl_lexico_compare_linear_expressions): Same.
49         (ppl_read_polyhedron_matrix): Same.
50         (ppl_max_for_le_pointset): Same.
51         * graphite-ppl.h
52         (ppl_read_polyhedron_matrix): Same.
53         (tree_int_to_gmp): Same.
54         (gmp_cst_to_tree): Same.
55         (ppl_set_inhomogeneous): Same.
56         (ppl_set_inhomogeneous_tree): Same.
57         (ppl_set_coef): Same.
58         (ppl_set_coef_tree): Same.
59         * graphite-sese-to-poly.c
60         (build_pbb_scattering_polyhedrons): Same.
61         (build_scop_scattering): Same.
62         (scan_tree_for_params_right_scev): Same.
63         (scan_tree_for_params): Same.
64         (find_params_in_bb): Same.
65         (find_scop_parameters): Same.
66         (add_upper_bounds_from_estimated_nit): Same.
67         (build_loop_iteration_domains): Same.
68         (add_condition_to_domain): Same.
69         (pdr_add_memory_accesses): Same.
70
71 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
72
73         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
74         CLooG's value_* macros to their respective mpz_* counterparts.
75         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
76         (graphite_create_new_loop_guard): Same.
77         * graphite-interchange.c (build_linearized_memory_access): Same.
78         (pdr_stride_in_loop): Same.
79         (memory_strides_in_loop_1): Same.
80         (1st_interchange_profitable_p): Same.
81         * graphite-poly.c (extend_scattering): Same.
82         (psct_scattering_dim_for_loop_depth): Same.
83         (pbb_number_of_iterations): Same.
84         (pbb_number_of_iterations_at_time): Same.
85         * graphite-poly.h (new_1st_loop): Same.
86         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
87         (oppose_constraint): Same.
88         (insert_constraint_into_matrix): Same.
89         (ppl_set_inhomogeneous_gmp): Same.
90         (ppl_set_coef_gmp): Same.
91         (ppl_strip_loop): Same.
92         (ppl_lexico_compare_linear_expressions): Same.
93         (ppl_max_for_le_pointset): Same.
94         (ppl_min_for_le_pointset): Same.
95         (ppl_build_realtion): Same.
96         * graphite-ppl.h (gmp_cst_to_tree): Same.
97         (ppl_set_inhomogeneous): Same.
98         (ppl_set_inhomogeneous_tree): Same.
99         (ppl_set_coef): Same.
100         (ppl_set_coef_tree): Same.
101         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
102         (build_scop_scattering): Same.
103         (add_value_to_dim): Same.
104         (scan_tree_for_params_right_scev): Same.
105         (scan_tree_for_params_int): Same.
106         (scan_tree_for_params): Same.
107         (find_params_in_bb): Same.
108         (find_scop_parameters): Same.
109         (add_upper_bounds_from_estimated_nit): Same.
110         (build_loop_iteration_domains): Same.
111         (create_linear_expr_from_tree): Same.
112         (add_condition_to_domain): Same.
113         (pdr_add_memory_accesses): Same.
114
115 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
116             Jason Merrill  <jason@redhat.com>
117
118         * c-common.c (c_common_reswords): Add nullptr.
119         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
120         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
121         (gen_type_die_with_usage): Likewise.
122         * dbxout.c (dbxout_type): Likewise.
123         * sdbout.c (plain_type_1): Likewise.
124
125 2010-05-06  Jason Merrill  <jason@redhat.com>
126
127         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
128         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
129         ret appropriately.
130         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
131
132         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
133         stripping WITH_SIZE_EXPR.
134         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
135         change.
136
137 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
138
139         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
140         list of obsolete configurations.
141         Disabled check for obsolete configurations.
142         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
143         Removed support for previous versions.
144         * config/mips/iris.h: Removed.
145         * config/mips/iris5.h: Removed.
146         * config/mips/iris6.h: Merged old iris.h contents.
147         (TARGET_IRIX): Removed.
148         (DRIVER_SELF_SPECS): Removed mabi=32.
149         (IDENT_ASM_OP): Removed undef.
150         (STARTFILE_SPEC): Removed mabi=32.
151         (ENDFILE_SPEC): Likewise.
152         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
153         (MACHINE_TYPE): Update for IRIX 6.5.
154         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
155         TARGET_IRIX by TARGET_IRIX6.
156         (mips_file_start): Likewise.
157         (mips_output_external): Remove IRIX 5/6 O32 support.
158         (mips_output_function_prologue): Likewise.
159         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
160         TARGET_IRIX6.
161         (TARGET_CPU_CPP_BUILTINS): Likewise.
162         (TARGET_IRIX): Removed.
163         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
164         (MULTILIB_DIRNAMES): Removed 32.
165         (MULTILIB_OSDIRNAMES): Removed ../lib.
166         * doc/install.texi (Prerequisites): Don't reference IRIX before
167         6.5.
168         (Specific, mips-sgi-irix5): Document removal.
169         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
170         removal.
171         Remove references to older IRIX 6 releases and the O32 ABI.
172
173 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
174
175         * gcc.dg/Wunused-var-8.c: Move to...
176         * c-c++-common/Wunused-var-6.c: ... here.  New test.
177
178         PR bootstrap/43994
179         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
180         instead of DF_REF_REAL_REG.
181
182 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
183
184         PR target/43888
185         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
186         handling to still return true for x64 targets.
187
188 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
189
190         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
191
192 2010-05-06  Jan Hubicka  <jh@suse.cz>
193
194         PR tree-optimization/43791
195         * ipa-inline.c (update_caller_keys): Remove bogus
196         disregard_inline_limits check.
197
198 2010-05-06  Michael Matz  <matz@suse.de>
199
200         PR tree-optimization/43984
201         * tree-ssa-pre.c (inserted_phi_names): Remove.
202         (inserted_exprs): Change to bitmap.
203         (create_expression_by_pieces): Set bits, don't append to vector.
204         (insert_into_preds_of_block): Don't handle inserted_phi_names.
205         (eliminate): Don't look at inserted_phi_names, remove deleted
206         insns from inserted_exprs.
207         (remove_dead_inserted_code): Adjust to use bitmaps instead of
208         vectors.
209         (init_pre, fini_pre): Allocate and free bitmaps.
210         (execute_pre): Insert insns on edges before elimination.
211
212 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
213
214         * tree.c (initializer_zerop): Handle STRING_CST.
215
216 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
217
218         PR 40989
219         * doc/invoke.texi (Wimplicit): Document as C only.
220         * opts.c (common_handle_option): Add argument kind.
221         (handle_option): Rename as read_cmdline_option. Factor out code to...
222         (handle_option): ... here. New.
223         (handle_options): Rename as read_cmdline_options.
224         (decode_options): Update call.
225         (set_option): Use option index instead of option pointer. Classify
226         diagnostics correctly.
227         (enable_warning_as_error): Call handle_option.
228         * opts.h (set_option): Update declaration.
229         (handle_option): Declare.
230         * langhooks.h (struct lang_hooks): Add argument kind to
231         handle_option.
232         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
233         * c-opts.c (set_Wimplicit): Delete.
234         (c_family_lang_mask): New static constant.
235         (c_common_handle_option): Add argument kind. Use handle_option
236         instead of set_Wimplicit.
237         (c_common_post_options): warn_implicit and warn_implicit_int
238         are disabled by default.
239         * c-common.c (warn_implicit): Do not define here.
240         * c-common.h (warn_implicit): Do not declare here.
241         (c_common_handle_option): Update declaration.
242         * lto-opts.c (lto_reissue_options): Update call to set_option.
243
244 2010-05-06  Richard Guenther  <rguenther@suse.de>
245
246         PR tree-optimization/43571
247         * domwalk.c (walk_dominator_tree): Walk the dominator
248         sons in more optimal order.
249
250 2010-05-06  Richard Guenther  <rguenther@suse.de>
251
252         PR tree-optimization/43934
253         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
254         (stmt_cost): Likewise.
255         (extract_true_false_args_from_phi): New helper.
256         (determine_max_movement): For PHI nodes verify we can hoist them
257         and compute their cost.
258         (determine_invariantness_stmt): Handle PHI nodes.
259         (move_computations_stmt): Likewise.  Hoist PHI nodes in
260         if-converted form using COND_EXPRs.
261         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
262         nodes.
263         (tree_ssa_lim): Likewise.
264         * tree-flow.h (tree_ssa_lim): Adjust prototype.
265         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
266
267 2010-05-06  Richard Guenther  <rguenther@suse.de>
268
269         PR tree-optimization/43987
270         * tree-ssa-structalias.c (could_have_pointers): For possibly
271         address-taken variables force pointers to be recorded.
272         (create_variable_info_for_1): Likewise.
273         (push_fields_onto_fieldstack): Pass in wheter all fields
274         must have pointers.
275         (find_func_aliases): Query types instead of vars whether
276         they contain pointers where appropriate.
277
278 2010-05-06  Jan Hubicka  <jh@suse.cz>
279
280         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
281         (record_reference, mark_address, mark_load, mark_store): Record
282         references.
283         (record_references_in_initializer): Update call of record_references.
284         (rebuild_cgraph_edges): Remove all references before rebuiding.
285         * cgraph.c (cgraph_create_node): Clear ref list.
286         (cgraph_remove_node): Remove references.
287         (dump_cgraph_node): Dump references.
288         (cgraph_clone_node): Clone references.
289         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
290         (struct cgraph_node, varpool_node): Add ref_lst.
291         * ipa-ref.c: New file.
292         * ipa-ref.h: New file.
293         * ipa-ref-inline.h: New file.
294         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
295         (referenced_from_other_partition_p): New function.
296         (lto_output_varpool_node): Take set arugment; call
297         referenced_from_other_partition.
298         (lto_output_ref): New.
299         (add_references): New.
300         (output_refs): New.
301         (output_cgraph): Compute boundary based on references;
302         output refs.
303         (output_varpool): Accept cgraph_node_set argument.
304         (input_ref): New.
305         (input_refs): New.
306         (input_cgraph): Call input_refs.
307         * lto-section-in.c (lto_section_name): Add refs.
308         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
309         (ipa-ref.o): New file.
310         * varpool.c (varpool_node): Clear ipa ref list.
311         (varpool_remove_node): Remove references.
312         (dump_varpool_node): Dump references.
313         (varpool_assemble_decl): Only compile finalized ones.
314         (varpool_extra_name_alias): Initialize ref list.
315         * lto-streamer.c (lto-get_section_name): Add .refs section.
316         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
317         (referenced_from_other_partition_p): Declared.
318
319 2010-05-06  Ira Rosen  <irar@il.ibm.com>
320
321         PR tree-optimization/43901
322         * tree-vect-stmts.c (vectorizable_call): Assert that vector
323         type is not NULL if it's transformation phase, and return
324         FALSE if it's analysis.
325         (vectorizable_conversion, vectorizable_operation, 
326         vectorizable_type_demotion, vectorizable_type_promotion):
327         Likewise.
328
329 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
330
331         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
332         Delete.
333         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
334         New define.
335         * config/mips/mips-protos.h
336         (mips_small_register_classes_for_mode_p): Delete prototype.
337
338 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
339
340         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
341         * config/arm/arm.c (multiple_operation_profitable_p,
342         compute_offset_order): New static functions.
343         (load_multiple_sequence, store_multiple_sequence): Use them.
344         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
345         memory offsets, not register numbers.
346         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
347
348 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
349
350         * stor-layout.c (pending_sizes): Change the type to
351         VEC(tree,gc) *.
352         (get_pending_sizes, put_pending_size, put_pending_sizes):
353         Update the uses of pending_sizes.
354         * c-decl.c (store_parm_decls): Likewise.
355         * c-tree.h (struct c_arg_info): Likewise.
356         * tree.h: Update the prototype for get_pending_sizes and
357         put_pending_sizes.
358
359 2010-05-05  Jason Merrill  <jason@redhat.com>
360
361         PR debug/43370
362         * c-common.c (handle_aligned_attribute): Respect
363         ATTR_FLAG_TYPE_IN_PLACE.
364
365         PR testsuite/43758
366         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
367         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
368         (TARGET_INITIALIZER): Use it.
369         * c-common.c (attribute_takes_identifier_p): Call it.
370         * c-common.h: Update prototype.
371         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
372         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
373
374 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
375
376         PR debug/43950
377         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
378         DW_ID_down_case for Fortran compilation units.
379
380 2010-05-05  Jan Hubicka  <jh@suse.cz>
381
382         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
383         handle aliases.
384
385 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
386
387         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
388         a variable-sized RESULT_DECL.
389
390 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
391
392         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
393
394 2010-05-05  Jason Merrill  <jason@redhat.com>
395
396         PR c++/43787
397         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
398         returns GS_OK.
399         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
400
401 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
402             Jakub Jelinek  <jakub@redhat.com>
403
404         PR debug/43478
405         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
406         (dead_debug_init, dead_debug_finish): New functions.
407         (dead_debug_add, dead_debug_insert_before): Likewise.
408         (df_note_bb_compute): Initialize a dead_debug object, add dead
409         debug uses to it, insert debug bind insns before death insns,
410         reset debug insns that refer to pending uses at the end.
411         * rtl.h (make_debug_expr_from_rtl): New prototype.
412         * varasm.c (make_debug_expr_from_rtl): New function.
413
414 2010-05-05  Jan Hubicka  <jh@suse.cz>
415
416         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
417         (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
418         lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
419         lto_varpool_encoder_encode_initializer_p,
420         lto_set_varpool_encoder_encode_initializer): New functions.
421         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
422         call output_varpool.
423         (input_varpool_node): Do not always set analyzed.
424         (input_cgraph_1): Return vector of cgraph nodes.
425         (input_varpool_1): Return vector of varpools.
426         (input_cgraph): Free the vectors.
427         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
428         output only initializers needed.
429         (lto_output): Only call output_cgraph.
430         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
431         * lto-section-out.c (lto_new_out_decl_state): Initialize
432         state->varpool_node_encoder.
433         * lto-streamer.h (lto_varpool_encoder_d): New.
434         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.     
435         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
436         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
437         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
438         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
439         Declare.
440         (output_varpool, input_varpool): Remove declarations.
441
442 2010-05-05  Jan Hubicka  <jh@suse.cz>
443
444         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
445         with body can prevail.
446
447 2010-05-05  Jan Hubicka  <jh@suse.cz>
448
449         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
450         size.
451
452 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
453
454         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
455         dependencies.
456
457         * gengtype.h (erro_at_line): Constify pos argument.
458
459         * gengtype.c: Include hashtab.h.
460         (enum gc_used): Document GC_MAYBE_POINTED_TO.
461         (error_at_line): Constify pos argument.
462         (do_typedef): Initialize p->opt field.
463         (get_file_gtfilename): Fix comment typo.
464         (struct walk_type_data): Constify line field.
465         (get_output_file_for_structure): New function.
466         (write_local_func_for_structure): Constify orig_s argument.
467         Use get_output_file_for_structure.
468         (write_func_for_structure): Use get_output_file_for_structure.
469         (INDENT): New define.
470         (dump_pair, dump_type, dump_type_list, dump_typekind)
471         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
472         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
473         functions.
474         (seen_types): New variable.
475         (main): New variable do_dump.  Process "-d" command line option.
476         Call dump_everything if dump requested.
477
478 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
479
480         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
481         in a temporary instead of invoking the macro multiple times.
482         (track_expr_p): Likewise.
483
484 2010-05-04  Neil Vachharajani <nvachhar@google.com>
485
486         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
487         per new semantics.
488         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
489         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
490         conditions for printing notes.
491         * common.opt (-Wcoverage-mismatch): Allow negative, default to
492         true, update documentation.
493         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
494
495 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
496
497         PR c/43981
498         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
499         on dimen.
500
501 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
502
503         PR target/43799
504         * config/i386/i386.md (sse_prologue_save): Add clobber CC
505         register.
506         (*sse_prologue_save_insn1): Likewise.
507         (SSE prologue save splitter): Likewise.
508
509 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
510
511         * tree.c (free_lang_data_in_one_sizepos): New inline function.
512         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
513         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
514         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
515         all decls.  Call it on DECL_FIELD_OFFSET of fields.
516         (find_decls_types_r): Follow DECL_VALUE_EXPR.
517         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
518
519 2010-05-04  Martin Jambor  <mjambor@suse.cz>
520
521         * tree-sra.c (build_access_from_expr_1): The first parameter type
522         changed to simple tree.
523         (build_access_from_expr): Likewise, gsi parameter was eliminated.
524         (scan_assign_result): Renamed to assignment_mod_result, enum elements
525         renamed as well.
526         (build_accesses_from_assign): Removed all parameters except for a
527         simple gimple statement.  Now returns a simple bool.
528         (scan_function): All non-analysis parts moved to separate functions
529         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
530         parameters and updated both callers.
531         (sra_modify_expr): Removed parameter data.
532         (sra_modify_function_body): New function.
533         (perform_intra_sra): Call sra_modify_function_body to modify the
534         function body.
535         (replace_removed_params_ssa_names): Parameter data changed into
536         adjustments vector.
537         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
538         changed the parameter dont_convert to convert with the opposite
539         meaning.
540         (sra_ipa_modify_assign): Parameter data changed into adjustments
541         vector, return value changed to bool.
542         (ipa_sra_modify_function_body): New function.
543         (sra_ipa_reset_debug_stmts): Updated a comment.
544         (modify_function): Use ipa_sra_modify_function_body to modify function
545         body.
546
547 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
548
549         PR middle-end/43671
550         * alias.c (true_dependence): Handle the same VALUE in x and mem.
551         (canon_true_dependence): Likewise.
552         (write_dependence_p): Likewise.
553
554 2010-05-04  Jan Hubicka  <jh@suse.cz>
555
556         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
557         * cgraphbuild.c: Include ipa-utils.h
558         (record_reference_ctx): New struct.
559         (record_reference): Simplify to work on initializers; not statements.
560         (mark_address, mark_load, mark_store): New.
561         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
562         walk PHI nodes too.
563         (record_references_in_initializer): Update use of record_reference.
564         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
565         walk PHI nodes too.
566
567 2010-05-04  Jan Hubicka  <jh@suse.cz>
568
569         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
570         node will be removed anyway.
571         (lto_varpool_replace_node): Allow also unanalyzed nodes;
572         relink aliases of node into prevailing node.
573         * varpool.c (varpool_remove_node): Remove aliases properly;
574         when removing node, remove all its aliases too; remove DECL_INITIAL
575         of removed node; ggc_free the varpool node.
576
577 2010-05-04  Richard Guenther  <rguenther@suse.de>
578
579         PR tree-optimization/43879
580         * tree-ssa-structalias.c (alias_get_name): Use
581         DECL_ASSEMBLER_NAME if available.
582         (create_function_info_for): Return the varinfo node.
583         (ipa_pta_execute): Associate same-body aliases and extra names
584         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
585
586 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
587
588         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
589         static.
590
591 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
592
593         PR bootstrap/43964
594         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
595         only if HONOR_REG_ALLOC_ORDER is not defined.
596
597 2010-05-04  Richard Guenther  <rguenther@suse.de>
598
599         PR tree-optimization/43949
600         * tree-vrp.c (extract_range_from_binary_expr): Only handle
601         TRUNC_MOD_EXPR.
602
603 2010-04-26  Jason Merrill  <jason@redhat.com>
604
605         * c.opt (-fstrict-enums): New.
606         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
607
608 2010-05-03  David Ung <davidu@mips.com>
609             James E. Wilson  <wilson@codesourcery.com>
610
611         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
612         emit the trap instruction before the divide for TUNE_74K.
613
614 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
615
616         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
617         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
618         based on the above, for new target hook.
619
620         * hooks.c (hook_bool_mode_true): New generic hook.
621         * hooks.h (hook_bool_mode_true): Add prototype.
622
623         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
624         target hook.
625         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
626         target hook, set to hook_bool_mode_false.
627         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
628         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
629         with targetm.small_register_classes_for_mode_p.
630         (find_reusable_reload): Likewise.
631         (combine_reloads): Likewise.
632         * reload1.c (reload_as_needed): Likewise.
633         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
634         * ifcvt.c (noce_process_if_block, check_cond_move_block,
635         dead_or_predicable): Likewise.
636         * regmove.c (optimize_reg_copy_1): Likewise.
637         * calls.c (prepare_call_address): Likewise.
638         (precompute_register_parameters): Likewise.
639
640         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
641         hook definition.
642         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
643         implementation of the hook that considers all register classes
644         small except for SH64.
645         (sh_override_options): Use the new hook.
646         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
647         Add prototype.
648
649         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
650         hook definition.
651         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
652         implementation of the hook that considers all register classes
653         small for THUMB1.
654         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
655         Add prototype.
656
657         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
658         hook definition.
659         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
660         implementation of the hook that considers all register classes
661         small for MIPS16.
662         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
663         Add prototype.
664
665         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
666         hook definition.
667         * config/m32c/m32c.h: Likewise.
668         * config/pdp11/pdp11.h: Likewise.
669         * config/avr/avr.h: Likewise.
670         * config/xtensa/xtensa.h: Likewise.
671         * config/m68hc11/m68hc11.h: Likewise.
672         * config/mn10300/mn10300.h: Likewise.
673         * config/mcore/mcore.h: Likewise.
674         * config/h8300/h8300.h: Likewise.
675         * config/bfin/bfin.h: Likewise.
676
677         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
678         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
679
680 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
681
682         * double-int.h (tree_to_double_int): Remove macro.
683         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
684         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
685         (tree_to_double_int): New function.
686         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
687         Move ...
688         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
689
690 2010-05-03  Richard Guenther  <rguenther@suse.de>
691
692         PR tree-optimization/43971
693         * tree-ssa-structalias.c (get_constraint_for_1): Fix
694         constraints in the !flag_delete_null_pointer_checks case.
695
696 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
697
698         PR debug/43972
699         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
700         result mode matches original rtl mode.
701
702 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
703
704         PR target/43888
705         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
706
707 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
708
709         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
710         when processing flag options.
711
712 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
713
714         * gcov-iov.c (main): Change format string placeholder
715         from %#08x to 0x%08x.
716         * genchecksum.c (dosum): Change format string placeholder
717         from %#02x to 0x%02x.
718
719 2010-05-02  Richard Guenther  <rguenther@suse.de>
720
721         PR tree-optimization/43879
722         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
723
724 2010-05-02  Bruno Haible  <bruno@clisp.org>
725
726         * doc/extend.texi (Function Attributes): Fix a typo.
727
728 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
729
730         Revert:
731         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
732         placeholder from 0x%x to %#x.
733         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
734         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
735         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
736         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
737         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
738         * config/i386/i386.c (ix86_target_string): Ditto.
739         * config/i386/i386.c (output_pic_addr_const): Ditto.
740         (print_operand): Ditto.
741
742 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
743
744         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
745         placeholder from 0x%x to %#x.
746         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
747         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
748         (ASM_OUTPUT_DEBUG_DATA): Ditto.
749         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
750         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
751         * optc-gen.awk: Ditto.
752         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
753         (HOST_WIDE_INT_PRINT_HEX): Ditto.
754         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
755         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
756
757 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
758
759         * target.h (struct calls): Add function_value_regno_p field.
760         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
761         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
762         * targhooks.c (default_function_value_regno_p): New function.
763         * targhooks.h (default_function_value_regno_p): Declare function.
764         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
765         * builtins.c. (apply_result_size): (Ditto.).
766         * combine.c. (likely_spilled_retval_p): (Ditto.).
767         * mode-switching.c. Include 'target.h'.
768         (create_pre_exit): Use function_value_regno_p hook.
769         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
770         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
771         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
772
773         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
774         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
775         (ix86_function_value_regno_p): Declare as static, change argument
776         type to const unsigned int.
777         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
778
779 2010-05-01  Richard Guenther  <rguenther@suse.de>
780
781         PR tree-optimization/43949
782         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
783         types.
784         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
785
786 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
787
788         * rtl.h (CONST_DOUBLE_P): Define.
789         (rtx_to_double_int): Declare.
790         * emit-rtl.c (rtx_to_double_int): New function.
791         * dwarf2out.c (insert_double): New function.
792         (loc_descriptor, add_const_value_attribute): Clean up, use
793         rtx_to_double_int and insert_double functions.
794
795 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
796
797         * doc/extend.texi (Inline): Add missing return keyword to examples.
798         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
799         "command-line".
800
801 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
802
803         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
804         the variable part of the offset as well.  Use highest_pow2_factor for
805         all alignment checks.
806
807 2010-04-30  Richard Guenther  <rguenther@suse.de>
808
809         PR tree-optimization/43879
810         * tree-ssa-structalias.c (type_could_have_pointers): Functions
811         can have pointers.
812
813 2010-04-30  Jan Hubicka  <jh@suse.cz>
814
815         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
816         varpool.
817         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
818
819 2010-04-30  Jan Hubicka  <jh@suse.cz>
820
821         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
822         New.
823         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
824         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
825         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
826         cgraph_node_set_needs_ltrans_p): Remove.
827
828 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
829
830         * sdbout.c: Include vec.h, do not include varray.h.
831         (deferred_global_decls, sdbout_global_decl,
832         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
833         * toplev.c: Do not include varray.h.
834         (dump_memory_report): Do not dump VARRAY statistics.
835         * gengtype.c (open_base_file): Ignore varray.h.
836         * Makefile.in: Update for abovementioned changes.
837         Remove all traces of varray.c and varray.h.
838         * varray.c: Remove file.
839         * varray.h: Remove file.
840
841 2010-04-30  Jan Hubicka  <jh@suse.cz>
842
843         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
844         references.
845
846 2010-04-30  Jan Hubicka  <jh@suse.cz>
847
848         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
849         needed.
850
851 2010-04-30  Richard Guenther  <rguenther@suse.de>
852
853         * tree-ssa-structalias.c (get_constraint_for_1): Generate
854         constraints for CONSTRUCTOR.
855
856 2010-04-30  Richard Guenther  <rguenther@suse.de>
857
858         PR lto/43946
859         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
860         first after all lowering passes.
861
862 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
863
864         * toplev.c: Include varray.h for statistics dumping.
865         * tree.h: Do not declare varray_head_tag.
866         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
867         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
868         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
869         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
870         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
871         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
872         c-common.c, c-common.h, reg-stack.c, basic-block.h,
873         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
874         include varray.h.
875         * Makefile.in: Update for abovementioned changes.
876
877 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
878
879         PR debug/43942
880         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
881
882 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
883
884         * config/picochip/picochip.c (picochip_legitimize_address): Define.
885         Use this function to do machine-specific conversion.
886         (picochip_legitimize_reload_address): Likewise.
887         (picochip_legitimate_address_p): Check valid base register only if
888         strict.
889         (picochip_check_conditional_copy): Check for modw only if opnd is
890         register.
891         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
892         to call the function in c.
893         * config/picochip/picochip-protos.h
894         (picochip_legitimize_reload_address): Define.
895         * config/picochip/picochip.md (supported_compare1): Define.
896
897 2010-04-30  Jan Hubicka  <jh@suse.cz>
898
899         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
900         (cgraph_global_info): Remove inlined.
901         (LTO_cgraph_tag_names): Remove.
902         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
903         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
904         simplify cgraph tags and document.
905         (lto_output_node): Use only LTO_cgraph_unavail_node and
906         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
907         for_functions_valid, global info, process and output flags.
908         (input_overwrite_node): Initialize estimated stack size and
909         estimated growth.  Do not read flags we no longer store.
910         (input_node): Likewise do not read info no longer stored.
911         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
912         flag.
913
914 2010-04-30  Richard Guenther  <rguenther@suse.de>
915
916         PR tree-optimization/43879
917         * tree-ssa-structalias.c (get_constraint_for_1): Properly
918         handle non-zero initializers.
919
920 2010-04-30  Richard Guenther  <rguenther@suse.de>
921
922         * builtins.c (fold_builtin_1): Delete free (0).
923
924 2010-04-29  Jan Hubicka  <jh@suse.cz>
925
926         * gengtype.c (open_base_files): Add lto-streamer.h
927         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
928         (pass_ipa_cp): GGC collect.
929         * toplev. (compile_file): Do not output symbols.
930         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
931         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
932         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
933         * lto-section-in.c: Include ggc.h
934         (lto_new_in_decl_state): Alloc in GGC.
935         (lto_delete_in_decl_state): Likewise.
936         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
937         Collect.
938
939 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
940
941         PR target/42895
942         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
943         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
944         (HONOR_REG_ALLOC_ORDER): Describe new macro.
945         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
946         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
947         account only if HONOR_REG_ALLOC_ORDER is not defined.
948         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
949         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
950
951 2010-04-29  Jon Grant  <04@jguk.org>
952
953         * collect2.c (vflag): Change type from int to bool.
954         (debug): Likewise.
955         (helpflag): New global bool.
956         (main): Set vflag and debug with boolean, not integer truth values.
957         Accept new "--help" option and output usage text if found.
958         * collect2.h (vflag): Update prototype.
959         (debug): Likewise.
960
961 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
962
963         PR bootstrap/43936
964         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
965
966 2010-04-29  Richard Guenther  <rguenther@suse.de>
967
968         PR bootstrap/43935
969         * plugin.h (invoke_plugin_callbacks): Annotate arguments
970         with ATTRIBUTE_UNUSED.
971
972 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
973
974         PR target/43921
975         * config/i386/i386.c (get_some_local_dynamic_name): Replace
976         INSN_P with NONDEBUG_INSN_P.
977         (distance_non_agu_define): Likewise.
978         (distance_agu_use): Likewise.
979
980 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
981
982         From Dominique d'Humieres <dominiq@lps.ens.fr>
983         PR bootstrap/43858
984         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
985         test_set.
986
987 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
988
989         * plugin.h (invoke_plugin_callbacks): New inline function.
990         * plugin.c (flag_plugin_added): New global flag.
991         (add_new_plugin): Initialize above flag.
992         (invoke_plugin_callbacks): Rename to ...
993         (invoke_plugin_callbacks_full): ... this.
994
995 2010-04-28  Jan Hubicka  <jh@suse.cz>
996
997         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
998         (lto_varpool_replace_node): New.
999         (lto_symtab_resolve_symbols): Resolve varpool nodes.
1000         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
1001         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
1002         * cgraph.h (varpool_node_ptr): New type.
1003         (varpool_node_ptr): New vector.
1004         (varpool_node_set_def): New structure.
1005         (varpool_node_set): New type.
1006         (varpool_node_set): New vector.
1007         (varpool_node_set_element_def): New structure.
1008         (varpool_node_set_element, const_varpool_node_set_element): New types.
1009         (varpool_node_set_iterator): New type.
1010         (varpool_node): Add prev pointers, add used_from_other_partition,
1011         in_other_partition.
1012         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
1013         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
1014         varpool_get_node, varpool_remove_node): Declare.
1015         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
1016         varpool_node_set_size): New inlines.
1017         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
1018         * tree-pass.h (varpool_node_set_def): Forward declare.
1019         (ipa_opt_pass_d): Summary writting takes vnode sets too.
1020         (ipa_write_optimization_summaries): Update prototype.
1021         * ipa-cp.c (ipcp_write_summary): Update.
1022         * ipa-reference.c (ipa_reference_write_summary): Update.
1023         * lto-cgraph.c (lto_output_varpool_node): New static function.
1024         (output_varpool): New function.
1025         (input_varpool_node): New static function.
1026         (input_varpool_1): New function.
1027         (input_cgraph): Input varpool.
1028         * ipa-pure-const.c (pure_const_write_summary): Update.
1029         * lto-streamer-out.c (lto_output): Update, output varpool too.
1030         (write_global_stream): Kill WPA hack.
1031         (produce_asm_for_decls): Update.
1032         (output_alias_pair_p): Handle variables.
1033         (output_unreferenced_globals): Output only needed partition of varpool.
1034         * ipa-inline.c (inline_write_summary): Update.
1035         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
1036         cgraph.
1037         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
1038         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
1039         varpool_node_set_new, varpool_node_set_add,
1040         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
1041         debug_varpool_node_set): New functions.
1042         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
1043         (execute_one_pass): Process new decls too.
1044         (ipa_write_summaries_2): Pass around vsets.
1045         (ipa_write_summaries_1): Likewise.
1046         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
1047         to add.
1048         (ipa_write_optimization_summaries_1): Pass around vsets.
1049         (ipa_write_optimization_summaries): Likewise.
1050         * varpool.c (varpool_get_node): New.
1051         (varpool_node): Update doubly linked lists.
1052         (varpool_remove_node): New.
1053         (dump_varpool_node): More dumping.
1054         (varpool_enqueue_needed_node): Update doubly linked lists.
1055         (decide_is_variable_needed): Kill ltrans hack.
1056         (varpool_finalize_decl): Kill lto hack.
1057         (varpool_assemble_decl): Skip decls in other partitions.
1058         (varpool_assemble_pending_decls): Update doubly linkes lists.
1059         (varpool_empty_needed_queue): Likewise.
1060         (varpool_extra_name_alias): Likewise.
1061         * lto-streamer.c (lto_get_section_name): Add vars section.
1062         * lto-streamer.h (lto_section_type): Update.
1063         (output_varpool, input_varpool): Declare.
1064
1065 2010-04-28  Mike Stump  <mikestump@comcast.net>
1066
1067         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
1068
1069 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1070
1071         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
1072         record or union type with RECORD_OR_UNION_TYPE_P predicate.
1073         (lto_input_ts_type_tree_pointers): Likewise.
1074         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
1075         (lto_output_ts_type_tree_pointers): Likewise.
1076
1077 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1078
1079         Uniquization of constants at the Tree level
1080         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
1081         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
1082         bit to the end.
1083         (tree_output_constant_def): Declare.
1084         * gimplify.c (gimplify_init_constructor): When using block copy, first
1085         uniquize the constant constructor on the RHS.
1086         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
1087         DECL_IN_CONSTANT_POOL flag.
1088         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
1089         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
1090         constant pool.
1091         (assemble_variable): Deal with symbols belonging to the tree constant
1092         pool.
1093         (get_constant_section): Add ALIGN parameter and simplify.
1094         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
1095         (assemble_constant_contents): Use the expression of the VAR_DECL.
1096         (output_constant_def_contents): Use the alignment of the VAR_DECL.
1097         (tree_output_constant_def): New global function.
1098         (mark_constant): Use the expression of the VAR_DECL.
1099         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
1100         its expression.
1101         (output_object_block): Likewise and assemble the expression.
1102
1103 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1104
1105         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
1106         hash_tree, eq_tree): New tree hash table.
1107         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
1108         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
1109         lto_orig_address_remove): Reimplement.
1110
1111 2010-04-28  Xinliang David Li  <davidxl@google.com>
1112
1113         PR c/42643
1114         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
1115         (compute_uninit_opnds_pos): New function.
1116         (is_non_loop_exit_postdominating): New function.
1117         (compute_control_dep_chain): New function.
1118         (find_pdom): New function.
1119         (convert_control_dep_chain_into_preds): New function.
1120         (find_predicates): New function.
1121         (find_control_equiv_block): New function.
1122         (collect_phi_def_edges): New function.
1123         (find_def_preds): New function.
1124         (find_dom): New function.
1125         (dump_predicates): New function.
1126         (get_cmp_code): New function.
1127         (is_value_included_in): New function.
1128         (find_matching_predicate_in_rest_chains): New function.
1129         (use_pred_not_overlap_with_undef_path_pred): New function.
1130         (is_use_properly_guarded): New function.
1131         (normalize_cond_1): New function.
1132         (is_and_or_or): New function.
1133         (normalize_cond): New function.
1134         (is_gcond_subset_of): New function.
1135         (is_subset_of_any): New function.
1136         (is_or_set_subset_of): New function.
1137         (is_and_set_subset_of): New function.
1138         (is_norm_cond_subset_of): New function.
1139         (is_pred_expr_subset_of): New function.
1140         (is_pred_chain_subset_of): New function.
1141         (is_included_in): New function.
1142         (is_superset_of): New function.
1143         (find_uninit_use): New function.
1144         (warn_uninitialized_phi): New function.
1145         (compute_possibly_undefined_names): New function.
1146         (ssa_undefined_value_p): New function.
1147         (execute_late_warn_uninitialized): New function.
1148         * tree-ssa.c (ssa_undefined_value_p): Removed.
1149         (warn_uninit): Changed to extern.
1150         (warn_uninitialized_phi): Removed.
1151         (warn_uninitialized_vars): Changed to extern.
1152         (execute_late_warn_uninitialized): Removed
1153         * tree-flow.h: Add new prototypes.
1154         * timevar.def: Add new time variable.
1155         * Makefile.in: Add new build file.
1156
1157 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
1158
1159         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1160         type if available.
1161
1162 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1163
1164         PR target/22224
1165         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
1166
1167 2010-04-28  Martin Jambor  <mjambor@suse.cz>
1168
1169         * cgraph.h (struct cgraph_node): New field indirect_calls.
1170         (struct cgraph_indirect_call_info): New type.
1171         (struct cgraph_edge): Removed field indirect_call. New fields
1172         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1173         (cgraph_create_indirect_edge): Declare.
1174         (cgraph_make_edge_direct): Likewise.
1175         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1176         * ipa-prop.h (struct ipa_param_call_note): Removed.
1177         (struct ipa_node_params): Removed field param_calls.
1178         (ipa_create_all_structures_for_iinln): Declare.
1179         * cgraph.c: Described indirect edges and uids in initial comment.
1180         (cgraph_add_edge_to_call_site_hash): New function.
1181         (cgraph_edge): Search also among the indirect edges, use
1182         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1183         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1184         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1185         site hash.
1186         (initialize_inline_failed): Assign a reason to indirect edges.
1187         (cgraph_create_edge_1): New function.
1188         (cgraph_create_edge): Moved some functionality to
1189         cgraph_create_edge_1.
1190         (cgraph_create_indirect_edge): New function.
1191         (cgraph_edge_remove_callee): Add an assert checking for
1192         non-indirectness.
1193         (cgraph_edge_remove_caller): Special-case indirect edges.
1194         (cgraph_remove_edge): Likewise.
1195         (cgraph_set_edge_callee): New function.
1196         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1197         (cgraph_make_edge_direct): New function.
1198         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1199         the declaration of the call statement matches.
1200         (cgraph_node_remove_callees): Special-case indirect edges.
1201         (cgraph_clone_edge): Likewise.
1202         (cgraph_clone_node): Clone also the indirect edges.
1203         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1204         indirect_call, dump count of indirect_calls edges.
1205         * ipa-prop.c (iinlining_processed_edges): New variable.
1206         (ipa_note_param_call): Create indirect edges instead of
1207         creating notes.  New parameter node.
1208         (ipa_analyze_call_uses): New parameter node, pass it on to
1209         ipa_note_param_call.
1210         (ipa_analyze_stmt_uses): Likewise.
1211         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1212         (print_edge_addition_message): Work on edges rather than on notes.
1213         (update_call_notes_after_inlining): Likewise, renamed to
1214         update_indirect_edges_after_inlining.
1215         (ipa_create_all_structures_for_iinln): New function.
1216         (ipa_free_node_params_substructures): Do not free notes.
1217         (ipa_edge_duplication_hook): Propagate bits within
1218         iinlining_processed_edges bitmap.
1219         (ipa_node_duplication_hook): Do not duplicate notes.
1220         (free_all_ipa_structures_after_ipa_cp): Renamed to
1221         ipa_free_all_structures_after_ipa_cp.
1222         (free_all_ipa_structures_after_iinln): Renamed to
1223         ipa_free_all_structures_after_iinln.g
1224         (ipa_write_param_call_note): Removed.
1225         (ipa_read_param_call_note): Removed.
1226         (ipa_write_indirect_edge_info): New function.
1227         (ipa_read_indirect_edge_info): Likewise.
1228         (ipa_write_node_info): Do not stream notes, do stream information
1229         in indirect edges.
1230         (ipa_read_node_info): Likewise.
1231         (lto_ipa_fixup_call_notes): Removed.
1232         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1233         * ipa-inline.c (pass_ipa_inline): Likewise.
1234         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1235         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1236         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1237         is_gimple_call.
1238         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1239         edges.
1240         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1241         (output_cgraph): Stream also indirect edges.
1242         (lto_output_edge): Added capability to stream indirect edges.
1243         (input_edge): Likewise.
1244         (input_cgraph_1): Likewise.
1245         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1246         of indirect edges.
1247
1248 2010-04-28  Richard Guenther  <rguenther@suse.de>
1249
1250         PR tree-optimization/43879
1251         PR tree-optimization/43909
1252         * tree-ssa-structalias.c (struct variable_info): Add
1253         only_restrict_pointers flag.
1254         (new_var_info): Initialize it.  Increment stats.total_vars here.
1255         (create_function_info_for): Do not increment stats.total_vars
1256         here.
1257         (get_function_part_constraint): Fix build with C++.
1258         (insert_into_field_list): Remove.
1259         (push_fields_onto_fieldstack): Properly merge fields.
1260         (create_variable_info_for): Split and simplify.
1261         (create_variable_info_for_1): New piece.
1262         (intra_create_variable_infos): Properly make restrict constraints
1263         from parameters.
1264
1265 2010-04-28  Richard Guenther  <rguenther@suse.de>
1266
1267         PR c++/43880
1268         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1269
1270 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1271             Jan Hubicka <hubicka@ucw.cz>
1272
1273         * doc/invoke.texi (-Wsuggest-attribute=const,
1274         -Wsuggest-attribute=pure): Document.
1275         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1276         (function_always_visible_to_compiler_p,
1277         suggest_attribute, warn_function_pure, warn_function_const):
1278         New functions.
1279         (check_call): Improve debug info.
1280         (analyze_function): Do not check availability.
1281         (add_new_function): Check availability.
1282         (propagate): Output warnings.
1283         (skip_function_for_local_pure_const): New function.
1284         (local_pure_const): Use it; output warnings.
1285         * common.opt (Wsuggest-attribute=const,
1286         Wsuggest-attribute=pure): New.
1287
1288 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1289
1290         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1291         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1292         or DW_CFA_def_cfa_offset{,_sf}.
1293
1294 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1295
1296         * tree.h: Fix truncated long macros.
1297
1298 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1299
1300         * collect2.c (TARGET_64BIT): Redefine to target's default.
1301         * tlink.c: Likewise.
1302         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1303         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1304         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1305         for underscoring __USER_LABEL_PREFIX__.
1306         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1307         (SUB_LINK_ENTRY32): New.
1308         (SUB_LINK_ENTRY64): New.
1309         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1310         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1311         (SUB_LINK_ENTRY64): New.
1312         (SUB_LINK_ENTRY): New.
1313         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1314         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1315         x64 target is choosen.
1316         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1317         * configure: Regenerated.
1318         * configure.ac (leading-mingw64-underscores): Option added.
1319
1320 2010-04-27  Jan Hubicka  <jh@suse.cz>
1321
1322         * doc/invoke.texi (-fipa-profile): Document.
1323         * opts.c (decode_options): Enable ipa-profile at -O1.
1324         * timevar.def (TV_IPA_PROFILE): Define.
1325         * common.opt (fipa-profile): Add.
1326         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1327         flag for clones.
1328         (cgraph_propagate_frequency): Handle only local ones.
1329         * tree-pass.h (pass_ipa_profile): Declare.
1330         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1331         (pass_ipa_profile): Use TV_IPA_PROFILE.
1332         * ipa.c (ipa_profile): New function.
1333         (gate_ipa_profile): Likewise.
1334         (pass_ipa_profile): New global variable.
1335         * passes.c (pass_ipa_profile): New.
1336
1337 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1338
1339         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1340
1341 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1342
1343         PR middle-end/43812
1344         * ipa.c (dissolve_same_comdat_group_list): New function.
1345         (function_and_variable_visibility): Call
1346         dissolve_same_comdat_group_list when comdat group contains external or
1347         newly local nodes.
1348         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1349         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1350
1351 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1352
1353         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1354         (const_hash_1) <VECTOR_CST>: New case.
1355         (compare_constant) <VECTOR_CST>: Likewise.
1356         <ADDR_EXPR>: Deal with LABEL_REFs.
1357         (copy_constant) <VECTOR_CST>: New case.
1358
1359 2010-04-27  Jan Hubicka  <jh@suse.cz>
1360
1361         * cgraph.c (cgraph_propagate_frequency): New function.
1362         * cgraph.h (cgraph_propagate_frequency): Declare.
1363         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1364         cgraph_propagate_frequency.
1365
1366 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1367
1368         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1369
1370 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1371
1372         PR target/40657
1373         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1374         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1375         here to determine which regs to push and how much stack to reserve.
1376
1377 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1378
1379         * doc/gimple.texi (gimple_statement_with_ops): Remove
1380         addresses_taken field.
1381         (gimple_statement_with_memory_ops): Likewise.
1382
1383 2010-04-27  Jan Hubicka  <jh@suse.cz>
1384
1385         * tree-inline.c (eni_inlining_weights): Remove.
1386         (estimate_num_insns): Special case more builtins.
1387
1388 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1389
1390         PR c/32207
1391         * c-typeck.c (build_binary_op): Move forward check for comparison
1392         pointer with null pointer constant and adjust the diagnostic message.
1393
1394 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1395
1396         PR lto/42776
1397         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1398         binutils supports extended .section directive needed by LTO, or
1399         warn if older binutils found.
1400         (LTO_BINARY_READER): New AC_SUBST'd variable.
1401         (LTO_USE_LIBELF): Likewise.
1402         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1403         variable.
1404         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1405         (LTO_USE_LIBELF): Likewise.
1406         * configure: Regenerate.
1407
1408         * collect2.c (is_elf): Rename from this ...
1409         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1410          object files in addition to ELF-formatted ones.
1411         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1412         symbol to be prefixed or not by an extra underscore.
1413
1414         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1415         * config/i386/winnt.c: Also #include lto-streamer.h
1416         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1417         LTO named sections.
1418         (i386_pe_asm_output_aligned_decl_common): Add comment.
1419         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1420
1421 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1422
1423         PR target/43889
1424         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1425         Add missing earlyclobber for second alternative.
1426
1427 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1428
1429         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1430         bits for artificial defs at the top of the block.
1431         * fwprop.c (single_def_use_enter_block): Don't call it.
1432
1433 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1434
1435         PR 43715
1436         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1437         instead of "$gcc_cv_objdump -T".
1438         Use "-undefined dynamic_lookup" on darwin.
1439         * gcc/configure: Regenerate.
1440
1441 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1442
1443         PR c/43893
1444         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1445
1446 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1447
1448         * c-parser.c (struct c_token): Move location field up.
1449         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1450         (struct c_declspecs): Convert typespec_word, storage_class, and
1451         default_int_p into bitfields.
1452         (struct c_declarator): Move loc field up.
1453
1454 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1455
1456         * cfgloop.h (struct loop): Move can_be_parallel field up.
1457         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1458         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1459         down.
1460         (struct iv_cand): Convert pos field into a bitfield.
1461         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1462         field up.
1463         (struct _stmt_vec_info): Shuffle fields for better packing.
1464
1465 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1466
1467         * varasm.c (IN_NAMED_SECTION): Remove guard.
1468         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1469         (IN_NAMED_SECTION_P): ...this.
1470         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1471         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1472
1473 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1474
1475         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1476         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1477         of shadowing it.  Fix comments.
1478
1479 2010-04-26  Jan Hubicka  <jh@suse.cz>
1480
1481         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1482         (cgraph_clone_node): Copy function frequency.
1483         * cgraph.h (node_frequency): New enum
1484         (struct cgraph_node): Add.
1485         * final.c (rest_of_clean_state): Update.
1486         * lto-cgraph.c (lto_output_node): Output node frequency.
1487         (input_overwrite_node): Input node frequency.
1488         * tre-ssa-loop-ivopts (computation_cost): Update.
1489         * lto-streamer-out.c (output_function): Do not output function
1490         frequency.
1491         * predict.c (maybe_hot_frequency_p): Update and handle functions
1492         executed once.
1493         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1494         attribute lookup.
1495         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1496         (compute_function_frequency): Set noreturn functions to be executed
1497         once.
1498         (choose_function_section): Update.
1499         * lto-streamer-in.c (input_function): Do not input function frequency.
1500         * function.c (allocate_struct_function): Do not initialize function
1501         frequency.
1502         * function.h (function_frequency): Remove.
1503         (struct function): Remove function frequency.
1504         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1505         (try_update): Update.
1506         * tree-inline.c (initialize_cfun): Do not update function frequency.
1507         * passes.c (pass_init_dump_file): Update.
1508         * i386.c (ix86_compute_frame_layout): Update.
1509         (ix86_pad_returns): Update.
1510
1511 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1512
1513         PR tree-optimization/43833
1514         * tree-vrp.c (range_int_cst_p): New.
1515         (range_int_cst_singleton_p): New.
1516         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1517         when both operands are constants.  Use range_int_cst_p in
1518         BIT_IOR_EXPR case.
1519
1520 2010-04-26  Jan Hubicka  <jh@suse.cz>
1521
1522         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1523
1524 2010-04-26  Richard Guenther  <rguenther@suse.de>
1525
1526         PR lto/43080
1527         * gimple.c (gimple_decl_printable_name): Deal gracefully
1528         with a NULL DECL_NAME.
1529
1530 2010-04-26  Richard Guenther  <rguenther@suse.de>
1531
1532         PR lto/42425
1533         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1534         if emitting debug information and it is either a function
1535         or a namespace decl.
1536
1537 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1538
1539         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1540         determine if the statement is vectorizable, and a macro to access it.
1541         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1542         Skip statements that can't be vectorized. If the analysis fails,
1543         mark the statement as unvectorizable if vectorizing basic block.
1544         (vect_compute_data_refs_alignment): Likewise.
1545         (vect_verify_datarefs_alignment): Skip statements marked as
1546         unvectorizable. Add print.
1547         (vect_analyze_group_access): Skip statements that can't be
1548         vectorized. If the analysis fails, mark the statement as
1549         unvectorizable if vectorizing basic block.
1550         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1551         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1552         generated stmts for SLP.
1553         (new_stmt_vec_info): Initialize the new field.
1554         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1555         statements marked as unvectorizable.
1556
1557 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1558
1559         * c-common.c (flag_isoc1x): New.
1560         (flag_isoc99): Update comment.
1561         * c-common.h (flag_isoc1x): New.
1562         (flag_isoc99): Update comment.
1563         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1564         __<type>_DECIMAL_DIG__.
1565         * c-opts.c (set_std_c1x): New.
1566         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1567         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1568         * c.opt (-std=c1x, -std=gnu1x): New options.
1569         * doc/cpp.texi: Mention -std=c1x.
1570         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1571         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1572         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1573         * doc/standards.texi: Mention C1X.
1574         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1575         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1576         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1577         Define for C1X.
1578
1579 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1580
1581         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1582         placeholder from 0x%x to %#x.
1583         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1584         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1585         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1586         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1587         * config/i386/i386.c (ix86_target_string): Ditto.
1588         (output_pic_addr_const): Ditto.
1589         (print_operand): Ditto.
1590
1591 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1592
1593         * combine.c (find_split_point): Add third argument.  Use it
1594         to find nested multiply-accumulate instructions.  Adjust calls.
1595         (try_combine): Adjust call to find_split_point.
1596
1597 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1598
1599         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1600
1601 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1602
1603         PR tree-optimization/41442
1604         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1605         (fold_binary_loc): Call it.
1606
1607 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1608
1609         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1610         * opts.c (common_handle_option): Allow disabling it.
1611         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1612
1613 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1614
1615         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1616         between modes if both types are integral.
1617
1618 2010-04-23  Richard Guenther  <rguenther@suse.de>
1619
1620         PR tree-optimization/43572
1621         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1622
1623 2010-04-23  Richard Guenther  <rguenther@suse.de>
1624
1625         PR lto/43455
1626         * tree-inline.c (tree_can_inline_p): Also check compatibility
1627         of return types.
1628
1629 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1630
1631         PR tree-optimization/43846
1632         * tree-sra.c (struct access): New flag grp_assignment_read.
1633         (build_accesses_from_assign): Set grp_assignment_read.
1634         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1635         (enum mark_read_status): New type.
1636         (analyze_access_subtree): Propagate grp_assignment_read, create
1637         accesses also if both direct_read and root->grp_assignment_read.
1638
1639 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1640
1641         PR middle-end/43835
1642         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1643         function does not have type attributes.
1644
1645 2010-04-23  Richard Guenther  <rguenther@suse.de>
1646
1647         PR lto/42653
1648         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1649         of FUNCTION_DECLs.
1650
1651 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1652
1653         * sese.h (create_if_region_on_edge): Remove.
1654
1655         * sese.c (create_if_region_on_edge): Make static.
1656
1657         * tree-inline.c: Do not include ggc.h.
1658
1659         * expr.c: Do not include ggc.h.
1660
1661         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1662         dependencies.
1663
1664 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1665
1666         PR target/43744
1667         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1668         in the middle of insns for casesi_worker_2.
1669
1670 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1671
1672         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1673
1674 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1675
1676         PR tree-optimization/43842
1677         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1678         loop unrolling in update of exit phis. Fix comment.
1679         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1680         least two reduction statements in the loop before starting SLP
1681         analysis.
1682
1683 2010-04-22  Nick Clifton  <nickc@redhat.com>
1684
1685         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1686
1687 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1688
1689         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1690         to simplify a + ~a.
1691
1692 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1693
1694         * tree-parloops.c (loop_parallel_p): New argument
1695         parloop_obstack.  Pass it down.
1696         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1697         pass it down, free it.
1698
1699         * tree-loop-linear.c (linear_transform_loops): Pass down
1700         lambda_obstack.
1701
1702         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1703         of type struct obstack *.
1704
1705         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1706         scratch_obstack.  Initialize it, pass down, free it.
1707
1708         * lambda.h (lambda_loop_new): Remove.
1709         (lambda_matrix_new, lambda_matrix_inverse)
1710         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1711         argument of type struct obstack *.
1712
1713         * lambda-trans.c (lambda_trans_matrix_new): New argument
1714         lambda_obstack.  Pass it down, use obstack allocation for ret.
1715         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1716         it down.
1717
1718         * lambda-mat.c (lambda_matrix_get_column)
1719         (lambda_matrix_project_to_null): Remove.
1720         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1721         allocation for mat.
1722         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1723         lambda_obstack.
1724
1725         * lambda-code.c (lambda_loop_new): New function.
1726         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1727         (lambda_compute_auxillary_space, lambda_compute_target_space)
1728         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1729         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1730         (build_access_matrix): New argument lambda_obstack.  Use obstack
1731         allocation for am.
1732         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1733         argument lambda_obstack.  Pass it down.
1734
1735 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1736
1737         * optabs.h (expand_widening_mult): Declare.
1738
1739 2010-04-22  Richard Guenther  <rguenther@suse.de>
1740
1741         PR tree-optimization/43845
1742         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1743         lookup the CALL_EXPR function and arguments.
1744
1745 2010-04-22  Nick Clifton  <nickc@redhat.com>
1746
1747         * config/stormy16/stormy16.c
1748         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1749         * config/stormy16/stormy16.h: Tidy up formatting.
1750         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1751         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1752         (ineqbranchsi): Delete pattern.
1753         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1754         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1755         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1756         stormy16-lib2-ucmpsi2.c.
1757
1758 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1759
1760         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1761         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1762         extra set merge_set_noclobber, and use it to relax the final test
1763         slightly.
1764         * df.h (df_simulate_find_noclobber_defs): Declare.
1765         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1766         conditional defs.
1767         (df_simulate_find_noclobber_defs): New function.
1768
1769 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1770
1771         * config/i386/i386.md: Use {} around multi-line preparation statements.
1772
1773 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1774
1775         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1776         (process_init_element): New argument of type struct obstack *.
1777
1778         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1779         (set_init_index, set_init_label, set_nonincremental_init)
1780         (set_nonincremental_init_from_string, find_init_member)
1781         (output_init_element, output_pending_init_elements)
1782         (process_init_element): New argument braced_init_obstack.  Pass it
1783         down.
1784         (push_range_stack, add_pending_init): New argument
1785         braced_init_obstack.  Use obstack allocation.
1786
1787         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1788         braced_init_obstack.  Pass it down.
1789         (c_parser_braced_init): New variables ret, braced_init_obstack.
1790         Initialize obstack, pass it down and finally free it.
1791
1792 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1793
1794         PR middle-end/29274
1795         * tree-pass.h (pass_optimize_widening_mul): Declare.
1796         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1797         gate_optimize_widening_mul): New static functions.
1798         (pass_optimize_widening_mul): New.
1799         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1800         <case MULT_EXPR>: Remove support for widening multiplies.
1801         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1802         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1803         simplify_gen_unary rather than directly building extensions.
1804         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1805         WIDEN_MULT_EXPR.
1806         * expmed.c (expand_widening_mult): New function.
1807         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1808
1809 2010-04-21  Jan Hubicka  <jh@suse.cz>
1810
1811         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1812         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1813         * lto-wpa-fixup.c: Remove.
1814         * Makefile.in (lto-wpa-fixup.o): Remove.
1815         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1816         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1817         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1818
1819 2010-04-21  Jan Hubicka  <jh@suse.cz>
1820
1821         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1822         add write_optimization_summary, read_optimization_summary.
1823         (ipa_write_summaries_of_cgraph_node_set): Remove.
1824         (ipa_write_optimization_summaries): Declare.
1825         (ipa_read_optimization_summaries): Declare.
1826         * ipa-cp.c (pass_ipa_cp): Update.
1827         * ipa-reference.c (pass_ipa_reference): Update.
1828         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1829         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1830         Update.
1831         * ipa-inline.c (pass_ipa_inline): Update.
1832         * ipa.c (pass_ipa_whole_program): Update.
1833         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1834         * passes.c (ipa_write_summaries_1): Do not test wpa.
1835         (ipa_write_optimization_summaries_1): New.
1836         (ipa_write_optimization_summaries): New.
1837         (ipa_read_summaries): Do not test ltrans.
1838         (ipa_read_optimization_summaries_1): New.
1839         (ipa_read_optimization_summaries): New.
1840
1841 2010-04-21  Jan Hubicka  <jh@suse.cz>
1842
1843         * lto-cgraph.c (lto_output_node): Do not output comdat groups
1844         for boundary nodes.
1845         (output_cgraph): Do not arrange comdat groups for boundary nodes.
1846
1847 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1848
1849         PR debug/40040
1850         * dwarf2out.c (add_name_and_src_coords_attributes): Add
1851         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
1852
1853 2010-04-21  Jan Hubicka  <jh@suse.cz>
1854
1855         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
1856
1857 2010-04-21  Jan Hubicka  <jh@suse.cz>
1858
1859         * varpool.c (decide_is_variable_needed): Variable is always needed
1860         during ltrans.
1861
1862 2010-04-21  Jan Hubicka  <jh@suse.cz>
1863
1864         * opts.c (decode_options): Enable pure-const pass for whopr.
1865
1866 2010-04-21  Jan Hubicka  <jh@suse.cz>
1867
1868         * cgraph.c (dump_cgraph_node): Dump also assembler name.
1869         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
1870         at WPA dumping.
1871         (cgraph_decide_inlining): Do not expect callee to be removed in all
1872         cases.
1873
1874 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
1875
1876         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
1877
1878 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1879
1880         * config/i386/i386.md (x86_shrd): Add athlon_decode and
1881         amdfam10_decode attributes.
1882
1883 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1884
1885         PR middle-end/43570
1886         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
1887         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
1888         (lower_copyprivate_clauses): Use private var in outer
1889         context instead of original var.  Make sure the types
1890         are correct for VLAs.
1891
1892 2010-04-21  Richard Guenther  <rguenther@suse.de>
1893
1894         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
1895         to non-pointer objects.
1896
1897 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1898
1899         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
1900         last chain entry if it starts with the still current label.
1901         (add_location_or_const_value_attribute): Check that
1902         loc_list->first->next is NULL instead of comparing ->first with ->last.
1903         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
1904         to add_var_loc_to_decl.
1905
1906         * dwarf2out.c (output_call_frame_info): For dw_cie_version
1907         >= 4 add also address size and segment size fields into CIE header.
1908
1909         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
1910         long as address size is the same as sizeof (void *) and
1911         segment size is 0.
1912         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
1913         address size or segment size is unexpected, return DW_EH_PE_omit.
1914         (classify_object_over_fdes): If get_cie_encoding returned
1915         DW_EH_PE_omit, return -1.
1916         (init_object): If classify_object_over_fdes returned -1,
1917         pretend there were no FDEs at all.
1918
1919 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1920
1921         * config/i386/i386.md (bswap<mode>2): Macroize expander from
1922         bswap{si,di}2 using SWI48 mode iterator.
1923         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
1924         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
1925         set modrm attribute of bswap insn to 0 and remove length attribute.
1926         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
1927         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
1928         set mode attribute to <MODE> and remove length attribute.
1929
1930 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
1931
1932         PR rtl-optimization/43520
1933         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
1934         zero available registers.
1935
1936 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1937
1938         * builtins.c (fold_builtin_cproj): Fold more cases.
1939
1940 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1941
1942         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
1943         (fold_builtin_1): Fold builtin cproj.
1944         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
1945         Use ATTR_CONST_NOTHROW_LIST.
1946
1947 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
1948
1949         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
1950         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
1951         ffsi2_no_cmove for !TARGET_CMOVE.
1952         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
1953         (ffssi2): Remove expander.
1954         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
1955         mode iterator.
1956         (ctz<mode>2): Ditto from ctz{si,di}2.
1957         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
1958         mode iterator.
1959         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
1960         mode iterator.
1961
1962 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1963
1964         * dwarf2out.c (AT_linkage_name): Define.
1965         (clone_as_declaration): Handle DW_AT_linkage_name.
1966         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
1967         of DW_AT_MIPS_linkage_name.
1968         (move_linkage_attr): Likewise.
1969         (dwarf2out_finish): Likewise.
1970
1971 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
1972
1973         PR middle-end/41952
1974         * fold-const.c (fold_comparison): New folding rule.
1975
1976 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
1977
1978         * double-int.h (double_int_setbit): Declare.
1979         * double-int.c (double_int_setbit): New function.
1980         * rtl.h (immed_double_int_const): Declare.
1981         * emit-rtl.c (immed_double_int_const): New function.
1982         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1983         and immed_double_int_const functions.
1984         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1985         expand_copysign_bit):  (Ditto.).
1986         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1987         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
1988         * dojump.c (prefer_and_bit_test): (Ditto.).
1989         * expr.c (convert_modes, reduce_to_bit_field_precision,
1990         const_vector_from_tree): (Ditto.).
1991         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1992
1993 2010-04-20  Jan Hubicka  <jh@suse.cz>
1994
1995         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
1996         (dump_cgraph_node): Dump new flags.
1997         * cgraph.h (struct cgraph_node): Add flags
1998         reachable_from_other_partition and in_other_partition.
1999         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
2000         other partition can not be removed.
2001         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
2002         the other partition must be output; silence sanity checking on
2003         leaking functions bodies from other paritition.
2004         * lto-cgraph.c (reachable_from_other_partition_p): New function.
2005         (lto_output_node): Output new flags; do not sanity check that inline
2006         clones are output; drop lto_forced_extern_inline_p code; do not mock
2007         visibility flags at partition boundaries.
2008         (add_node_to): New function.
2009         (output_cgraph): Use it to sort functions so masters appear before
2010         clones.
2011         (input_overwrite_node): Input new flags.
2012         * passes.c (ipa_write_summaries): Do not call
2013         lto_new_extern_inline_states.
2014         * lto-section-out.c (forced_extern_inline,
2015         lto_new_extern_inline_states lto_delete_extern_inline_states,
2016         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
2017         * lto-streamer.h (lto_new_extern_inline_states,
2018         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
2019         lto_forced_extern_inline_p): Kill.
2020
2021 2010-04-20  Richard Guenther  <rguenther@suse.de>
2022
2023         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
2024         from vars that can have pointers.
2025         (process_constraint): Dump useless constraints.
2026
2027 2010-04-20  Richard Guenther  <rguenther@suse.de>
2028
2029         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
2030         (dump_sa_points_to_info): Remove asserts.
2031         (init_base_vars): nothing_id isn't an escape point nor does it
2032         have pointers.
2033
2034 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2035
2036         * tree.h (TYPE_REF_IS_RVALUE): Define.
2037         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
2038         should_move_die_to_comdat, prune_unused_types_walk): Handle
2039         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
2040         (modified_type_die, gen_reference_type_die): Emit
2041         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
2042         if TYPE_REF_IS_RVALUE and -gdwarf-4.
2043
2044 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2045
2046         PR target/43635
2047         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
2048         calls for -fpic -m31 if they have been sibcall optimized.
2049
2050 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
2051
2052         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
2053         ar.lc fixed and call-used.
2054
2055         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
2056
2057 2010-04-19  Jan Hubicka  <jh@suse.cz>
2058
2059         * opts.c (decode_options): Disable whpr incompatible passes.
2060         * lto/lto.c (lto_1_to_1_map): Skip clones.
2061         (read_cgraph_and_symbols): Do not mark everything as needed.
2062         (do_whole_program_analysis): Do map only after optimizing;
2063         set proper cgraph_state; use passmanager.
2064
2065 2010-04-19  DJ Delorie  <dj@redhat.com>
2066
2067         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
2068         POINTER_PLUS_EXPR and fix them.
2069
2070 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
2071
2072         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
2073         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
2074         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
2075         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
2076         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
2077         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
2078         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
2079         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
2080         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
2081         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
2082         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
2083
2084 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2085
2086         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
2087         (check_cond_move_block): Likewise.
2088         (cond_move_process_if_block): Likewise.
2089         (noce_find_if_block): Improve formatting.
2090         (find_if_header): Pass 0 to memset and tweak conditions.
2091         (cond_exec_find_if_block): Fix long lines and tweak conditions.
2092
2093 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2094
2095         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
2096         for -gdwarf-4.
2097
2098         PR middle-end/43337
2099         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
2100         with non-local decl doesn't need chain.
2101
2102 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2103
2104         * ira-color.c (allocno_reload_assign): Avoid accumulating
2105         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
2106
2107 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2108
2109         * gimple.h (create_tmp_reg): Declare.
2110         * gimplify.c (create_tmp_reg): New function.
2111         (gimplify_return_expr): Use create_tmp_reg.
2112         (gimplify_omp_atomic): Likewise.
2113         (gimple_regimplify_operands): Likewise.
2114         * tree-dfa.c (make_rename_temp): Likewise.
2115         * tree-predcom.c (predcom_tmp_var): Likewise.
2116         (reassociate_to_the_same_stmt): Likewise.
2117         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
2118         (get_replaced_param_substitute): Likewise.
2119         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2120         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2121         * tree-ssa-pre.c (get_representative_for): Likewise.
2122         (create_expression_by_pieces): Likewise.
2123         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
2124         (create_tailcall_accumulator): Likewise.
2125
2126 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2127
2128         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
2129         new_stmt.
2130         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
2131
2132 2010-04-19  Richard Guenther  <rguenther@suse.de>
2133
2134         PR tree-optimization/43796
2135         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
2136         from SCEV in the lattice.
2137         (vrp_visit_phi_node): Dump change.
2138
2139 2010-04-19  Richard Guenther  <rguenther@suse.de>
2140
2141         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
2142         * configure: Re-generated.
2143
2144 2010-04-19  Richard Guenther  <rguenther@suse.de>
2145
2146         PR tree-optimization/43783
2147         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
2148         constant ARRAY_REF operands two and three if possible.
2149
2150 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
2151
2152         PR target/43766
2153         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
2154
2155 2010-04-19  Jie Zhang  <jie@codesourcery.com>
2156
2157         PR target/43662
2158         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
2159
2160 2010-04-19  Ira Rosen  <irar@il.ibm.com>
2161
2162         PR tree-optimization/37027
2163         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
2164         and macro to access it.
2165         (vectorizable_reduction): Add argument.
2166         (vect_get_slp_defs): Likewise.
2167         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
2168         statements for possible use in SLP.
2169         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
2170         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
2171         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2172         add new argument.
2173         (vectorizable_reduction): Likewise.
2174         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2175         vect_get_slp_defs.
2176         (vectorizable_type_demotion, vectorizable_type_promotion,
2177         vectorizable_store): Likewise.
2178         (vect_analyze_stmt): Update call to vectorizable_reduction.
2179         (vect_transform_stmt): Likewise.
2180         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2181         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2182         from different interleaving chains in same node.
2183         (vect_slp_rearrange_stmts): New function.
2184         (vect_supported_load_permutation_p): Allow load permutations for
2185         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2186         inside SLP nodes if necessary.
2187         (vect_analyze_slp_instance): Handle reductions.
2188         (vect_analyze_slp): Try to build SLP instances originating from groups
2189         of reductions.
2190         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2191         (vect_get_constant_vectors): Create initial vectors for reductions
2192         according to reduction code. Add new argument.
2193         (vect_get_slp_defs): Add new argument, pass it to
2194         vect_get_constant_vectors.
2195         (vect_schedule_slp_instance): Remove SLP tree root statements.
2196
2197 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2198
2199         * tree.h (ENUM_IS_SCOPED): Define.
2200         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2201         for ENUM_IS_SCOPED enums.
2202
2203 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2204
2205         * fold-const.c (fold_comparison): Use ssizetype.
2206         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2207         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2208         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2209         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2210
2211         * tree.h (initialize_sizetypes): Remove parameter.
2212         (build_common_tree_nodes): Remove second parameter.
2213         * stor-layout.c (initialize_sizetypes): Remove parameter.
2214         Always create an unsigned type.
2215         (set_sizetype): Assert that the passed type is unsigned and simplify.
2216         * tree.c (build_common_tree_nodes): Remove second parameter.
2217         Adjust call to initialize_sizetypes.
2218         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2219         build_common_tree_nodes.
2220
2221 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2222
2223         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2224
2225 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2226
2227         PR tree-optimization/43771
2228         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2229         load permutation doesn't have gaps.
2230
2231 2010-04-18  Jan Hubicka  <jh@suse.cz>
2232
2233         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2234         (sse_prologue_save_insn expander): Use new pattern.
2235         (sse_prologue_save_insn1): New pattern and splitter.
2236         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2237         blocks.
2238         * i386.c (setup_incoming_varargs_64): Do not compute jump
2239         destination here.
2240         (ix86_gimplify_va_arg): Update alignment needed.
2241         (ix86_local_alignment): Do not align all local arrays to 128bit.
2242
2243 2010-04-17  Jan Hubicka  <jh@suse.cz>
2244
2245         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2246
2247 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2248
2249         * arm.md (negdi2): Remove redundant code to force values into a
2250         register.
2251
2252 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2253
2254         * arm/bpabi.S: Add EABI alignment attributes to objects.
2255         * arm/bpabi-v6m.S: Likewise.
2256         * arm/crti.asm: Likewise.
2257         * arm/crtn.asm: Likewise.
2258         * arm/lib1funcs.asm: Likewise.
2259         * arm/libunwind.S: Likewise.
2260
2261 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2262
2263         * arm-protos.h (tune_params): New structure.
2264         * arm.c (current_tune): New variable.
2265         (arm_constant_limit): Delete.
2266         (struct processors): Add pointer to the tune parameters.
2267         (arm_slowmul_tune): New tuning option.
2268         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2269         (all_cores): Adjust to pick up the tuning model.
2270         (arm_constant_limit): New function.
2271         (arm_override_options): Select the appropriate tuning model.  Delete
2272         initialization of arm_const_limit.
2273         (arm_split_constant): Use the new constant-limit model.
2274         (arm_rtx_costs): Pick up the current tuning model.
2275         * arm.md (is_strongarm, is_xscale): Delete.
2276         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2277         for Xscale variant architectures.
2278         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2279
2280 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2281
2282         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2283         can_shift.
2284         (arm_rtx_costs_1): Remove unused variable extra_cost.
2285         (arm_unwind_emit_set): Use variable offset.
2286         (thumb1_output_casesi): Remove unused variable flags.
2287
2288 2010-04-16  Jeff Law  <law@redhat.com>
2289
2290         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2291         needing assignment rather than doing a two-phase assignment.  Remove
2292         unused variable 'm'.
2293
2294 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2295
2296         PR bootstrap/43767
2297         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2298
2299 2010-04-16  Doug Kwan  <dougkwan@google.com>
2300
2301         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2302         (next_operand_entry_id): New static variable.
2303         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2304         (add_to_ops_vec): Assigned unique ID to operand entry.
2305         (struct oecount_s): New field ID.
2306         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2307         (undistribute_ops_list): Assign unique IDs to oecounts.
2308         (init_reassoc): reset next_operand_entry_id.
2309
2310 2010-04-16  Doug Kwan  <dougkwan@google.com>
2311
2312         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2313         missing left parenthesis.
2314
2315 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2316
2317         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2318         *btdi_rex64 using SWI48 mode iterator.
2319         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2320         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2321         *jcc_btdi_mask_rex64.
2322
2323 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2324
2325         * double-int.h (tree_to_double_int): Convert to macro.
2326         * double-int.c (tree_to_double_int): Remove.
2327
2328 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2329
2330         PR debug/43762
2331         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2332         with want_address 2 and in case a single element list might be
2333         possible, call it again with want_address 0.
2334
2335 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2336
2337         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2338         case 'W' print operands for HI mode.
2339         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2340         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2341         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2342         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2343
2344         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2345
2346         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2347         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2348         #xx:3 and #xx:4 mode.
2349
2350         * config/h8300/h8300.md (inverted load with HImode dest): Add
2351         support for H8300SX.
2352
2353         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2354         satisfy 'U' constraint.
2355
2356 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2357
2358         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2359         * configure: Regenerate.
2360         * config.in: Regenerate.
2361         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2362         works.
2363
2364 2010-04-16  Richard Guenther  <rguenther@suse.de>
2365
2366         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2367         (struct tree_decl_common): ... here.
2368         (DECL_PT_UID): Adjust.
2369         (SET_DECL_PT_UID): Likewise.
2370         (DECL_PT_UID_SET_P): Likewise.
2371
2372 2010-04-16  Richard Guenther  <rguenther@suse.de>
2373
2374         PR tree-optimization/43572
2375         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2376         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2377         * tree-flow.h (is_call_clobbered): Remove.
2378         * tree-flow-inline.h (is_call_clobbered): Likewise.
2379         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2380         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2381         (execute_return_slot_opt): Adjust.
2382         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2383         check for call clobbered vars here.
2384         (find_tail_calls): Move tailcall verification to the
2385         proper place.
2386
2387 2010-04-16  Diego Novillo  <dnovillo@google.com>
2388
2389         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2390
2391 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2392
2393         PR target/40603
2394         * config/arm/arm.md (cbranchqi4): New pattern.
2395         * config/arm/predicates.md (const0_operand,
2396         cbranchqi4_comparison_operator): New predicates.
2397
2398 2010-04-16  Richard Guenther  <rguenther@suse.de>
2399
2400         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2401         (dump_gimple_stmt): Likewise.
2402
2403 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2404
2405         * recog.h (struct recog_data): New field is_operator.
2406         (struct insn_operand_data): New field is_operator.
2407         * recog.c (extract_insn): Set recog_data.is_operator.
2408         * genoutput.c (output_operand_data): Emit code to set the
2409         is_operator field.
2410         * reload.c (find_reloads): Use it rather than testing for an
2411         empty constraint string.
2412
2413         PR target/41514
2414         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2415         If the previous insn is a cbranchsi4_insn with the same arguments,
2416         omit the compare instruction.
2417
2418         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2419         register, inputs must be low registers and we need a low register
2420         scratch.  Handle alternative 2 like alternative 3.
2421
2422 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2423
2424         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2425         don't call get_addr on both.  If one expression is a VALUE and
2426         the other a REG, check VALUE's locs if the REG isn't among them.
2427
2428 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2429
2430         * config/sh/sh.h (sh_frame_pointer_required): New function.
2431         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2432         (flag_omit_frame_pointer) Set.
2433         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2434         (rounded_frame_size): Adjust size with outgoing_args_size.
2435         (sh_set_return_address): Must return from stack pointer.
2436         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2437         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2438         (ACCUMULATE_OUTGOING_ARGS): Define.
2439         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2440         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2441
2442 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2443
2444         PR target/43471
2445         * config/sh/sh.c (sh_legitimize_reload_address): Use
2446         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2447         Remove a unneeded check for offset_base.
2448
2449 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2450
2451         * configure: Regenerated.
2452
2453 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2454
2455         * config/s390/s390.c (s390_call_save_register_used): Switch back
2456         to HARD_REGNO_NREGS.
2457
2458 2010-04-15  Richard Guenther  <rguenther@suse.de>
2459
2460         * alias.c (alias_set_subset_of): Handle alias-set zero
2461         child properly.
2462
2463 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2464             Julian Brown  <julian@codesourcery.com>
2465
2466         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2467         alternatives according to use of high and low regs.
2468         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2469         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2470         optimizing for size on Thumb-2.
2471
2472 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2473
2474         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2475
2476 2010-04-15  Richard Guenther  <rguenther@suse.de>
2477
2478         * tree-ssa-structalias.c (struct variable_info): Add
2479         is_fn_info flag.
2480         (new_var_info): Initialize it.
2481         (dump_constraints): Support printing last added constraints.
2482         (debug_constraints): Adjust.
2483         (dump_constraint_graph): Likewise.
2484         (make_heapvar_for): Check for NULL cfun.
2485         (get_function_part_constraint): New function.
2486         (get_fi_for_callee): Likewise.
2487         (find_func_aliases): Properly implement IPA PTA constraints.
2488         (process_ipa_clobber): New function.
2489         (find_func_clobbers): Likewise.
2490         (insert_into_field_list_sorted): Remove.
2491         (create_function_info_for): Properly allocate vars for IPA mode.
2492         Do not use insert_into_field_list_sorted.
2493         (create_variable_info_for): Properly generate constraints for
2494         global vars in IPA mode.
2495         (dump_solution_for_var): Always dump the solution.
2496         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2497         (find_what_var_points_to): Adjust.
2498         (pt_solution_set): Change.
2499         (pt_solution_ior_into): New function.
2500         (pt_solution_empty_p): Export.
2501         (pt_solution_includes_global): Adjust.
2502         (pt_solution_includes_1): Likewise.
2503         (pt_solutions_intersect_1): Likewise.
2504         (dump_sa_points_to_info): Check some invariants.
2505         (solve_constraints): Move constraint dumping ...
2506         (compute_points_to_sets): ... here.
2507         (ipa_pta_execute): ... and here.
2508         (compute_may_aliases): Do not re-compute points-to info
2509         locally if IPA info is available.
2510         (ipa_escaped_pt): New global var.
2511         (ipa_pta_execute): Properly implement IPA PTA.
2512         * tree-into-ssa.c (dump_decl_set): Support dumping
2513         decls not in referenced-vars.
2514         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2515         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2516         (dump_points_to_solution): Likewise.
2517         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2518         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2519         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2520         (copy_decl_to_var): Copy DECL_PT_UID.
2521         (copy_result_decl_to_var): Likewise.
2522         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2523         (copy_node_stat): Copy it.
2524         * tree.h (DECL_PT_UID): New macro.
2525         (SET_DECL_PT_UID): Likewise.
2526         (DECL_PT_UID_SET_P): Likewise.
2527         (struct tree_decl_minimal): Add pt_uid member.
2528         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2529         (pt_solution_empty_p): Declare.
2530         (pt_solution_set): Adjust.
2531         (ipa_escaped_pt): Declare.
2532         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2533         * gimple-pretty-print.c (pp_points_to_solution): New function.
2534         (dump_gimple_call): Dump call clobber/use information.
2535         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2536         * tree-pass.h (TDF_ALIAS): New dump option.
2537         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2538         * doc/invoke.texi (-fipa-pta): Update documentation.
2539
2540 2010-04-15  Richard Guenther  <rguenther@suse.de>
2541
2542         * Makefile.in (OBJS-common): Add gimple-fold.o.
2543         (gimple-fold.o): New rule.
2544         * tree.h (maybe_fold_offset_to_reference,
2545         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2546         prototypes ...
2547         * gimple.h: ... here.
2548         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2549         may_propagate_address_into_dereference): Move prototypes ...
2550         * gimple.h: ... here.
2551         * tree-ssa-ccp.c (get_symbol_constant_value,
2552         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2553         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2554         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2555         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2556         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2557         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2558         gimplify_and_update_call_from_tree): Move ...
2559         * gimple-fold.c: ... here.  New file.
2560         (ccp_fold_builtin): Rename to ...
2561         (gimple_fold_builtin): ... this.
2562         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2563
2564 2010-04-15  Richard Guenther  <rguenther@suse.de>
2565
2566         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2567         fit_double_type, force_fit_type_double, add_double_with_sign,
2568         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2569         lrotate_double, rrotate_double, div_and_round_double): Move ...
2570         * double-int.c: ... here.
2571         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2572         add_double, neg_double, mul_double_with_sign, mul_double,
2573         lshift_double, rshift_double, lrotate_double, rrotate_double,
2574         div_and_round_double): Move prototypes ...
2575         * double-int.h: ... here.
2576
2577 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2578
2579         PR target/43742
2580         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2581         matching constraints to ensure inputs match the output.
2582
2583 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2584
2585         PR target/43742
2586         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2587         in an input-only operand.
2588
2589 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2590
2591         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2592         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2593         (double_int_negative_p): Convert to static inline function.
2594         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2595         (double_int_negative_p): Remove.
2596         * tree.h (lshift_double, rshift_double):
2597         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2598         * fold-const.c (fold_convert_const_int_from_real,
2599         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2600         (lshift_double): Change type of arith argument to bool.
2601         (rshift_double): Change type of arith argument to bool. Correct
2602         comment.
2603         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2604
2605 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2606
2607         PR target/21803
2608         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2609         at the start and end of the then/else blocks, and omit them from the
2610         conversion.
2611         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2612         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2613         (flow_find_head_matching_sequence): New function.
2614         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2615         * basic-block.h (flow_find_cross_jump,
2616         flow_find_head_matching_sequence): Declare functions.
2617
2618 2010-04-14  Jason Merrill  <jason@redhat.com>
2619
2620         PR c++/36625
2621         * c-common.c (attribute_takes_identifier_p): New fn.
2622         * c-common.h: Declare it.
2623
2624 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2625
2626         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2627         splitter condition.
2628         (*udivmod<mode>4): Ditto.
2629
2630 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2631
2632         * config/i386/i386.md (maxmin_int): Rename code attribute from
2633         maxminiprefix and update all users.
2634         (maxmin_float): Ditto from maxminfprefix.
2635         (logic): Ditto from logicprefix.
2636         (absneg_mnemonic): Ditto from absnegprefix.
2637         * config/i386/mmx.md: Update all users of maxminiprefix,
2638         maxminfprefix and logicprefix for rename.
2639         * config/i386/sse.md: Ditto.
2640         * config/i386/sync.md (sync_<code><mode>): Update for
2641         logicprefix rename.
2642
2643 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2644
2645         PR 42966
2646         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2647         warnings converted to errors.
2648
2649 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2650
2651         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2652         used insn_type variable.
2653         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2654         to avoid set-but-not-used warning.
2655
2656 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2657
2658         * df-core.c (df_ref_debug): Change format string placeholder
2659         from 0x%x to %#x.
2660         * dwarf2asm.c (dw2_asm_output_data_raw,
2661         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2662         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2663         * dwarf2out.c (output_cfi, output_cfi_directive,
2664         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2665         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2666         Ditto.
2667         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2668         * print-rtl.c (print_rtx): Ditto.
2669
2670 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2671
2672         PR middle-end/42694
2673         * builtins.c (expand_builtin_pow_root): New function to expand pow
2674         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2675         series of sqrt and cbrt calls under -ffast-math.
2676         (expand_builtin_pow): Call it.
2677
2678 2010-04-14  Michael Matz  <matz@suse.de>
2679
2680         PR tree-optimization/42963
2681         * tree-cfg.c (touched_switch_bbs): New static variable.
2682         (group_case_labels_stmt): New function broken out from ...
2683         (group_case_labels): ... here, use the above.
2684         (start_recording_case_labels): Allocate touched_switch_bbs.
2685         (end_recording_case_labels): Deallocate it, call
2686         group_case_labels_stmt.
2687         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2688
2689 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2690
2691         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2692         from insn template.
2693
2694 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2695
2696         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2697
2698 2010-04-13  Jan Hubicka  <jh@suse.cz>
2699
2700         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2701         of optimized out static functions.
2702         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2703         cost computation.  Also sanity check for overflows.
2704         (update_caller_keys): Update cgraph_edge_badness call; properly
2705         update fibheap and sanity check that it is up to date.
2706         (add_new_edges_to_heap): Update cgraph_edge_badness.
2707         (cgraph_decide_inlining_of_small_function): Likewise;
2708         add sanity checking that badness in heap is up to date;
2709         improve dumping of reason; Update badness of calls to the
2710         offline copy of function currently inlined; dump badness
2711         of functions not inlined because of unit growth limits.
2712
2713 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2714
2715         PR middle-end/32628
2716         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2717         because of sign-extension change when converting to sizetype here...
2718         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2719
2720         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2721         the folding to constants.  Remove redundant final conversion.
2722         (fold_binary) <associate>: Do not associate if the re-association of
2723         constants alone overflows.
2724         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2725         to the end of the list.
2726         (multiple_of_p) <COND_EXPR>: New case.
2727
2728 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2729
2730         * opt-functions.awk (opt_sanitized_name): New.
2731         (opt_enum): New.
2732         * optc-gen.awk: Use it
2733         * opth-gen.awk: Use it.
2734
2735 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2736
2737         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2738         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2739         children.  Call replace_uses_with_default_def_ssa_name to handle
2740         SSA_NAES on lhs.
2741
2742 2010-04-13  Michael Matz  <matz@suse.de>
2743
2744         PR middle-end/43730
2745         * builtins.c (expand_builtin_interclass_mathfn): Also create
2746         a register if the predicate doesn't match.
2747
2748 2010-04-13  Diego Novillo  <dnovillo@google.com>
2749
2750         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2751         * c-pch.c: Include timevar.h.
2752         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2753         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2754         * ggc-common.c: Include timevar.h.
2755         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2756         * timevar.def (TV_PCH_SAVE): Define.
2757         (TV_PCH_CPP_SAVE): Define.
2758         (TV_PCH_PTR_REALLOC): Define.
2759         (TV_PCH_PTR_SORT): Define.
2760         (TV_PCH_RESTORE): Define.
2761         (TV_PCH_CPP_RESTORE): Define.
2762
2763 2010-04-13  Michael Matz  <matz@suse.de>
2764
2765         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2766         into MINUS_EXPRs.
2767         (can_reassociate_p): New function.
2768         (break_up_subtract_bb, reassociate_bb): Use it.
2769
2770 2010-04-13  Richard Guenther  <rguenther@suse.de>
2771
2772         PR bootstrap/43737
2773         * builtins.c (c_readstr): Fix assert.
2774
2775 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2776
2777         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2778         when generating cltd insn.
2779
2780         (*ashl<mode>3_1): Remove special handling for register operand 2.
2781         (*ashlsi3_1_zext): Ditto.
2782         (*ashlhi3_1): Ditto.
2783         (*ashlhi3_1_lea): Ditto.
2784         (*ashlqi3_1): Ditto.
2785         (*ashlqi3_1_lea): Ditto.
2786         (*<shiftrt_insn><mode>3_1): Ditto.
2787         (*<shiftrt_insn>si3_1_zext): Ditto.
2788         (*<shiftrt_insn>qi3_1_slp): Ditto.
2789         (*<rotate_insn><mode>3_1): Ditto.
2790         (*<rotate_insn>si3_1_zext): Ditto.
2791         (*<rotate_insn>qi3_1_slp): Ditto.
2792
2793 2010-04-13  Richard Guenther  <rguenther@suse.de>
2794
2795         * tree-ssa-structalias.c (callused_id): Remove.
2796         (call_stmt_vars): New.
2797         (get_call_vi): Likewise.
2798         (lookup_call_use_vi): Likewise.
2799         (lookup_call_clobber_vi): Likewise.
2800         (get_call_use_vi): Likewise.
2801         (get_call_clobber_vi): Likewise.
2802         (make_transitive_closure_constraints): Likewise.
2803         (handle_const_call): Adjust to do per-call call-used handling.
2804         (handle_pure_call): Likewise.
2805         (find_what_var_points_to): Remove general callused handling.
2806         (init_base_vars): Likewise.
2807         (init_alias_vars): Initialize call_stmt_vars.
2808         (compute_points_to_sets): Process call-used and call-clobbered
2809         vars for call statements.
2810         (delete_points_to_sets): Free call_stmt_vars.
2811
2812 2010-04-13  Richard Guenther  <rguenther@suse.de>
2813
2814         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2815         Only add RW dependence for dependence distance zero.
2816         Adjust maximal vectorization factor according to dependences.
2817         Move alignment handling ...
2818         (vect_find_same_alignment_drs): ... here.  New function.
2819         (vect_analyze_data_ref_dependences): Adjust.
2820         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2821         (vect_analyze_data_refs): Adjust minimal vectorization factor
2822         according to data references.
2823         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2824         dependences before determining the vectorization factor.
2825         Analyze alignment after determining the vectorization factor.
2826         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2827         dependences before alignment.
2828         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2829         Adjust prototype.
2830         (vect_analyze_data_refs): Likewise.
2831         (MAX_VECTORIZATION_FACTOR): New define.
2832
2833 2010-04-13  Duncan Sands  <baldrick@free.fr>
2834
2835         * except.h (lang_eh_type_covers): Remove.
2836         * except.c (lang_eh_type_covers): Likewise.
2837
2838 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2839             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2840
2841         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
2842         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
2843         UNITS_PER_LONG where it is ABI relevant.
2844         (s390_return_addr_rtx): Likewise.
2845         (s390_back_chain_rtx): Likewise.
2846         (s390_frame_area): Likewise.
2847         (s390_frame_info): Likewise.
2848         (s390_initial_elimination_offset): Likewise.
2849         (save_gprs): Likewise.
2850         (s390_emit_prologue): Likewise.
2851         (s390_emit_epilogue): Likewise.
2852         (s390_function_arg_advance): Likewise.
2853         (s390_function_arg): Likewise.
2854         (s390_va_start): Likewise.
2855         (s390_gimplify_va_arg): Likewise.
2856         (s390_function_profiler): Likewise.
2857         (s390_optimize_prologue): Likewise.
2858         (s390_rtx_costs): Likewise.
2859         (s390_secondary_reload): Likewise.
2860         (s390_promote_function_mode): Likewise.
2861         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
2862         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
2863         registers available.
2864         (s390_unwind_word_mode): New function.
2865         (s390_function_value): Split 64 bit values into register pair if
2866         used as return value.
2867         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
2868         function call parameters.  Handle parallels.
2869         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
2870         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
2871         (DWARF_CIE_DATA_ALIGNMENT): New macro.
2872         (s390_expand_setmem): Remove unused variable src_addr.
2873         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
2874         deal with 64 bit registers.
2875         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
2876         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
2877         (UNITS_PER_LONG): New macro.
2878         * libjava/include/s390-signal.h: Define extended ucontext
2879         structure containing the upper halfs of the 64 bit registers.
2880
2881 2010-04-13  Simon Baldwin  <simonb@google.com>
2882
2883         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
2884
2885 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2886
2887         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
2888         rvalue on the RHS if the LHS is of a non-renamable type.
2889         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
2890
2891 2010-04-13  Matthias Klose  <doko@ubuntu.com>
2892
2893         * gcc.c (cc1_options): Handle -iplugindir before processing
2894         the cc1 spec. Only add -iplugindir once.
2895         (cpp_unique_options): Add -iplugindir option if -fplugin* options
2896         found.
2897         * common.opt (iplugindir): Remove `Separate' property, initialize.
2898         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
2899         option.
2900         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
2901         (distclean): Remove plugin dir.
2902         * doc/invoke.texi: Document -iplugindir.
2903
2904 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
2905
2906         * doc/plugins.texi (Loading Plugins): Document short
2907         -fplugin=foo option.
2908         (Plugin API): Mention default_plugin_dir_name function.
2909
2910         * gcc.c (find_file_spec_function): Add new declaration.
2911         (static_spec_func): Use it for "find-file".
2912         (find_file_spec_function): Add new function.
2913         (cc1_options): Add -iplugindir option if -fplugin* options found.
2914
2915         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
2916
2917         * plugin.c (add_new_plugin): Updated comment, and handle short
2918         plugin name.
2919         (default_plugin_dir_name): Added new function.
2920
2921         * common.opt (iplugindir): New option to set the plugin directory.
2922
2923 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
2924
2925         * config/i386/i386.md (any_rotate): New code iterator.
2926         (rotate_insn): New code attribute.
2927         (rotate): Ditto.
2928         (SWIM124): New mode iterator.
2929         (<rotate_insn>ti3): New expander.
2930         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
2931         any_rotate code iterator.
2932         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
2933         using any_rotate code iterator and SWIM124 mode iterator.
2934         (ix86_rotlti3): New insn_and_split pattern.
2935         (ix86_rotrti3): Ditto.
2936         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
2937         ix86_rotl{di,ti}3 patterns.
2938         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
2939         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
2940         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
2941         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
2942         code iterator and SWI mode iterator.
2943         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
2944         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
2945         code iterator.
2946         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
2947         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
2948         (bswap rotatert splitter): Add splitter.
2949         (bswap splitter): Macroize splitter using any_rotate code iterator.
2950         Add insn predicate to split only for TARGET_USE_XCHGB or when
2951         optimizing function for size.
2952
2953 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2954
2955         * config/pa/pa.c (emit_move_sequence): Remove use of
2956         deleted variable flag_argument_noalias.
2957
2958 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2959
2960         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
2961         configurations.
2962         Add to unsupported targets list.
2963         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
2964         sparc*-sun-solaris2.[567]* from target lists.
2965         * configure: Regenerate.
2966         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
2967         removal.
2968         Remove Solaris 7 patch references.
2969         (Specific, sparc-sun-solaris2.7): Removed.
2970         (sparc-sun-solaris2*): Update Solaris 7 example.
2971         (sparc64-*-solaris2*): Likewise.
2972
2973 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2974
2975         * config.build (alpha*-dec-osf4*): Remove.
2976         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
2977         of obsolete configurations.
2978         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2979         support.
2980         * config/alpha/t-osf4: Renamed to ...
2981         * config/alpha/t-osf5: ... this.
2982         * config/alpha/osf.h: Renamed to ...
2983         * config/alpha/osf5.h: ... this.
2984         Merged old osf5.h contents.
2985         Update comments.
2986         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2987         (EXTRA_SPECS): Removed.
2988         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
2989         reflect removal of Tru64 UNIX V4.0/V5.0 support.
2990         Document that.
2991
2992 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2993
2994         * doc/contrib.texi (Contributors, Rainer Orth): Update.
2995
2996 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
2997
2998         PR/43702
2999         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
3000         __thiscall convention.
3001
3002 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3003
3004         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
3005         orig_base.
3006         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
3007
3008 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3009
3010         * function.c (assign_parms_initialize_all): Add unused attribute
3011         to fntype.
3012
3013 2010-04-12  Richard Guenther  <rguenther@suse.de>
3014
3015         * gsstruct.def (GSS_CALL): New.
3016         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
3017         * gimple.h: Include tree-ssa-alias.h.
3018         (struct gimple_statement_call): New.
3019         (union gimple_statement_struct_d): Add gimple_call member.
3020         (gimple_call_reset_alias_info): Declare.
3021         (gimple_call_use_set): New function.
3022         (gimple_call_clobber_set): Likewise.
3023         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
3024         * gimple.c (gimple_call_reset_alias_info): New function.
3025         (gimple_build_call_1): Call it.
3026         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3027         * tree-inline.c (remap_gimple_stmt): Likewise.
3028         (expand_call_inline): Remove callused handling.
3029         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
3030         * tree-dfa.c (dump_variable): Likewise.
3031         * tree-parloops.c (parallelize_loops): Likewise.
3032         * tree-ssa.c (init_tree_ssa): Likewise.
3033         (delete_tree_ssa): Likewise.
3034         * tree-flow-inline.h (is_call_used): Remove.
3035         * tree-flow.h (struct gimple_df): Remove callused member.
3036         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
3037         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
3038         (ref_maybe_used_by_call_p_1): Simplify.
3039         (call_may_clobber_ref_p_1): Likewise.
3040         * tree-ssa-structalias.c (compute_points_to_sets): Set
3041         the call stmt used and clobbered sets.
3042         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
3043         (find_tail_calls): Verify the tail call.
3044
3045 2010-04-12  Richard Guenther  <rguenther@suse.de>
3046
3047         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
3048         single-iteration always-inline inlining.
3049         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
3050         (cgraph_decide_inlining): Do not handle always-inline specially.
3051         (try_inline): Remove always-inline cycle detection special case.
3052         Do not recurse on always-inlines.
3053         (cgraph_early_inlining): Do not iterate if not optimizing.
3054         (cgraph_gate_early_inlining): remove.
3055         (pass_early_inline): Run unconditionally.
3056         (gate_cgraph_decide_inlining): New function.
3057         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
3058         not inlining or optimizing.
3059         (cgraph_decide_inlining_of_small_functions): Also consider
3060         always-inline functions.
3061         (cgraph_default_inline_p): Return true for nodes which should
3062         disregard inline limits.
3063         (estimate_function_body_sizes): Assume zero size and time for
3064         nodes which are marked as disregarding inline limits.
3065         (cgraph_decide_recursive_inlining): Do not perform recursive
3066         inlining on always-inline nodes.
3067
3068 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
3069
3070         PR bootstrap/43699
3071         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
3072         for exprs satisfying handled_component_p.
3073
3074 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3075
3076         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
3077         non-constant aggregate elements.
3078
3079         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
3080         is a real initialization.
3081
3082 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
3083
3084         PR c/36774
3085         * c-decl.c (start_function): Move forward check for nested function.
3086
3087 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3088
3089         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
3090         * config/sh/sh.c: Include reload.h.
3091         (sh_legitimize_reload_address): New.
3092         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
3093         sh_legitimize_reload_address.
3094
3095 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3096
3097         * config/sh/sh.md (*movqi_pop): New insn pattern.
3098         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
3099
3100 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3101
3102         * config/i386/i386.md (any_shiftrt): New code iterator.
3103         (shiftrt_insn): New code attribute.
3104         (shiftrt): Ditto.
3105         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
3106         using any_shiftrt code iterator.
3107         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
3108         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
3109         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
3110         pattern from corresponding peephole2 patterns.
3111         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
3112         using any_shiftrt code iterator.
3113         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
3114         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
3115         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
3116         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
3117         *{ashr,lshr}<mode>3_cmp_zext.
3118         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
3119
3120 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3121
3122         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
3123         scratch register.
3124         (*lshr<mode>3_cconly): Ditto.
3125
3126 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3127
3128         * config/i386/i386.md (lshr<mode>3): Macroize expander from
3129         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3130         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3131         pattern from *lshr{di,ti}3_1 and corresponding splitters using
3132         DWI mode iterator.
3133         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3134         from corresponding peephole2 patterns.
3135         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
3136         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
3137         and *lshrdi3_1_rex64 using SWI mode iterator.
3138         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
3139         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
3140         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
3141         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
3142         and *lshrdi3_cmp_rex64 using SWI mode iterator.
3143         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
3144         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
3145         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
3146         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
3147         SWI mode iterator.
3148
3149 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
3150
3151         * config/i386/i386.md (ashr<mode>3): Macroize expander from
3152         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3153         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3154         pattern from *ashr{di,ti}3_1 and corresponding splitters using
3155         DWI mode iterator.
3156         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3157         from corresponding peephole2 patterns.
3158         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
3159         (ashrsi3_cvt): Rename from ashrsi3_31.
3160         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
3161         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
3162         and x86_64_shift_adj_3 using SWI48 mode iterator.
3163         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
3164         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
3165         and *ashrdi3_1_rex64 using SWI mode iterator.
3166         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
3167         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
3168         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
3169         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
3170         and *ashrdi3_cmp_rex64 using SWI mode iterator.
3171         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3172         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3173         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3174         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3175         SWI mode iterator.
3176         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3177         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3178         x86_shift<mode>_adj_3 expanders.
3179
3180 2010-04-10  Wei Guozhi  <carrot@google.com>
3181
3182         PR target/42601
3183         * config/arm/arm.c (arm_pic_static_addr): New function.
3184         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3185         a static symbol.
3186         (arm_output_addr_const_extra): Output expression for new pattern.
3187         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3188
3189 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3190
3191         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3192         not enabled.
3193
3194         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3195         * web.c: Include "insn-config.h" and "recog.h".
3196         (union_match_dups): New function.
3197         (web_main): Call it.
3198         (union_defs): Don't try to recognize match_dups.
3199
3200         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3201         if doing so would replace the entire pattern.
3202
3203 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3204
3205         PR target/43707
3206         PR target/43709
3207         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3208         and splitter pattern.  Change splitter operand 1 predicate to
3209         nonmemory_operand.
3210
3211 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3212
3213         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3214         lattices are addresses of CONST_DECLs with the same initial value.
3215         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3216         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3217
3218 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3219             Bernd Schmidt  <bernds@codesourcery.com>
3220
3221         * loop-invariant.c (replace_uses): New static function.
3222         (move_invariant_reg): Use it to ensure we can replace the uses.
3223
3224 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3225
3226         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3227         function template.
3228         (picochip_override_options): Enable section anchors only above -O1.
3229         (picochip_reorg): Fixed a couple of build warnings.
3230
3231 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3232
3233         * configure.ac (plugin -rdynamic test): Log result.
3234         * configure: Regenerate.
3235         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3236         (RDYNAMIC_SPEC): Define.
3237         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3238
3239 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3240
3241         * configure.ac: Determine Sun ld version numbers.
3242         (comdat_group): Restrict GNU ld version checks to gld.
3243         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3244         (enable_comdat): Support --enable-comdat.
3245         * configure: Regenerate.
3246         * doc/install.texi (Configuration): Document --enable-comdat.
3247
3248 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3249
3250         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3251         * config/sol2-gld.h: ... here.
3252         * config.gcc (sparc*-*-solaris2*): Reflect this.
3253         (i[34567]86-*-solaris2*): Use it.
3254
3255 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3256
3257         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3258         setup_clocks_p.
3259         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3260
3261 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3262
3263         PR 42965
3264         * diagnostic.c (diagnostic_initialize): Initialize
3265         some_warnings_are_errors.
3266         (diagnostic_finish): New.
3267         (diagnostic_action_after_output): Call it before exiting.
3268         (diagnostic_report_diagnostic): Do not print message here. Set
3269         some_warnings_are_errors.
3270         * diagnostic.h (diagnostic_context): Delete
3271         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3272         (diagnostic_finish): Declare.
3273         * toplev.c (toplev_main): Call it before exit.
3274
3275 2010-04-09  Jason Merrill  <jason@redhat.com>
3276
3277         PR c++/42623
3278         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3279         for incomplete type.
3280
3281         PR c++/41788
3282         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3283         based on a warning flag.
3284
3285 2010-04-09  Richard Guenther  <rguenther@suse.de>
3286
3287         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3288
3289 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3290
3291         PR bootstrap/43684
3292         * varasm.c (default_assemble_visibility): Wrap vars that are
3293         set, but unused, by targets without GAS.
3294         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3295         Remove set, but unused, vars.
3296         (rs6000_legitimize_tls_address): Likewise.
3297         (altivec_expand_dst_builtin): Likewise.
3298         * config/darwin.c (machopic_classify_symbol): Likewise.
3299         (machopic_indirection_name): Likewise.
3300
3301 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3302
3303         * config/i386/i386.md (DWI): New mode iterator.
3304         (S): New mode attribute.
3305         (shift_operand): Ditto.
3306         (shift_immediate_operand): Ditto.
3307         (ashl_input_operand): Ditto.
3308         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3309         using SDWIM mode iterator.
3310         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3311         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3312         DWI mode iterator.
3313         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3314         from corresponding peephole2 patterns.
3315         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3316         and x86_64_shift_adj_1 using SWI48 mode iterator.
3317         (x86_shift<mode>_adj_2): Ditto.
3318         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3319         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3320         using SWI48 mode iterator.
3321         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3322         *ashldi3_cmp_rex64 using SWI mode iterator.
3323         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3324         *ashldi3_cconly_rex64 using SWI mode iterator.
3325         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3326         x86_shift<mode>_adj_{1,2}.
3327         (ix86_split_ashr): Ditto.
3328         (ix86_split_lshr): Ditto.
3329
3330 2010-04-09  Richard Guenther  <rguenther@suse.de>
3331
3332         * target.h (builtin_conversion): Pass in input and output types.
3333         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3334         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3335         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3336         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3337
3338         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3339         Handle AVX modes.
3340         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3341
3342 2010-04-09  Richard Guenther  <rguenther@suse.de>
3343
3344         PR target/43152
3345         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3346
3347 2010-04-09  Richard Guenther  <rguenther@suse.de>
3348
3349         * tree-vectorizer.h (struct _stmt_vec_info): Document
3350         that vectype is the type of the LHS.
3351         (supportable_widening_operation, supportable_narrowing_operation):
3352         Get both input and output vector types as arguments.
3353         (vect_is_simple_use_1): Declare.
3354         (get_same_sized_vectype): Likewise.
3355         * tree-vect-loop.c (vect_determine_vectorization_factor):
3356         Set STMT_VINFO_VECTYPE to the vector type of the def.
3357         (vectorizable_reduction): Adjust.
3358         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3359         Adjust.  Specify the output vector type.
3360         (vect_pattern_recog_1): Adjust.
3361         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3362         (vectorizable_call): Adjust.
3363         (vectorizable_conversion): Likewise.
3364         (vectorizable_operation): Likewise.
3365         (vectorizable_type_demotion): Likewise.
3366         (vectorizable_type_promotion): Likewise.
3367         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3368         the def.
3369         (vect_is_simple_use_1): New function.
3370         (supportable_widening_operation): Get both input and output
3371         vector types.
3372         (supportable_narrowing_operation): Likewise.
3373         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3374
3375 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3376
3377         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3378         __thiscall and _thiscall as predefined macros.
3379         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3380         thiscall attribute handling.
3381         (ix86_comp_type_attributes): Likewise.
3382         (ix86_function_regparm): Likewise.
3383         (ix86_return_pops_args): Likewise.
3384         (init_cumulative_args): Likewise.
3385         (find_drap_reg): Likewise.
3386         (ix86_static_chain): Likewise.
3387         (x86_this_parameter): Likewise.
3388         (x86_output_mi_thunk): Likewise.
3389         (ix86_attribute_table): Add description for thiscall attribute.
3390         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3391         * doc/extend.texi: Add documentation for thiscall.
3392
3393 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3394
3395         PR c++/28584
3396         * c.opt (Wint-to-pointer-cast): Available in C++.
3397         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3398
3399 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3400
3401         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3402         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3403         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3404         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3405         function type instead.  Reorder and simplify checks.
3406
3407         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3408
3409 2010-04-08  Jing Yu  <jingyu@google.com>
3410             Zdenek Dvorak  <ook@ucw.cz>
3411
3412         PR tree-optimization/42720
3413         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
3414         loop unswitch conditions here from ...
3415         (tree_unswitch_single_loop): ... here.
3416
3417 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3418
3419         * tree-if-conv.c: Fix comments and simplify logic.
3420
3421 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3422
3423         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
3424         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
3425         (main_tree_if_conversion): Update call to tree_if_conversion.
3426
3427 2010-04-08  Manuel López-Ibáñez  <m