OSDN Git Service

gcc/fortran/:
[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  <manu@gcc.gnu.org>
3428
3429         PR 42485
3430         * doc/invoke.texi (-b,-V): Delete.
3431         * doc/tm.texi: Do not mention -b.
3432         * gcc.c (display_help): Delete -b and -V.
3433         (process_command): Delete -b and -V.
3434         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
3435
3436 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
3437             Wolfgang Gellerich  <gellerich@de.ibm.com>
3438
3439         Implement target hook for loop unrolling
3440         * target.h (loop_unroll_adjust): Add a new target hook function.
3441         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
3442         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
3443         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
3444         (s390_loop_unroll_adjust): Implement the new target hook for s390.
3445         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
3446         target hook.
3447         (decide_unroll_stupid): Likewise.
3448
3449 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3450
3451         PR target/43643
3452         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
3453
3454 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3455
3456         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
3457         (Specific, *-*-solaris2*): Likewise.
3458         Don't prefer Sun as over GNU as.
3459
3460 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
3461
3462         * config/s390/s390.c (override_options): Adjust the z10
3463           defaults for max-unroll-times, max-completely-peeled-insns
3464           and max-completely-peel-times.
3465
3466 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3467
3468         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
3469         instructions for z10.
3470         (s390_expand_setmem): Likewise.
3471         (s390_expand_cmpmem): Likewise.
3472
3473 2010-04-08  Richard Guenther  <rguenther@suse.de>
3474
3475         PR tree-optimization/43679
3476         * tree-ssa-pre.c (eliminate): Only propagate copies.
3477
3478 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3479
3480         PR bootstrap/43681
3481         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
3482         set but not used variable warning.
3483
3484 2010-04-08  Wei Guozhi  <carrot@google.com>
3485
3486         PR target/41653
3487         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
3488         (arm_size_rtx_costs): Call the new function when optimized for size.
3489
3490 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3491
3492         PR debug/43670
3493         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
3494         op0 is not a MEM, just return NULL instead of assertion
3495         failure.
3496         (discover_nonconstant_array_refs): Don't walk debug stmts.
3497
3498 2010-04-08  Doug Kwan  <dougkwan@google.com>
3499
3500         * configure.ac: Recognize gold and do not use its version number
3501         to test ld features.
3502         * configure: Regenerate.
3503
3504 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
3505
3506         PR middle-end/40815
3507         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
3508         (negate_value): Move code to push elements to broken_up_substracts ...
3509         (eliminate_plus_minus_pair): ... here.  Push operands that have no
3510         negative pair to plus_negates.
3511         (repropagate_negates, init_reassoc, fini_reassoc): Update.
3512
3513 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3514
3515         * doc/install.texi (Configuration): Move description of
3516         --enable-lto, --with-libelf*, --enable-gold from Java section to
3517         general section.
3518
3519         * doc/generic.texi (Working with declarations)
3520         (Function Properties, C and C++ Trees): Fix typos.
3521         * doc/sourcebuild.texi (Top Level): Likewise.
3522
3523 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3524
3525         PR c/18624
3526         * tree.h (DECL_READ_P): Define.
3527         (struct tree_decl_common): Add decl_read_flag.
3528         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
3529         a set but not used warning.
3530         (merge_decls): Merge DECL_READ_P flag.
3531         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
3532         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3533         * c-common.c (handle_used_attribute, handle_unused_attribute):
3534         Likewise.
3535         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
3536         New prototypes.
3537         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
3538         New functions.
3539         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
3540         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
3541         c_parser_binary_expression, c_parser_cast_expression,
3542         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
3543         Call default_function_array_read_conversion instead of
3544         default_function_array_conversion where needed.
3545         (c_parser_unary_expression, c_parser_conditional_expression,
3546         c_parser_postfix_expression_after_primary, c_parser_initelt):
3547         Likewise.  Call mark_exp_read where needed.
3548         (c_parser_statement_after_labels, c_parser_asm_operands,
3549         c_parser_typeof_specifier, c_parser_sizeof_expression,
3550         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
3551         where needed.
3552         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
3553         New.
3554         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
3555         (warn_unused_but_set_parameter): Default to warn_unused
3556         && extra_warnings.
3557         * doc/invoke.texi: Document -Wunused-but-set-variable and
3558         -Wunused-but-set-parameter.
3559
3560         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
3561         used count variable.
3562         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
3563         when operandN variables aren't used in the body of the expander
3564         or splitter.
3565         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
3566         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
3567         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
3568         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
3569         FOR_EACH_IMM_USE_ON_STMT): Likewise.
3570         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
3571         * tree.c (PROCESS_ARG): Likewise.
3572
3573 2010-04-07  Simon Baldwin  <simonb@google.com>
3574
3575         * diagnostic.h (diagnostic_override_option_index): New macro to
3576         set a diagnostic's option_index.
3577         * c-tree.h (c_cpp_error): Add warning reason argument.
3578         * opts.c (_warning_as_error_callback): New.
3579         (register_warning_as_error_callback): Store callback for
3580         warnings enabled via enable_warning_as_error.
3581         (enable_warning_as_error): Call callback, minor code tidy.
3582         * opts.h (register_warning_as_error_callback): Declare.
3583         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
3584         response to -Werror=.
3585         (c_common_init_options): Register warning_as_error_callback in opts.c.
3586         * common.opt: Add -Wno-cpp option.
3587         * c-common.c (struct reason_option_codes_t): Map cpp warning
3588         reason codes to gcc option indexes.
3589         * (c_option_controlling_cpp_error): New function, lookup the gcc
3590         option index for a cpp warning reason code.
3591         * (c_cpp_error): Add warning reason argument, call
3592         c_option_controlling_cpp_error for diagnostic_override_option_index.
3593         * doc/invoke.texi: Document -Wno-cpp.
3594
3595 2010-04-07  Richard Guenther  <rguenther@suse.de>
3596
3597         * ipa-reference.c (mark_load): Use get_base_address.
3598         (mark_store): Likewise.
3599
3600         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
3601         inserting GIMPLE_NOPs into the IL.
3602         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3603         Explicitly strip handled components and indirect references.
3604
3605         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3606         folding address expressions.
3607         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3608         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3609         operand_equal_p to compare decls.
3610         (ptr_deref_may_alias_decl_p): Likewise.
3611         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3612         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3613         Handle reversed comparison ops.
3614         * tree-sra.c (asm_visit_addr): Use get_base_address.
3615         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3616         * ipa-reference.c (mark_address): Use get_base_address.
3617
3618 2010-04-07  Richard Guenther  <rguenther@suse.de>
3619
3620         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3621         Propagate constants everywhere.
3622
3623 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3624
3625         PR debug/43516
3626         * tree.c (MAX_INT_CACHED_PREC): Define.
3627         (nonstandard_integer_type_cache): New array.
3628         (build_nonstandard_integer_type): Cache results for precision
3629         <= MAX_INT_CACHED_PREC.
3630
3631 2010-04-07  Richard Guenther  <rguenther@suse.de>
3632
3633         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3634         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3635         * common.opt: Likewise.
3636         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3637         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3638         (nonoverlapping_memrefs_p): Likewise.
3639         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3640         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3641         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3642         OPT_fargument_noalias_global for backward compatibility.
3643
3644 2010-04-07  Richard Guenther  <rguenther@suse.de>
3645
3646         PR tree-optimization/43270
3647         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3648         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3649         * tree-ssa-pre.c (phi_translate_1): Adjust.
3650         (fully_constant_expression): Split out vn_reference handling to ...
3651         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3652         Fold reads from constant strings.
3653         (vn_reference_lookup): Handle fully constant references.
3654         (vn_reference_lookup_pieces): Likewise.
3655         * Makefile.in (expmed.o-warn): Add -Wno-error.
3656
3657 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3658
3659         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3660
3661 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3662
3663         PR driver/41594
3664         * gcc.c: Add -static-libstdc++ to list of recognized options.
3665
3666 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3667
3668         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3669
3670 2010-04-07  Richard Guenther  <rguenther@suse.de>
3671
3672         PR middle-end/42617
3673         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3674         bases build simple mem attributes to retain points-to information.
3675
3676 2010-04-07  Richard Guenther  <rguenther@suse.de>
3677
3678         PR middle-end/42617
3679         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3680         preserve points-to related information.
3681
3682 2010-04-07  Richard Guenther  <rguenther@suse.de>
3683
3684         PR middle-end/42617
3685         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3686         discard plain indirect references.
3687         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3688         * tree.c (tree_nop_conversion): Likewise.
3689
3690 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3691
3692         PR debug/43628
3693         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3694
3695 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3696
3697         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3698         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3699
3700 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3701
3702         * tree-if-conv.c: Fix indentation and comments.
3703
3704 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3705
3706         * tree-if-conv.c: Sort static functions in topological order.
3707
3708 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3709
3710         * tree-if-conv.c: Fix indentation and comments.
3711
3712 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3713
3714         PR middle-end/43519
3715         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3716         lang_hooks.types.type_for_size instead of
3717         build_nonstandard_integer_type.
3718         When converting an unsigned type to signed, double its precision.
3719         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3720         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3721         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3722         use lb <= ub.
3723
3724 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3725
3726         PR middle-end/43519
3727         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3728         POINTER_PLUS_EXPR for pointer types.
3729
3730 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3731
3732         PR middle-end/43519
3733         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3734         * graphite-clast-to-gimple.c: Include langhooks.h.
3735         (max_signed_precision_type): New.
3736         (max_precision_type): Takes two types as arguments.
3737         (precision_for_value): New.
3738         (precision_for_interval): New.
3739         (gcc_type_for_interval): New.
3740         (gcc_type_for_value): New.
3741         (gcc_type_for_clast_term): New.
3742         (gcc_type_for_clast_red): New.
3743         (gcc_type_for_clast_bin): New.
3744         (gcc_type_for_clast_expr): Split up into several functions.
3745         (gcc_type_for_clast_eq): Rewritten.
3746         (compute_bounds_for_level): New.
3747         (compute_type_for_level_1): New.
3748         (compute_type_for_level): New.
3749         (gcc_type_for_cloog_iv): Removed.
3750         (gcc_type_for_iv_of_clast_loop): Rewritten.
3751         (graphite_create_new_loop): Compute the lower and upper bound types
3752         with gcc_type_for_clast_expr.
3753         (graphite_create_new_loop_guard): Same.
3754         (find_cloog_iv_in_expr): Removed.
3755         (compute_cloog_iv_types_1): Removed.
3756         (compute_cloog_iv_types): Removed.
3757         (gloog): Do not call compute_cloog_iv_types.
3758         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3759         GBB_CLOOG_IV_TYPES.
3760         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3761         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3762         (GBB_CLOOG_IV_TYPES): Removed.
3763
3764 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3765
3766         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3767         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3768         (detect_commutative_reduction): Same.
3769
3770 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3771
3772         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3773         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3774         argument.
3775         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3776         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3777         (rewrite_commutative_reductions_out_of_ssa): Same.
3778         * passes.c (execute_function_todo): Call verify_ssa for every pass
3779         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3780         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3781         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3782         with an extra argument.
3783         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3784         verify_ssa only when the extra argument is true.
3785         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3786         with an extra argument.
3787         (tree_transform_and_unroll_loop): Same.
3788
3789 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3790
3791         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3792         for all the passes of the LNO having LOOP_CLOSED_SSA.
3793         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3794         * tree-loop-distribution.c (pass_loop_distribution): Same.
3795         * tree-pass.h (TODO_verify_loops): Removed.
3796         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3797         (pass_lim): Same.
3798         (pass_tree_unswitch): Same.
3799         (pass_predcom): Same.
3800         (pass_vectorize): Same.
3801         (pass_linear_transform): Same.
3802         (pass_graphite_transforms): Same.
3803         (pass_iv_canon): Same.
3804         (pass_complete_unroll): Same.
3805         (pass_complete_unrolli): Same.
3806         (pass_parallelize_loops): Same.
3807         (pass_loop_prefetch): Same.
3808         (pass_iv_optimize): Same.
3809
3810 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3811
3812         PR middle-end/32824
3813         * passes.c (init_optimization_passes): Move pass_lim before
3814         pass_copy_prop and pass_dce_loop.
3815
3816 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3817
3818         PR target/43667
3819         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3820         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3821         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3822         MULTI_* defines for 4 argument vpermil2p* builtins.
3823
3824 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3825
3826         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3827         * config/i386/i386.c (x86_maybe_negate_const_int): New.
3828         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
3829         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
3830         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
3831         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
3832         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
3833         Use x86_maybe_negate_const_int to output insn mnemonic.
3834         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
3835         check from instruction predicate.  Update comments.
3836         * config/i386/sync.md (sync_add<mode>): Use
3837         x86_maybe_negate_const_int to output insn mnemonic.
3838
3839 2010-04-06  Jan Hubicka  <jh@suse.cz>
3840
3841         PR tree-optimization/42906
3842         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
3843         IGNORE_SELF argument.  Set visited_control_parents for fully
3844         processed BBs.
3845         (find_obviously_necessary_stmts): Update call of
3846         mark_control_dependent_edges_necessary.
3847         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
3848
3849 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3850
3851         * config/i386/i386.md: Remove comment about 'e' and 'E'
3852         operand modifier.
3853
3854 2010-04-06  Richard Guenther  <rguenther@suse.de>
3855
3856         PR tree-optimization/43627
3857         * tree-vrp.c (extract_range_from_unary_expr): Widenings
3858         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
3859         not varying.
3860
3861 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3862
3863         * BASE-VER: Change to 4.6.0.
3864
3865         PR target/43638
3866         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
3867         handling.
3868
3869 2010-04-06  Richard Guenther  <rguenther@suse.de>
3870
3871         PR middle-end/43661
3872         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
3873
3874 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3875
3876         * doc/invoke.texi (Optimize Options): Document that LTO
3877         won't remove object access purely due to incompatible
3878         declarations.
3879
3880 2010-04-04  Matthias Klose  <doko@ubuntu.com>
3881
3882         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
3883         Initialize variable.
3884
3885 2010-04-03  Richard Guenther  <rguenther@suse.de>
3886
3887         PR middle-end/42509
3888         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
3889         require a non-NULL MEM_OFFSET.
3890
3891 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
3892
3893         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
3894         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
3895         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
3896         config/alpha/predicates.md, config/arm/arm.md,
3897         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
3898         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
3899         config/darwin9.h, config/darwin.c, config/darwin.h,
3900         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
3901         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
3902         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
3903         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
3904         config/mips/mips.md, config/mn10300/mn10300.c,
3905         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
3906         config/rs6000/aix.h, config/rs6000/dfp.md,
3907         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
3908         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
3909         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
3910         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
3911         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
3912         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
3913         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
3914         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
3915         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
3916         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
3917         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
3918         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
3919         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
3920         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
3921         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
3922         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
3923         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
3924         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
3925         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
3926         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
3927         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
3928         opt-functions.awk, opth-gen.awk, params.def, passes.c,
3929         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
3930         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
3931         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
3932         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
3933         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
3934         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
3935         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
3936         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3937         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
3938         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3939         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
3940         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
3941         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
3942         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
3943
3944 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3945
3946         PR other/43620
3947         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
3948         * aclocal.m4: Regenerate.
3949
3950 2010-04-02  Richard Guenther  <rguenther@suse.de>
3951
3952         PR tree-optimization/43629
3953         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
3954         if we have seen a constant value.
3955
3956 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
3957
3958         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
3959
3960 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
3961
3962         PR target/43469
3963         * arm.c (legitimize_tls_address): Adjust call to
3964         gen_tls_load_dot_plus_four.
3965         (arm_note_pic_base): New function.
3966         (arm_cannot_copy_insn_p): Use it.
3967         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
3968         constraint.
3969
3970 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3971
3972         PR bootstrap/43531
3973
3974         Revert:
3975         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3976
3977         * Makefile.in ($(out_object_file)): Depend on
3978         gt-$(basename $(notdir $(out_file))).h.
3979
3980 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
3981
3982         * config.gcc (lm32-*-rtems*): Add t-lm32.
3983
3984 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
3985
3986         * config.gcc: Add lm32-*-rtems*.
3987         * config/lm32/rtems.h: New file.
3988
3989 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
3990
3991         PR target/42609
3992         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
3993
3994 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
3995
3996         * dwarf2out.c (output_compilation_unit_header): For
3997         -gdwarf-4 use version 4 instead of version 3.
3998         (output_line_info): For version 4 and above emit additional
3999         maximum ops per insn header field.
4000         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
4001
4002         * dwarf2out.c (is_c_family, is_java): Remove.
4003         (lower_bound_default): New function.
4004         (add_bound_info, gen_descr_array_type_die): Use it.
4005
4006 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
4007
4008         PR debug/43325
4009         * dwarf2out.c (gen_variable_die): Allow debug info for variable
4010         re-declaration when it happens in a function.
4011
4012 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
4013
4014         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
4015         (cgraph_remove_function_insertion_hook): Same.
4016         (cgraph_call_function_insertion_hooks): Same.
4017
4018 2010-04-01  Richard Guenther  <rguenther@suse.de>
4019
4020         PR middle-end/43614
4021         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
4022         and TREE_THIS_VOLATILE.
4023         (copy_ref_info): Likewise.
4024         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
4025         * tree.c (build6_stat): Ignore side-effects of all but arg5
4026         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
4027         TARGET_MEM_REF.
4028
4029 2010-04-01  Richard Guenther  <rguenther@suse.de>
4030
4031         PR tree-optimization/43607
4032         * ipa-type-escape.c (check_call): Do not access non-existing
4033         arguments.
4034
4035 2010-04-01  Richard Guenther  <rguenther@suse.de>
4036
4037         PR middle-end/43602
4038         Revert
4039         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4040                     Jack Howarth <howarth@bromo.med.uc.edu>
4041
4042         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4043         variables TLS.
4044
4045 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4046
4047         * doc/install.texi (Prerequisites): Document libelf usability on
4048         IRIX 5/6 and Solaris 2.
4049         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
4050         Update GNU as, GNU ld requirements.
4051         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
4052         Document Sun Studio compiler download.
4053         Update and simplify as, ld recommendations.
4054         (Specific, *-*-solaris2.7): Note obsoletion, removal.
4055
4056 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4057
4058         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
4059         with_tune_32 to pentium4.
4060
4061 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
4062
4063         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
4064
4065 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4066
4067         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
4068         obsoletion, removal.
4069         Update IDO URL.
4070         Document GNU as requirement.
4071         Update configure requirements.
4072         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
4073         Recomment IRIX 6.5.18+.
4074         Document IDF/IDL requirement.
4075         Document GNU as requirement.
4076         Document GNU ld bootstrap failure.
4077         Remove freeware.sgi.com reference.
4078
4079 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4080
4081         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
4082         UNIX V4.0, V5.0 obsoletion, removal.
4083         Remove --with-gc=simple reference.
4084         Update VM requirements during bootstrap.
4085         Remove -oldas bootstrap description.
4086         Update binutils reference.
4087         Remove comparison failure note.
4088
4089 2010-03-31  Richard Guenther  <rguenther@suse.de>
4090             Zdenek Dvorak  <ook@ucw.cz>
4091             Sebastian Pop  <sebastian.pop@amd.com>
4092
4093         PR middle-end/43464
4094         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
4095         with multiple arguments.
4096         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
4097
4098 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4099
4100         * graphite-dependences.c (print_pddr): Call print_pdr with an
4101         extra argument.
4102         * graphite-poly.c (debug_pdr): Add an extra argument for the
4103         verbosity level.
4104         (print_pdr): Same.
4105         (print_pbb_domain): Same.
4106         (print_pbb): Same.
4107         (print_scop_context): Same.
4108         (print_scop): Same.
4109         (print_cloog): Same.
4110         (debug_pbb_domain): Same.
4111         (debug_pbb): Same.
4112         (print_pdrs): Same.
4113         (debug_pdrs): Same.
4114         (debug_scop_context): Same.
4115         (debug_scop): Same.
4116         (debug_cloog): Same.
4117         (print_scop_params): Same.
4118         (debug_scop_params): Same.
4119         (print_iteration_domain): Same.
4120         (print_iteration_domains): Same.
4121         (debug_iteration_domain): Same.
4122         (debug_iteration_domains): Same.
4123         (print_scattering_function): Same.
4124         (print_scattering_functions): Same.
4125         (debug_scattering_function): Same.
4126         (debug_scattering_functions): Same.
4127         * graphite-poly.h (debug_pdr): Update declaration.
4128         (print_pdr): Same.
4129         (print_pbb_domain): Same.
4130         (print_pbb): Same.
4131         (print_scop_context): Same.
4132         (print_scop): Same.
4133         (print_cloog): Same.
4134         (debug_pbb_domain): Same.
4135         (debug_pbb): Same.
4136         (print_pdrs): Same.
4137         (debug_pdrs): Same.
4138         (debug_scop_context): Same.
4139         (debug_scop): Same.
4140         (debug_cloog): Same.
4141         (print_scop_params): Same.
4142         (debug_scop_params): Same.
4143         (print_iteration_domain): Same.
4144         (print_iteration_domains): Same.
4145         (debug_iteration_domain): Same.
4146         (debug_iteration_domains): Same.
4147         (print_scattering_function): Same.
4148         (print_scattering_functions): Same.
4149         (debug_scattering_function): Same.
4150         (debug_scattering_functions): Same.
4151
4152 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4153
4154         * graphite-poly.c (print_scattering_function_1): New.
4155         (print_scattering_function): Call it.
4156         (print_scop_params): Remove spaces at the end of lines.
4157         (print_cloog): New.
4158         (debug_cloog): New.
4159         * graphite-poly.h (print_cloog): Declared.
4160         (debug_cloog): Declared.
4161
4162 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4163
4164         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
4165         in loop->header.
4166         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
4167         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
4168         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
4169         to switch between adding the IV bump in loop->latch or in loop->header.
4170
4171 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4172
4173         * graphite-poly.c (print_scattering_function): Pretty print following
4174         the scoplib format.
4175         (print_pdr): Same.
4176         (print_pbb_domain): Same.
4177         (dump_gbb_cases): Same.
4178         (dump_gbb_conditions): Same.
4179         (print_pdrs): Same.
4180         (print_pbb): Same.
4181         (print_scop_params): Same.
4182         (print_scop_context): Same.
4183         (print_scop): Same.
4184         (print_pbb_body): New.
4185         (lst_indent_to): New.
4186         (print_lst): Start new lines with a #.
4187         * graphite-poly.h (pbb_bb): New.
4188         (pbb_index): Use pbb_bb.
4189         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
4190         disjuncts.
4191         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
4192
4193 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4194
4195         * dwarf2out.c (size_of_die): For -gdwarf-4 use
4196         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
4197         and 0 instead of 1 for dw_val_class_flag.
4198         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
4199         dw_val_class_range_list, dw_val_class_loc_list,
4200         dw_val_class_lineptr and dw_val_class_macptr, use
4201         DW_FORM_flag_present for dw_val_class_flag and
4202         DW_FORM_exprloc for dw_val_class_loc.
4203         (output_die): For -gdwarf-4 print dw_val_class_loc
4204         size as uleb128 instead of 1 or 2 bytes and don't print
4205         anything for dw_val_class_flag.
4206
4207         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
4208         instead of cselib_lookup following by tweaking locs->setting_insn.
4209
4210         PR bootstrap/43596
4211         * cselib.c (cselib_process_insn): Clear cselib_current_insn
4212         even before returning from label, setjmp call or volatile asm
4213         handling.
4214
4215 2010-03-31  Richard Guenther  <rguenther@suse.de>
4216
4217         PR middle-end/43600
4218         * cgraphunit.c (cgraph_output_in_order): Do not allocate
4219         temporary data on stack.
4220
4221 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4222
4223         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
4224         (PUSHSECTION_ASM_OP): Remove.
4225         (POPSECTION_ASM_OP): Remove.
4226         (PUSHSECTION_FORMAT): Remove.
4227         * config/sol2.h (PUSHSECTION_FORMAT): Define.
4228         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
4229         * config/sol2.c (solaris_output_init_fini): Use it.
4230
4231 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4232
4233         PR 43574
4234         * opt-functions.awk (var_type_struct): Use signed char type
4235         for simple variables.
4236
4237 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4238
4239         * config/sol2.c: Include output.h.
4240         (solaris_assemble_visibility): New function.
4241         * config/t-sol2 (sol2.o): Add output.h dependency.
4242         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
4243         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
4244         Redefine.
4245
4246 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4247
4248         PR target/43580
4249         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
4250         V2SImode or XFmode on PRE_DEC.
4251
4252         PR debug/43557
4253         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
4254         BLKmode.
4255
4256 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4257
4258         PR 43562
4259         * reload.h (caller_save_initialized_p): Declare.
4260         * toplev.c (backend_init_target): Don't call
4261         init_caller_save but set caller_save_initialized_p to false.
4262         * caller-save.c (caller_save_initialized_p): Define.
4263         (init_caller_save): Check caller_save_initialized_p.
4264         * ira.c (ira): Call init_caller_save if flag_caller_saves.
4265
4266 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4267
4268         PR target/39048
4269         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
4270         and soft-fp/t-softfp to tmake_file.
4271         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
4272         (LIBGCC2_TF_CEXT): Define.
4273         (TF_SIZE): Define.
4274
4275 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
4276
4277         PR debug/42977
4278         * cselib.c (n_useless_values): Document handling of debug locs.
4279         (n_useless_debug_values, n_debug_values): New variables.
4280         (new_elt_loc_list): Don't add to debug values, keep count.
4281         (promote_debug_loc): New.
4282         (cselib_reset_table): Zero new variables.
4283         (entry_and_rtx_equal_p): Promote debug locs.
4284         (discard_useless_locs): Increment n_useless_debug_values for
4285         debug values.
4286         (remove_useless_values): Adjust n_useless_values and n_debug_values
4287         with n_useless_debug_values.
4288         (add_mem_for_addr): Promote debug locs.
4289         (cselib_lookup_mem): Likewise.
4290         (cselib_lookup_addr): Renamed to...
4291         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
4292         (cselib_log_lookup): ... this.  Turn into...
4293         (cselib_lookup_addr): ... new wrapper.
4294         (cselib_lookup_from_insn): New.
4295         (cselib_invalidate_regno): Increment n_useless_debug_values for
4296         debug values.
4297         (cselib_invalidate_mem): Likewise.
4298         (cselib_process_insn): Take n_deleted and n_debug_values into
4299         account to guard remove_useless_value call.
4300         (cselib_finish): Zero n_useless_debug_values.
4301         * cselib.h (cselib_lookup_from_insn): Declare.
4302         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
4303         (sched_analyze_2): Likewise.
4304
4305 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
4306
4307         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
4308         functions.
4309         (adjust_mems): Replace narrowing SUBREG of expression containing
4310         just PLUS, MINUS, MULT and ASHIFT of registers and constants
4311         with operations in the narrower mode.
4312
4313         PR debug/43593
4314         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
4315         regs_invalidated_by_call instead all call_used_reg_set registers.
4316
4317 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4318
4319         PR middle-end/43430
4320         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
4321         pointer comparisons with types_compatible_p.
4322         * tree-vect-stmts.c (vectorizable_call): Same.
4323         (vectorizable_condition): Same.
4324
4325 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4326
4327         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
4328         stack check if the mask would be zero.
4329
4330 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4331             Jack Howarth <howarth@bromo.med.uc.edu>
4332
4333         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4334         variables TLS.
4335
4336 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
4337
4338         PR other/25232
4339         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
4340         and __unordtf2.
4341         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
4342         Include ___unordxf2 and ___unordtf2.
4343         * config/i386/libgcc-glibc.ver: Do not define inheritance from
4344         GCC_4.4.0 here.
4345
4346 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
4347
4348         * config/lm32/t-lm32: New file.
4349         * config.gcc: Use the above file when targetting lm32.
4350
4351 2010-03-28  Duncan Sands  <baldrick@free.fr>
4352
4353         * Makefile.in (PLUGIN_HEADERS): Add except.h.
4354
4355 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4356
4357         PR middle-end/43431
4358         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
4359         Improve vectorization cost model diagnostic.
4360
4361 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4362
4363         PR middle-end/43436
4364         * tree-vect-data-refs.c (vect_analyze_data_refs): When
4365         compute_data_dependences_for_loop returns false, early exit
4366         and output an extra diagnostic for the failed data reference
4367         analysis.
4368
4369 2010-03-29  Richard Guenther  <rguenther@suse.de>
4370
4371         PR tree-optimization/43560
4372         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
4373         (can_sm_ref_p): Treat stores to readonly locations as trapping.
4374
4375 2010-03-29  Jie Zhang  <jie@codesourcery.com>
4376
4377         PR 43564
4378         * toplev.c (process_options): Set optimization_default_node
4379         and optimization_current_node.
4380         * opts.c (decode_options): Don't set optimization_default_node
4381         and optimization_current_node.
4382
4383 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
4384
4385         * config/rtems.h: Abandon -qrtems_debug.
4386
4387 2010-03-28  Jan Hubicka  <jh@suse.cz>
4388
4389         PR tree-optimization/43505
4390         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
4391         map should not be copied.
4392
4393 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4394
4395         PR middle-end/41674
4396         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
4397         cdtors, set DECL_PRESERVE_P.
4398         * ipa.c (cgraph_externally_visible_p): Return true if declaration
4399         should be preseved.
4400
4401 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
4402
4403         PR tree-optimization/43528
4404         * stor-layout.c (place_field): Check that constant fits into
4405         unsigned HWI when skipping calculation of MS bitfield layout.
4406
4407 2010-03-27  Jan Hubicka  <jh@suse.cz>
4408
4409         PR middle-end/43391
4410         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
4411         notice_global_symbol work.
4412
4413 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
4414
4415         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
4416         instead of dwarf2out_decl.
4417         (struct var_loc_node): Remove section_label field.
4418         (dwarf2out_function_decl): New function.
4419         (dwarf2out_var_location): Don't set section_label field.
4420         (dwarf2out_begin_function): Don't empty decl_loc_table here.
4421
4422 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4423
4424         PR tree-optimization/43544
4425         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
4426         First argument for builtin vectorized function hook is now a
4427         tree to be able to distinguish between machine specific and
4428         standard builtins.
4429         * targhooks.c (default_builtin_vectorized_function): Ditto.
4430         * targhooks.h (default_builtin_vectorized_function): Ditto.
4431         * target.h (struct gcc_target): Ditto.
4432         * tree-vect-stmts.c (vectorizable_function): Ditto.
4433         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
4434         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
4435         Ditto.
4436
4437 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
4438
4439         PR c/43381
4440         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
4441         nested binding iff it is a FUNCTION_DECL.
4442         (store_parm_decls_newstyle): Pass nested=true to bind for
4443         FUNCTION_DECLs amongst parameters.
4444
4445 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4446
4447         * var-tracking.c (vt_expand_loc_callback): Don't run
4448         cselib_expand_value_rtx_cb in dummy mode if
4449         cselib_dummy_expand_value_rtx_cb returned false.
4450
4451         * var-tracking.c (emit_note_insn_var_location): For one part
4452         notes with offset 0, don't add EXPR_LIST around the location.
4453         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
4454         add_location_or_const_value_attribute): Adjust for that change.
4455
4456         PR debug/43540
4457         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
4458         into first operand and location into second.
4459         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
4460         dw_cfi_oprnd_loc for DW_CFA_expression.
4461         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
4462         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
4463         assume first argument is regnum and second argument is location.
4464
4465 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4466
4467         PR target/42113
4468         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
4469         of scratch register to DImode.  Split to DImode comparison operator.
4470         Use SImode subreg of scratch register in the multiplication.
4471         (*cmp_sadd_sidi): Ditto.
4472         (*cmp_ssub_si): Ditto.
4473         (*cmp_ssub_sidi): Ditto.
4474
4475 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4476
4477         PR target/43524
4478         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
4479         Remove invalid assert and wrong comment.
4480
4481 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4482
4483         PR debug/43516
4484         * flags.h (final_insns_dump_p): New extern.
4485         * final.c (final_insns_dump_p): New variable.
4486         (rest_of_clean_state): Set it before -fdump-final-insns=
4487         dumping, clear afterwards.
4488         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
4489         MEM_ALIAS_SET on MEMs.
4490
4491 2010-03-26  David S. Miller  <davem@davemloft.net>
4492
4493         * configure.ac: Fix sparc GOTDATA_OP bug check.
4494         * configure: Rebuild.
4495
4496 2010-03-26  Alan Modra  <amodra@gmail.com>
4497
4498         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
4499
4500 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4501
4502         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
4503         TLS_SECTION_ASM_FLAG.
4504
4505 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
4506
4507         PR bootstrap/43511
4508         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
4509         Clear first_function_block_is_cold.
4510
4511         PR c/43385
4512         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
4513         argument if the argument is truth_value_p.
4514
4515 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4516
4517         * config/rs6000/constraints.md: Update copyright year for my changes.
4518
4519         PR target/43484
4520         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
4521         used in reg+reg addressing, swap registers.
4522
4523 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4524
4525         PR debug/43293
4526         * target.h (struct gcc_target): Add code_end hook.
4527         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
4528         if not yet defined.
4529         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
4530         * toplev.c (compile_file): Call targetm.asm_out.code_end
4531         hook before unwind info/debug info output.
4532         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
4533         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
4534         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4535         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
4536         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4537         * config/i386/i386.c (ix86_file_end): Renamed to...
4538         (ix86_code_end): ... this.  Make static.  Don't call
4539         file_end_indicate_exec_stack.  Emit unwind info using
4540         final_start_function/final_end_function.
4541         (darwin_x86_file_end): Remove.
4542         (TARGET_ASM_CODE_END): Define.
4543         * config/i386/i386.h (TARGET_ASM_FILE_END,
4544         NEED_INDICATE_EXEC_STACK): Don't define.
4545         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
4546         (TARGET_ASM_FILE_END): Define to darwin_file_end.
4547         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
4548         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
4549
4550         PR target/43498
4551         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
4552         at the beginning and final_end_function at the end.
4553         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
4554
4555 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4556
4557         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
4558         and Sun as TLS syntax.
4559         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
4560         * configure: Regenerate.
4561         * config.in: Regenerate.
4562         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
4563         (default_elf_asm_named_section): Use it.
4564         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
4565         (i386_output_dwarf_dtprel): Likewise.
4566         (output_addr_const_extra): Likewise.
4567         (output_pic_addr_const): Lowercase @GOTTPOFF.
4568         (output_addr_const_extra): Likewise.
4569         (output_pic_addr_const): Lowercase @GOTNTPOFF.
4570         (output_addr_const_extra): Likewise.
4571         (output_pic_addr_const): Lowercase @INDNTPOFF.
4572         (output_addr_const_extra): Likewise.
4573         (output_pic_addr_const): Lowercase @NTPOFF.
4574         (output_addr_const_extra): Likewise.
4575         (output_pic_addr_const): Lowercase @TPOFF.
4576         (output_addr_const_extra): Likewise.
4577         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
4578         (*tls_global_dynamic_64): Likewise.
4579         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
4580         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
4581
4582         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
4583         (ASM_OUTPUT_TLS_COMMON): Use it.
4584         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
4585
4586         PR target/38118
4587         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
4588         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
4589         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
4590         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
4591         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4592         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
4593
4594 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4595
4596         * config/i386/i386.c (override_options): Don't accept
4597         -mtls-dialect=sun any longer.
4598         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
4599         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
4600         (*tls_local_dynamic_base_32_sun): Likewise.
4601         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4602
4603 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4604
4605         PR debug/43508
4606         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
4607         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
4608
4609         PR debug/43479
4610         * ira.c (adjust_cleared_regs): New function.
4611         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
4612
4613         PR debug/19192
4614         PR debug/43479
4615         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
4616         from gimple_block.
4617         * expr.c (expand_expr_real): Restore previous
4618         curr_insn_source_location and curr_insn_block after
4619         expand_expr_real_1 call.
4620         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
4621         instead of expand_expr_real_1.
4622
4623 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
4624
4625         PR rtl-optimization/43413
4626         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
4627         hard regs too.
4628
4629 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
4630
4631         PR target/43348
4632         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
4633         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
4634
4635 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
4636
4637         * config/i386/i386.c (ix86_target_string): Add -mfma.
4638         Fix a typo in comment.
4639
4640 2010-03-22  Mike Stump  <mikestump@comcast.net>
4641
4642         PR target/23071
4643         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
4644         Don't overly align based upon packed packed fields.
4645
4646 2010-03-22  Jason Merrill  <jason@redhat.com>
4647
4648         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
4649         Use () rather than [], and move before the element type.
4650
4651 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4652
4653         * doc/configfiles.texi (Configuration Files): Removed
4654         fixinc/Makefile*, intl/Makefile.*.
4655         * doc/makefile.texi: Fixed markup. Abstract from version
4656         control system used.
4657         (Makefile): Removed obsolete gcc/java/parse.y example.
4658         * doc/sourcebuild.texi: Likewise.
4659         (Top Level): Added config, gnattools, libdecnumber, libgcc,
4660         libgomp, libssp.  Removed fastjar.
4661         (Miscellaneous Docs): Clarify location.
4662         Added COPYING3, COPYING3.LIB.
4663         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
4664
4665 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4666
4667         PR target/38085
4668         * config/i386/i386.c (x86_function_profiler)
4669         [!NO_PROFILE_COUNTERS]: Fix typo.
4670         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
4671         instead of callq.
4672
4673 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
4674             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4675
4676         * doc/sourcebuild.texi (Test Directives): Split into six
4677         subsections, with most of the current text in new subsections
4678         Directives, Selectors, and Final Actions.
4679         (Directives): Split list of test directives into multiple
4680         subsubsections.
4681         (Selectors): Describe use and syntax of selectors.
4682         (Effective-Target Keywords): Describe all existing keywords.
4683         (Add Options): Describe features for dg-add-options.
4684         (Require Support): Describe variants of dg-require-support.
4685         (Final Actions): Describe commands to use in dg-final.
4686
4687 2010-03-22  Michael Matz  <matz@suse.de>
4688
4689         PR middle-end/43475
4690         * recog.c (validate_replace_rtx_group): Replace also in
4691         REG_EQUAL and REG_EQUIV notes.
4692
4693 2010-03-22  Richard Guenther  <rguenther@suse.de>
4694
4695         PR tree-optimization/43390
4696         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
4697         sure vector extracts are type correct.
4698
4699 2010-03-22  Richard Guenther  <rguenther@suse.de>
4700
4701         PR middle-end/40106
4702         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
4703         x * sqrt (x) even when optimizing for size if the target
4704         has native support for sqrt.
4705
4706 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
4707
4708         * varasm.c (make_decl_rtl_for_debug): Also clear
4709         flag_mudflap for the duration of make_decl_rtl call.
4710
4711         PR debug/43443
4712         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
4713         locs from preserved VALUEs.
4714
4715 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4716
4717         PR middle-end/42718
4718         * pa.md (movmemsi): Set align to one if zero.
4719         (movmemdi): Likewise.
4720
4721 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
4722
4723         PR target/42321
4724         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
4725         with their corresponding prologue pushes.
4726
4727 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
4728
4729         PR target/43156
4730         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
4731         at the begining or end.
4732         (spu_expand_epilogue): Likewise.
4733
4734 2010-03-20  Richard Guenther  <rguenther@suse.de>
4735
4736         PR rtl-optimization/43438
4737         * combine.c (make_extraction): Properly zero-/sign-extend an
4738         extraction of the low part of a CONST_INT.  Also handle
4739         CONST_DOUBLE.
4740
4741 2010-03-19  Mike Stump  <mikestump@comcast.net>
4742
4743         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
4744         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
4745         (override_options): Use SUBTARGET32_DEFAULT_CPU.
4746
4747 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4748
4749         PR c/43211
4750         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
4751         an error.
4752
4753 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
4754
4755         PR rtl-optimization/42258
4756         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
4757         use that may match DEF.
4758
4759         PR target/40697
4760         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
4761         the cost of loading the constant rather than assuming
4762         COSTS_N_INSNS (1).
4763         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
4764         outer code is AND, do the same tests as the andsi3 expander and
4765         return COSTS_N_INSNS (1) if and is cheap.
4766
4767         * optabs.c (avoid_expensive_constant): Fix formatting.
4768
4769 2010-03-19  Michael Matz  <matz@suse.de>
4770
4771         PR c++/43116
4772         * attribs.c (decl_attributes): When rebuilding a function pointer
4773         type use the same qualifiers as the original pointer type.
4774
4775 2010-03-19  Martin Jambor  <mjambor@suse.cz>
4776
4777         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
4778         and is_gimple_ip_invariant_address.
4779
4780 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4781
4782         Revert
4783         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4784
4785         * config/arm/arm.c (arm_override_options): Turn off
4786         flag_dwarf2_cfi_asm for AAPCS variants.
4787
4788 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4789
4790         PR target/43399
4791         * config/arm/arm.c (emit_multi_reg_push): Update comments.
4792         Use PRE_MODIFY instead of PRE_DEC.
4793         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
4794         (vfp_emit_fstmd): Likewise.
4795
4796 2010-03-19  Michael Matz  <matz@suse.de>
4797
4798         PR target/43305
4799         * builtins.c (expand_builtin_interclass_mathfn,
4800         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
4801         if that fails.
4802
4803 2010-03-19  Richard Guenther  <rguenther@suse.de>
4804
4805         PR tree-optimization/43415
4806         * tree-ssa-pre.c (phi_translate): Split out worker to ...
4807         (phi_translate_1): ... this.
4808         (phi_translate): Move all caching here.  Cache all NARY
4809         and REFERENCE translations.
4810
4811 2010-03-19  David S. Miller  <davem@davemloft.net>
4812
4813         With help from Eric Botcazou.
4814         * config/sparc/sparc.c: Include dwarf2out.h.
4815         (emit_pic_helper): Delete.
4816         (pic_helper_symbol_name): Delete.
4817         (pic_helper_emitted_p): Delete.
4818         (pic_helper_needed): New.
4819         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
4820         (get_pc_thunk_name): New.
4821         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
4822         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
4823         Set pic_helper_needed to true.  Don't call emit_pic_helper.
4824         (sparc_expand_prologue): Update load_pic_register call.
4825         (sparc_output_mi_thunk): Likewise.
4826         (sparc_file_end): Emit a hidden comdat symbol for the PIC
4827         thunk if possible.  Output CFI information as needed.
4828
4829 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4830             Jack Howarth <howarth@bromo.med.uc.edu>
4831
4832         PR target/36399
4833         * config/i386/i386.h: Fix ABI on darwin x86-32.
4834
4835 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
4836
4837         * tree.h: Declare make_decl_rtl_for_debug.
4838         * varasm.c (make_decl_rtl_for_debug): New.
4839         * dwarf2out.c (rtl_for_decl_location): Call it.
4840         * cfgexpand.c (expand_debug_expr): Call it.
4841
4842 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4843
4844         PR bootstrap/43399
4845         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
4846         mem_mode.
4847
4848         PR bootstrap/43403
4849         * var-tracking.c (vt_init_cfa_base): Do nothing if
4850         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
4851
4852 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
4853
4854         PR debug/42873
4855         * var-tracking.c (canonicalize_vars_star): New.
4856         (dataflow_post_merge_adjust): Use it.
4857
4858 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4859
4860         PR debug/43058
4861         * var-tracking.c (non_suitable_const): New function.
4862         (add_uses): For DEBUG_INSNs with constants, don't record any
4863         value, instead just the constant value itself.
4864         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
4865         is not VAR_LOC_UNKNOWN_P, set var to the constant.
4866         (emit_notes_in_bb): Likewise.
4867         (emit_note_insn_var_location): For onepart variables if
4868         cur_loc is a VOIDmode constant, use DECL_MODE.
4869
4870 2010-03-18  Martin Jambor  <mjambor@suse.cz>
4871
4872         PR middle-end/42450
4873         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
4874         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
4875         all non-clones.  Moved call redirection...
4876         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
4877         (cgraph_materialize_all_clones): Dispose of all
4878         combined_args_to_skip bitmaps.
4879         (verify_cgraph_node): Do not check for edges pointing to wrong
4880         nodes in inline clones.
4881         * tree-inline.c (copy_bb): Call
4882         cgraph_redirect_edge_call_stmt_to_callee.
4883         * ipa.c (cgraph_remove_unreachable_nodes): Call
4884         cgraph_node_remove_callees even when there are used clones.
4885
4886 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4887
4888         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
4889
4890 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4891
4892         PR target/43383
4893         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
4894         for 32bit.
4895
4896 2010-03-18  Michael Matz  <matz@suse.de>
4897
4898         PR middle-end/43419
4899         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
4900         into sqrt(x) if we need to preserve signed zeros.
4901
4902 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
4903             Eric Botcazou  <ebotcazou@adacore.com>
4904
4905         PR rtl-optimization/43360
4906         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
4907         note if we don't know its invariant status.
4908
4909 2010-03-18  Michael Matz  <matz@suse.de>
4910
4911         PR tree-optimization/43402
4912         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
4913         PHI chains of ssa names registered for update.
4914
4915 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
4916
4917         PR target/42427
4918         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
4919         non-offsettable and pre_modify update addressing.
4920         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
4921         and "2" alternatives "#".
4922         (*movdd_softfloat32): Make all alternatives "#";
4923         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
4924         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
4925         (*movdf_softfloat32): Make all alternatives "#";
4926         (movdi): Use the new DIFD mode iterator to create a common splitter
4927         for movdi, movdf and movdd patterns.
4928
4929 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
4930
4931         * common.opt (dumpdir): Remove redundant tab.
4932
4933 2010-03-17  Martin Jambor  <mjambor@suse.cz>
4934
4935         PR tree-optimization/43347
4936         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
4937         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
4938
4939 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4940
4941         PR rtl-optimization/42216
4942         * regrename.c (create_new_chain): New function, broken out from...
4943         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
4944         appending a use to an empty chain.
4945         (build_def_use): Remove previous changes that convert OP_INOUT to
4946         OP_OUT operands; instead detect the case where an OP_INOUT operand
4947         uses a previously untracked register and create an empty chain for it.
4948
4949 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4950
4951         * doc/extend.texi (Function Attributes): Rewrite unfinished
4952         sentence in ms_abi documentation.
4953
4954 2010-03-17  Alan Modra  <amodra@gmail.com>
4955
4956         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
4957         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
4958         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
4959         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
4960
4961 2010-03-16  Richard Henderson  <rth@redhat.com>
4962
4963         PR middle-end/43365
4964         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
4965         (lower_try_finally): Save and restore eh_seq around the expansion
4966         of the try-finally.
4967
4968 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4969
4970         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
4971         statements before splitting block.
4972
4973 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4974
4975         * doc/sourcebuild.texi (Testsuites): Fix markup.
4976         Use pathnames relative to gcc/testsuite.
4977         (Test Directives): Move description of how timeout is determined.
4978         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
4979         (C Tests): Correct gcc.misc-tests directory.
4980         Framework tests now live in gcc.test-framework.
4981
4982 2010-03-16  Richard Guenther  <rguenther@suse.de>
4983
4984         PR middle-end/43379
4985         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
4986         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
4987
4988 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4989             Alexandre Oliva  <aoliva@redhat.com>
4990
4991         PR tree-optimization/42917
4992         * lambda-code.c (remove_iv): Skip debug statements.
4993         (lambda_loopnest_to_gcc_loopnest): Likewise.
4994         (not_interesting_stmt): Debug statements are not interesting.
4995
4996 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
4997
4998         PR debug/43051
4999         PR debug/43092
5000         * cselib.c (cselib_preserve_constants,
5001         cfa_base_preserved_val): New static variables.
5002         (preserve_only_constants): New function.
5003         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
5004         clear its REG_VALUES.  If cselib_preserve_constants, don't
5005         empty the whole hash table, but preserve there VALUEs with constants,
5006         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
5007         (cselib_preserve_cfa_base_value): New function.
5008         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
5009         (cselib_init): Change argument to int bitfield.  Set
5010         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
5011         is in it.
5012         (cselib_finish): Clear cselib_preserve_constants and
5013         cfa_base_preserved_val.
5014         * cselib.h (enum cselib_record_what): New enum.
5015         (cselib_init): Change argument to int.
5016         (cselib_preserve_cfa_base_value): New prototype.
5017         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
5018         * dse.c (dse_step1): Likewise.
5019         * cfgcleanup.c (thread_jump): Likewise.
5020         * sched-deps.c (sched_analyze): Likewise.
5021         * gcse.c (local_cprop_pass): Likewise.
5022         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
5023         If FN is non-NULL, call the callback always and whenever it returns
5024         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
5025         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
5026         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
5027         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
5028         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
5029         * var-tracking.c: Include recog.h.
5030         (bb_stack_adjust_offset): Remove.
5031         (vt_stack_adjustments): Don't call it, instead just gather the
5032         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
5033         (adjust_stack_reference): Remove.
5034         (compute_cfa_pointer): New function.
5035         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
5036         (struct adjust_mem_data): New type.
5037         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
5038         functions.
5039         (get_address_mode): New function.
5040         (replace_expr_with_values): Use it.
5041         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
5042         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
5043         (adjust_sets): Remove.
5044         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
5045         Use get_address_mode.
5046         (get_adjusted_src): Remove.
5047         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
5048         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
5049         (add_with_sets): Don't call adjust_sets.
5050         (fp_setter, vt_init_cfa_base): New functions.
5051         (vt_initialize): Change return type to bool.  Move most of pool etc.
5052         initialization to the beginning of the function from end.  Pass
5053         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
5054         If !frame_pointer_needed, call vt_stack_adjustment before mos
5055         vector is filled, call vt_init_cfa_base if argp/framep has been
5056         eliminated to sp.  If frame_pointer_needed and argp/framep has
5057         been eliminated to hard frame pointer, set
5058         hard_frame_pointer_adjustment and call vt_init_cfa_base after
5059         encountering fp setter in the prologue.  For MO_ADJUST, call
5060         log_op_type before pusing the op into mos vector, not afterwards.
5061         Call adjust_insn before cselib_process_insn/add_with_sets,
5062         call cancel_changes (0) afterwards.
5063         (variable_tracking_main_1): Adjust for vt_initialize calling
5064         vt_stack_adjustments and returning whether it succeeded or not.
5065
5066 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
5067
5068         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
5069         debug statements.
5070
5071 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
5072
5073         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
5074         has been set.
5075         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
5076         drap_reg has not been set.
5077
5078 2010-03-15  Michael Matz  <matz@suse.de>
5079
5080         PR middle-end/43300
5081         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
5082         use it to expand block copies.
5083         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5084         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
5085         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
5086
5087 2010-03-15  Richard Guenther  <rguenther@suse.de>
5088
5089         PR tree-optimization/43367
5090         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
5091         elimination check.
5092
5093 2010-03-15  Richard Guenther  <rguenther@suse.de>
5094
5095         PR tree-optimization/43317
5096         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
5097
5098 2010-03-15  Martin Jambor  <mjambor@suse.cz>
5099
5100         PR tree-optimization/43141
5101         * tree-sra.c (create_abstract_origin): New function.
5102         (modify_function): Call create_abstract_origin.
5103
5104 2010-03-15  Chris Demetriou  <cgd@google.com>
5105
5106         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
5107         wasn't copied.
5108
5109 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5110
5111         PR middle-end/43354
5112         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
5113         call insert_out_of_ssa_copy for default definitions.
5114
5115 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5116
5117         * graphite-clast-to-gimple.c (my_long_long): Defined.
5118         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
5119         * graphite-sese-to-poly.c (my_long_long): Defined.
5120         (scop_ivs_can_be_represented): Use it.
5121
5122 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5123
5124         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
5125         graphite-max-bbs-per-function, and loop-block-tile-size.
5126         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
5127         with "maximum".
5128         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
5129
5130 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5131
5132         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
5133         forward declaration.
5134         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
5135         (add_upper_bounds_from_estimated_nit): New.
5136         (build_loop_iteration_domains): Use it.
5137
5138 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5139
5140         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
5141
5142 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5143
5144         PR middle-end/43306
5145         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
5146         should be an INTEGER_CST.  Also handle CASE_CONVERT.
5147
5148 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5149
5150         * graphite.c (graphite_initialize): To bound the number of bbs per
5151         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
5152         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
5153         * doc/invoke.texi: Document it.
5154
5155 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5156
5157         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
5158         * graphite-sese-to-poly.h (build_poly_scop): Same.
5159
5160 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5161
5162         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
5163         the number of parameters in the scop.  Use as an upper bound
5164         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
5165         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
5166         * doc/invoke.texi: Document it.
5167
5168 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
5169
5170         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
5171         * doc/c-tree.texi: Remove.
5172         * doc/generic.texi: Merge c-tree.texi here.
5173         * doc/gccint.texi (Trees): Remove menu entry.
5174         (c-tree.texi): Remove @include.
5175         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
5176         * doc/languages.texi (Reading RTL): Ditto.
5177
5178 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
5179
5180         PR target/42869
5181         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
5182
5183 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5184
5185         PR middle-end/42431
5186         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
5187         code added to work around reload clobbering CONST insns.
5188
5189 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
5190
5191         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
5192         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
5193         (cselib_preserve_only_values): Remove retain argument, don't
5194         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
5195         * cselib.h (cselib_preserve_only_values): Remove retain argument.
5196         * var-tracking.c (micro_operation): Move insn field before union.
5197         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
5198         (struct variable_tracking_info_def): Remove n_mos field, change
5199         mos into a vector of micro_operations.
5200         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
5201         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
5202         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
5203         changing into a vector.
5204         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
5205         come before all other uops generated by add_stores.
5206         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
5207         argument removal.
5208         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
5209         a vector.  Run just one pass over the bbs instead of separate counting
5210         and computation phase.
5211         (vt_finalize): Free VTI (bb)->mos vector instead of array.
5212
5213         PR debug/43329
5214         * tree-inline.c (remap_decls): Put old_var rather than origin_var
5215         into *nonlocalized_list vector.
5216         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
5217         even if origin is non-NULL.
5218         (gen_variable_die): Likewise.
5219         (process_scope_var): Don't change origin.
5220         (gen_decl_die): Likewise.
5221         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
5222         before adding new edges instead of after it, fix moving over
5223         debug stmts.
5224
5225 2010-03-11  David S. Miller  <davem@davemloft.net>
5226
5227         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
5228         of four.
5229         * configure: Rebuild.
5230
5231 2010-03-11  Martin Jambor  <mjambor@suse.cz>
5232
5233         PR tree-optimization/43257
5234         * tree.c (assign_assembler_name_if_neeeded): New function.
5235         (free_lang_data_in_cgraph): Assembler name assignment moved to the
5236         above new function.
5237         * tree.h (assign_assembler_name_if_neeeded): Declare.
5238         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
5239         the function if needed.
5240
5241 2010-03-11  Chris Demetriou  <cgd@google.com>
5242
5243         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
5244         include/stdint-gcc.h, and include/stdint.h world-readable.
5245
5246 2010-03-11  Richard Guenther  <rguenther@suse.de>
5247
5248         PR tree-optimization/43255
5249         * tree-vrp.c (process_assert_insertions_for): Do not insert
5250         asserts for trivial conditions.
5251
5252 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5253
5254         PR tree-optimization/43280
5255         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
5256         generation.  Move calculation of size out of the if branch.
5257         (find_bswap): Modify compare number generation.
5258
5259 2010-03-11  Richard Guenther  <rguenther@suse.de>
5260
5261         PR lto/43200
5262         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
5263         (input_gimple_stmt): Fixup handled component types during
5264         operand read.  Also fix up decls in ADDR_EXPRs.
5265
5266 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
5267
5268         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
5269         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
5270
5271 2010-03-10  Jan Hubicka  <jh@suse.cz>
5272
5273         PR c/43288
5274         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
5275         * varasm.c (get_variable_section): Don't do that here...
5276         (make_decl_rtl): ... and here.
5277         (do_assemble_alias): Produce decl RTL.
5278         (assemble_alias): Likewise.
5279
5280 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5281
5282         PR debug/43290
5283         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
5284         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
5285         of fde->vdrap_reg.
5286         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
5287         (based_loc_descr): Only express drap or vdrap regno based expressions
5288         using DW_OP_fbreg when not optimizing.
5289         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
5290         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
5291         REG_CFA_SET_VDRAP note.
5292
5293 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
5294
5295         PR tree-optimization/43236
5296         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
5297         error in calculation of base address in reverse iteration case.
5298         (generate_builtin): Take number of latch executions if the statement
5299         is in the latch.
5300
5301 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
5302
5303         PR middle-end/42859
5304         * tree-eh.c: Include pointer-set.h.
5305         (lower_eh_dispatch): Filter out duplicate case labels and
5306         remove the unneeded edge when the label is unused.  Return
5307         true when some edges are removed.
5308         (execute_lower_eh_dispatch): When any lowering resulted in
5309         removing an edge, also delete unreachable blocks.
5310
5311 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5312
5313         PR bootstrap/43287
5314         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5315         UNSPEC_MACHOPIC_OFFSET.
5316
5317 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
5318
5319         PR target/43294
5320         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
5321         (m68k_delegitimize_address): New function.
5322
5323 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
5324
5325         PR debug/43299
5326         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
5327
5328         PR debug/43299
5329         * var-tracking.c (adjust_sets): New function.
5330         (count_with_sets, add_with_sets): Use it.
5331         (get_adjusted_src): New inline function.
5332         (add_stores): Use it.
5333
5334         PR debug/43304
5335         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
5336         call cselib_dummy_expand_value_rtx_cb instead of
5337         cselib_expand_value_rtx_cb.
5338
5339         PR debug/43293
5340         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
5341         * config/i386/i386.c: Include debug.h and dwarf2out.h.
5342         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
5343         and .cfi_endproc around the pic thunks.
5344         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
5345         all queued unwind info register saves are saved before the call.
5346         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
5347         considered as sp-=4 for unwind info and the pop as sp+=4 which
5348         also clobbers dest, but doesn't actually restore it.
5349
5350         PR debug/43290
5351         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
5352         RTX_FRAME_RELATED_P.
5353
5354 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5355
5356         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
5357         whitespaces in output template.
5358
5359 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5360
5361         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
5362         out array boundary.
5363
5364 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5365
5366         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
5367         builtins.exp in a separate job.
5368
5369 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5370
5371         * graphite-sese-to-poly.c (add_param_constraints): Use
5372         lower_bound_in_type and upper_bound_in_type.
5373
5374 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5375
5376         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
5377         instead of unsigned_type_node.
5378
5379 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5380             Reza Yazdani  <reza.yazdani@amd.com>
5381
5382         PR middle-end/43065
5383         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
5384         on pointer type parameters.
5385
5386 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5387
5388         PR middle-end/42644
5389         PR middle-end/42130
5390         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
5391         handle conversions from pointer to integers.
5392         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
5393         induction variable, to be able to work with code generated by CLooG.
5394         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
5395         (build_poly_scop): Bail out if we cannot codegen a loop.
5396
5397 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5398
5399         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
5400         code generation with gloog_error.
5401
5402 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5403
5404         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
5405         Call fold_convert on all the returned values.
5406         (expand_scalar_variables_expr): Pass to
5407         expand_scalar_variables_ssa_name the type of the resulting expression.
5408
5409 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5410
5411         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
5412         ppl_min_for_le_pointset.
5413         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
5414         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
5415
5416 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5417
5418         * graphite-dependences.c (map_into_dep_poly): Removed.
5419         (dependence_polyhedron_1): Use combine_context_id_scat.
5420
5421 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5422
5423         * graphite-poly.h (struct poly_scattering): Add layout documentation.
5424         (struct poly_bb): Same.
5425         (combine_context_id_scat): New.
5426
5427 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5428
5429         PR middle-end/42326
5430         * sese.c (name_defined_in_loop_p): Return false for default
5431         definitions.
5432
5433 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5434
5435         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
5436         and clean up the logic.
5437
5438 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5439
5440         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
5441         early return.
5442
5443 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5444
5445         * var-tracking.c (remove_cselib_value_chains): Define only for
5446         ENABLE_CHECKING.
5447         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
5448         delete_slot_part, emit_notes_for_differences_1): Don't call
5449         remove_cselib_value_chains here.
5450         (set_slot_part, emit_notes_for_differences_2): Don't call
5451         add_cselib_value_chains here.
5452         (preserved_values): New vector.
5453         (preserve_value): New function.
5454         (add_uses, add_stores, vt_add_function_parameters): Use it
5455         instead of cselib_preserve_value.
5456         (changed_values_stack): New vector.
5457         (check_changed_vars_0): New function.
5458         (check_changed_vars_1, check_changed_vars_2): Use it.
5459         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
5460         changed_values_stack VALUEs.
5461         (vt_emit_notes): For all preserved_values call
5462         add_cselib_value_chains.  If ENABLE_CHECKING call
5463         remove_cselib_value_chains before verifying value_chains is empty.
5464         Initialize and free changed_values_stack.
5465         (vt_initialize): Initialize preserved_values.
5466         (vt_finalize): Free preserved_values.
5467
5468 2010-03-08  Richard Guenther  <rguenther@suse.de>
5469
5470         PR tree-optimization/43269
5471         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
5472         region detection.
5473
5474 2010-03-08  Martin Jambor  <mjambor@suse.cz>
5475
5476         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
5477         (ipa_is_param_called): Removed.
5478         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
5479         (ipa_print_node_params): Do not print the called flag.
5480         (ipa_write_node_info): Do not stream the called flag.
5481         (ipa_read_node_info): Likewise.
5482
5483 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
5484
5485         PR debug/43176
5486         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
5487         * cselib.c (struct expand_value_data): Add dummy field.
5488         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
5489         dummy to false.
5490         (cselib_dummy_expand_value_rtx_cb): New function.
5491         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
5492         any rtl.
5493         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
5494         * var-tracking.c: Include pointer-set.h.
5495         (variable): Change n_var_parts to char from int.  Add
5496         cur_loc_changed and in_changed_variables fields.
5497         (variable_canonicalize): Remove.
5498         (shared_var_p): New inline function.
5499         (unshare_variable): Maintain cur_loc_changed and
5500         in_changed_variables fields.  If var was in changed_variables,
5501         replace it there with new_var.  Just copy cur_loc instead of
5502         resetting it to something else.
5503         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
5504         (dataflow_set_union): Don't call variable_canonicalize.
5505         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
5506         of their DEBUG_EXPR_TREE_DECLs.
5507         (canonicalize_loc_order_check): Verify that cur_loc is NULL
5508         and in_changed_variables and cur_loc_changed is false.
5509         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
5510         and cur_loc_changed.  Don't update cur_loc here.
5511         (variable_merge_over_src): Don't call variable_canonicalize.
5512         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
5513         removing loc that is equal to cur_loc, clear cur_loc,
5514         set cur_loc_changed and ensure variable_was_changed is called.
5515         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
5516         compare pointers in cur_loc check, if it is equal to loc,
5517         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
5518         (variable_different_p): Remove compare_current_location argument,
5519         don't compare cur_loc.
5520         (dataflow_set_different_1): Adjust variable_different_p caller.
5521         (variable_was_changed): If dv had some var in changed_variables
5522         already, reset in_changed_variables flag for it and propagate
5523         cur_loc_changed over to the new variable.  On empty var
5524         always set cur_loc_changed.  Set in_changed_variables on whatever
5525         var is added to changed_variables.
5526         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
5527         Use shared_var_p.  When removing loc that is equal to cur_loc,
5528         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
5529         end, don't set it to something else, just call variable_was_changed.
5530         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
5531         loc being removed, clear cur_loc and set cur_loc_changed.
5532         Set cur_loc_changed if all locations have been removed.
5533         (struct expand_loc_callback_data): New type.
5534         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
5535         allocated.  Always create SUBREGs if simplify_subreg failed.
5536         Prefer to use cur_loc, when that fails and still in
5537         changed_variables (and seen first time) recompute it.  Set
5538         cur_loc_changed of variables which had to change cur_loc and
5539         compute elcd->cur_loc_changed if any of the subexpressions used
5540         had to change cur_loc.
5541         (vt_expand_loc): Adjust to pass arguments in
5542         expand_loc_callback_data structure.
5543         (vt_expand_loc_dummy): New function.
5544         (emitted_notes): New variable.
5545         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
5546         that weren't used for any other decl in current
5547         emit_notes_for_changes call call vt_expand_loc_dummy to update
5548         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
5549         first loc_chain location if NULL before.  Always use just
5550         cur_loc instead of first loc_chain location.  When cur_loc_changed
5551         is false, when not --enable-checking=rtl just don't emit any note.
5552         When rtl checking, compute the note and assert it is the same
5553         as previous note.  Clear cur_loc_changed and in_changed_variables
5554         at the end before removing from changed_variables.
5555         (check_changed_vars_3): New function.
5556         (emit_notes_for_changes): Traverse changed_vars to call
5557         check_changed_vars_3 on each changed var.
5558         (emit_notes_for_differences_1): Clear cur_loc_changed and
5559         in_changed_variables.  Recompute cur_loc of new_var.
5560         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
5561         (vt_emit_notes): Initialize and destroy emitted_notes.
5562
5563 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
5564
5565         PR rtl-optimization/42220
5566         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
5567         Use verify_reg_tracked to determine if we should use OP_OUT rather
5568         than OP_INOUT.
5569         (build_def_use): If we see an in-out operand for a register that we
5570         know nothing about, treat is an output if possible, fail the block if
5571         not.
5572
5573 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5574
5575         PR debug/42897
5576         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
5577         permanently.
5578
5579 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5580
5581         PR debug/42897
5582         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
5583         uses of relevant DEFs that are dead outside the loop too.
5584
5585 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
5586
5587         * var-tracking.c (dataflow_set_merge): Swap src and src2.
5588         Reverted:
5589         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
5590         PR debug/41371
5591         * var-tracking.c (values_to_unmark): New variable.
5592         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
5593         values_to_unmark vector.  Moved body to...
5594         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
5595         instead queue it into values_to_unmark vector.
5596         (vt_find_locations): Free values_to_unmark vector.
5597
5598 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5599
5600         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
5601         (site.exp): Export them when plugins are enabled.
5602
5603 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
5604
5605         PR middle-end/42326
5606         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
5607         that contain scevs.
5608         (chrec_fold_multiply): Same.
5609
5610 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
5611
5612         PR c/43248
5613         * c-decl.c (build_compound_literal): Return early if init is
5614         an error_mark_node.
5615
5616 2010-03-04  Martin Jambor  <mjambor@suse.cz>
5617
5618         PR tree-optimization/43164
5619         PR tree-optimization/43191
5620         * tree-sra.c (type_consists_of_records_p): Reject records with
5621         zero-size bit-fields at the end.
5622
5623 2010-03-04  Mike Stump  <mikestump@comcast.net>
5624
5625         * Makefile.in (TAGS): Remove *.y.
5626
5627 2010-03-04  Richard Guenther  <rguenther@suse.de>
5628
5629         PR tree-optimization/40761
5630         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
5631         in reverse order.
5632         (my_rev_post_order_compute): New function.
5633         (init_pre): Call it.
5634
5635 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5636
5637         PR middle-end/43209
5638         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
5639         decrease the cost of an IV candidate when the cost is infinite.
5640
5641 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5642
5643         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
5644         Use '3DNow!' for the extension of that name, ensure normal space
5645         after the string.
5646         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
5647
5648 2010-03-03  Jeff Law  <law@redhat.com>
5649
5650         * PR middle-end/32693
5651         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
5652         than gen_rtx_SUBREG.
5653         (extract_bit_field_1): Likewise.
5654
5655 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
5656
5657         * doc/sourcebuild.texi (Test directives): Document that arguments
5658         include-opts and exclude-opts are now optional for dg-skip-if,
5659         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
5660
5661 2010-03-03  Jason Merrill  <jason@redhat.com>
5662
5663         PR c++/12909
5664         * cgraph.h (varpool_node): Add extra_name field.
5665         * varpool.c (varpool_extra_name_alias): New.
5666         (varpool_assemble_decl): Emit extra name aliases.
5667         (varpool_mark_needed_node): Look past an extra name alias.
5668         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
5669         * lto-streamer-in.c (lto_input_tree): Read it.
5670         * lto-streamer-out.c (output_unreferenced_globals): Write it.
5671
5672 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5673
5674         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
5675         (sparc*-*-solaris2*): ...this.
5676
5677 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
5678
5679         PR debug/43229
5680         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
5681         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
5682         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
5683         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
5684
5685         PR debug/43237
5686         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
5687         fallthrough to default handling, just with want_address 0 instead of 2.
5688         For single element lists, add_AT_loc directly, otherwise create an
5689         artificial variable DIE and stick location list to it.
5690
5691         PR debug/43177
5692         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
5693         (VAL_EXPR_HAS_REVERSE): Define.
5694         (reverse_op): New function.
5695         (add_stores): For reversible operations add an extra MO_VAL_USE.
5696
5697 2010-03-02  Jason Merrill  <jason@redhat.com>
5698
5699         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
5700
5701 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
5702
5703         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
5704         (sparc64-*-linux*): Likewise.
5705         (sparc64-*-solaris2*): Include assembler files before linker ones.
5706         (sparc-*-solaris2*): Simplify and reorder to match previous case.
5707         * config/sparc/gas.h: Delete.
5708         * config/sparc/sol2-64.h: Add copyright notice.
5709         * config/sparc/sol2-gas-bi.h: Likewise.
5710         * config/sparc/sol2-gld.h: Likewise.
5711         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
5712         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
5713         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
5714         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
5715         (sparc_elf_asm_named_section): Rename into...
5716         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
5717
5718 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
5719
5720         * config/alpha/alpha.c (override_options): Fix -mtune error message.
5721
5722 2010-03-02  Jeff Law  <law@redhat.com>
5723
5724         PR middle-end/42431
5725         * reload1.c (rtx_p, substitute_stack): Declare.
5726         (substitute): Record addresses of changed rtxs.
5727         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
5728         Restore the original rtx when complete.
5729         (reload): Free subsitute_stack when complete.
5730
5731 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
5732
5733         * doc/gccint.texi (menu): Add Testsuites as a chapter.
5734         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
5735         new chapter.
5736         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
5737         LTO Testing, gcov Testing, profopt Testing, compat Testing,
5738         Torture Tests): Change from subsection to section.
5739
5740 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
5741             Steven Bosscher  <steven@gcc.gnu.org>
5742
5743         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
5744         instead of bb.
5745
5746 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
5747
5748         PR middle-end/42640
5749         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
5750         the assignment from the new induction variable to the assignment
5751         of the value from the original loop PHI function.
5752
5753 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
5754             Daniel Jacobowitz  <dan@codesourcery.com>
5755
5756         * doc/sourcebuild.texi (Test directives): Clarify options to
5757         dg-skip-if.
5758
5759 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5760
5761         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
5762         Disable cfi directives unless GCC and gas agree on using read-only
5763         .eh_frame sections for 64-bit.
5764         * configure: Regenerate.
5765
5766 2010-03-01  Richard Guenther  <rguenther@suse.de>
5767
5768         PR tree-optimization/43220
5769         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
5770         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
5771
5772 2010-03-01  Richard Guenther  <rguenther@suse.de>
5773             Martin Jambor  <mjambor@suse.cz>
5774
5775         PR middle-end/41250
5776         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
5777         gimplified parameters.
5778
5779 2010-03-01  Christian Bruel  <christian.bruel@st.com>
5780
5781         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
5782
5783 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
5784
5785         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
5786
5787 2010-03-01  Richard Guenther  <rguenther@suse.de>
5788
5789         PR middle-end/43213
5790         * expr.c (expand_assignment): Use the alias-oracle to tell
5791         if the rhs aliases the result decl.
5792
5793 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5794
5795         PR pch/14940
5796         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
5797         to sol_gt_pch_get_address.
5798         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
5799         64-bit, SPARC and x86.
5800         (sol_gt_pch_get_address): New function.
5801
5802 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
5803
5804         * toplev.h (inform_n, error_n): Declare.
5805         * diagnostic.c (inform_n, error_n): New function.
5806
5807 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
5808
5809         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
5810         has no rtl yet when processing local_decls, queue it and recheck
5811         if deferred stack allocation hasn't assigned it rtl.
5812
5813 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5814
5815         * config/sh/sh.c (unspec_bbr_uid): New.
5816         (gen_block_redirect): Use it instead of INSN_UID.
5817         (gen_far_branch): Likewise.
5818
5819 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
5820
5821         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
5822         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
5823
5824 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5825
5826         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
5827         (Warning Options): -Wno-conversion-null is valid for
5828         Objective-C++ as well.
5829         * doc/tm.texi (Named Address Spaces): Likewise.
5830         * doc/plugins.texi (Plugins): Replace TABs with spaces.
5831         * doc/tree-ssa.texi (Tree SSA): Likewise.
5832
5833 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5834
5835         PR bootstrap/43202
5836         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
5837         by default.  Don't set the default arch for
5838         i[34567]86-*-darwin*|x86_64-*-darwin*.
5839
5840 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5841
5842         PR bootstrap/43202
5843         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
5844         default.  Set the default 32bit/64bit archs with $with_arch
5845         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
5846
5847 2010-02-27  Richard Guenther  <rguenther@suse.de>
5848
5849         PR tree-optimization/43186
5850         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
5851         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
5852         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
5853         unroller iterations.
5854
5855 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5856
5857         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
5858         required and i[34567]86-*-* targets don't support 64bit ISA.
5859
5860 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
5861
5862         PR ada/43096
5863         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
5864         the same alias set.
5865
5866 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
5867
5868         * config.gcc: Set the default arch at least to Prescott for
5869         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
5870         if SSE math is enabled.
5871
5872 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5873
5874         * diagnostic.c (diagnostic_initialize): Update.
5875         (diagnostic_report_diagnostic): Test inhibit_notes_p for
5876         informative notes.
5877         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
5878         (diagnostic_inhibit_notes): New.
5879         * toplev.c (process_options): inhibit notes with -fcompare-debug.
5880
5881 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5882
5883         PR c/20631
5884         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
5885         * doc/standards.texi: Likewise.
5886         * doc/extend.texi: Likewise.
5887         * doc/trouble.texi: Likewise.
5888         * doc/cppopts.texi: Likewise.
5889         * doc/install.texi: Likewise.
5890         * c.opt (std=c90,std=gnu90): New options.
5891         * c-opts.c (c_common_handle_option): Handle them.
5892
5893 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5894
5895         PR c/24577
5896         * c-decl.c (undeclared_variable): Use an informative note.
5897
5898 2010-02-26  Richard Guenther  <rguenther@suse.de>
5899
5900         PR tree-optimization/43186
5901         * gimple.h (gimple_fold): Remove.
5902         * gimple.c (gimple_fold): Remove.  Inline into single user ...
5903         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
5904         Try harder for conditions.
5905
5906 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
5907
5908         PR debug/43190
5909         * function.c (used_types_insert): Don't skip through named pointer
5910         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
5911         and it is different from the main variant's type.
5912
5913 2010-02-26  Nick Clifton  <nickc@redhat.com>
5914
5915         * config/rx/rx.md (sminsi3): Remove bogus alternative.
5916
5917 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
5918
5919         * config.gcc: Support --with-fpmath=sse for x86.
5920
5921         * config/i386/ssemath.h: New.
5922
5923         * doc/install.texi (--with-fpmath=sse): Documented.
5924
5925 2010-02-26  Richard Guenther  <rguenther@suse.de>
5926
5927         PR tree-optimization/43188
5928         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
5929         vector types of over-aligned element type.
5930
5931 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
5932
5933         PR target/43175
5934         * config/i386/i386.c (expand_vec_perm_blend): Use correct
5935         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
5936
5937 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
5938
5939         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
5940
5941 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
5942
5943         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
5944         * var-tracking.c: Include diagnostic.h.
5945         (debug_dv): New function.
5946         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
5947
5948         PR debug/43160
5949         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
5950         (add_value_chain, add_value_chains, remove_value_chain,
5951         remove_value_chains): Handle DEBUG_EXPRs.
5952         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
5953
5954         PR debug/43161
5955         * regcprop.c (struct queued_debug_insn_change): New type.
5956         (struct value_data_entry): Add debug_insn_changes field.
5957         (struct value_data): Add n_debug_insn_changes field.
5958         (debug_insn_changes_pool): New variable.
5959         (free_debug_insn_changes, apply_debug_insn_changes,
5960         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
5961         (kill_value_one_regno): Call free_debug_insn_changes if needed.
5962         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
5963         fields.
5964         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
5965         changes for them.
5966         (copyprop_hardreg_forward_1): Don't call apply_change_group for
5967         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
5968         changes, call cprop_find_used_regs via note_stores.
5969         (copyprop_hardreg_forward): When copying vd from predecessor
5970         which has any queued DEBUG_INSN changes, make sure the pointers are
5971         cleared.  At the end call df_analyze and then if there are any
5972         DEBUG_INSN changes queued at the end of some basic block for still
5973         live registers, apply them.
5974         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
5975
5976 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
5977
5978         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
5979         (arm*-*-*): Ditto.
5980
5981 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
5982
5983         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
5984         targets.  Set the default with_cpu/with_arch from arch/cpu.
5985         Allow x86-64 and native for with_cpu/with_arch.
5986
5987 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
5988
5989         * ebitmap.c: Change calls to verify_popcount with calls to
5990         sbitmap_verify_popcount.
5991         (ebitmap_clear_bit): Fixed map->cacheindex test and
5992         map>cache update when bit clearing results in an empty
5993         element.
5994
5995 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
5996
5997         PR target/43154
5998         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
5999         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
6000         and support both V2DF and V2DI modes.
6001         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
6002         support both V2DF and V2DI modes.
6003         (general): Delete trailing whitespace from a few patterns.
6004
6005         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6006         V2DF/V2DI interleave high/low builtins.
6007
6008         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
6009         new VSX builtins.
6010
6011         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
6012         interleave high/low functions.
6013
6014 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6015
6016         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
6017         #pragma extern_prefix.
6018
6019 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
6020
6021         PR debug/43166
6022         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
6023         BLKmode, assert op0 is a MEM and just adjust its mode.
6024
6025         PR debug/43165
6026         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
6027         if bitpos isn't multiple of mode's bitsize.
6028
6029 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6030
6031         * c.opt (-ftemplate-depth=): New.
6032         (-ftemplate-depth-): Deprecate.
6033         * optc-gen.awk: Handle -ftemplate-depth=.
6034         * opth-gen.awk: Likewise.
6035         * c-opts.c (c_common_handle_option): Likewise.
6036         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
6037
6038 2010-02-24  Jason Merrill  <jason@redhat.com>
6039
6040         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
6041
6042 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6043
6044         * cfg.c (alloc_aux_for_block): Remove inline.
6045         (alloc_aux_for_edge): Likewise.
6046
6047 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6048
6049         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
6050
6051 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6052
6053         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
6054         * config/i386/sol2-gas.h: New file.
6055         * config.gcc (i[34567]86-*-solaris2*): Use it.
6056
6057 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6058
6059         PR c/43128
6060         * c-typeck.c (ep_convert_and_check): New.
6061         (build_conditional_expr): Use it.
6062         (build_binary_op): Likewise.
6063
6064 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
6065
6066         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
6067
6068         PR debug/43150
6069         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
6070         bounds even for -O+.
6071         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
6072         expr needs to have DECL_NAME set.
6073
6074 2010-02-24  Nick Clifton  <nickc@redhat.com>
6075
6076         * config/mep/mep.c: Include gimple.h.
6077         (mep_function_uses_sp): Delete unused function.
6078         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
6079         parameters.  Use unsigned integers to count args.  Return a
6080         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
6081
6082 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6083
6084         PR target/43107
6085         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
6086         greater or equal to nelt instead of 2 * nelt.
6087         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
6088         with nelt - 1.
6089
6090 2010-02-23  Jason Merrill  <jason@redhat.com>
6091
6092         PR debug/42800
6093         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
6094         in cfun->local_decls even if they have register types.
6095
6096         PR c++/42837
6097         * stor-layout.c (place_field): Don't warn about unnecessary
6098         DECL_PACKED if the type is packed.
6099
6100 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6101
6102         PR target/43139
6103         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
6104         GOTOFF relocs, even when the base reg isn't pic pointer.
6105
6106 2010-02-23  Michael Matz  <matz@suse.de>
6107
6108         PR debug/43077
6109         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
6110         (expand_gimple_basic_block): Generate and use debug temps if there
6111         are debug uses left after the last real use of TERed ssa names.
6112         Unlink debug immediate uses when they are expanded.
6113
6114 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6115
6116         PR 43123
6117         * config/i386/i386.c (override_options): Reorganise to provide
6118         better error messages.
6119
6120 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6121
6122         PR middle-end/43083
6123         * graphite-scop-detection.c (create_single_exit_edge): Move
6124         the call to find_single_exit_edge to....
6125         (create_sese_edges): ...here.  Don't handle multiple edges
6126         exiting the function.
6127         (build_graphite_scops): Don't handle multiple edges
6128         exiting the function.
6129
6130 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6131
6132         PR middle-end/43097
6133         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
6134         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
6135
6136 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6137
6138         PR middle-end/43026
6139         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
6140
6141 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6142
6143         PR c++/43126
6144         * c-typeck.c (convert_arguments): Print declaration location.
6145         * c-common.c (validate_nargs): Rename as
6146         builtin_function_validate_nargs.
6147         (check_builtin_function_arguments): Update.
6148
6149 2010-02-22  Richard Guenther  <rguenther@suse.de>
6150
6151         PR lto/43045
6152         * tree-inline.c (declare_return_variable): Use the type of
6153         the call stmt lhs if available.
6154
6155 2010-02-22  Duncan Sands  <baldrick@free.fr>
6156
6157         * passes.c (register_pass): Always consider all pass lists when
6158         ref_pass_instance_number is zero.
6159
6160 2010-02-22  Richard Guenther  <rguenther@suse.de>
6161
6162         PR tree-optimization/42749
6163         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
6164         parameter.  Do arithmetic in the original type.
6165         (update_accumulator_with_ops): Likewise.
6166         (adjust_accumulator_values): Adjust.
6167
6168 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6169
6170         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
6171         (QI to BLKmode splitter): New splitter.
6172
6173 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
6174
6175         * config/i386/i386.c (initial_ix86_tune_features): Turn on
6176         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
6177
6178 2010-02-22  Richard Guenther  <rguenther@suse.de>
6179
6180         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
6181
6182 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
6183
6184         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
6185         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
6186         ($(T)crti.o, $(T)crtn.o): Remove rules.
6187
6188 2010-02-21  Tobias Burnus  <burnus@net-b.de>
6189
6190         PR fortran/35259
6191         * doc/invoke.texi (-fassociative-math): Document that this
6192         option is automatically enabled for Fortran.
6193
6194 2010-02-20  David S. Miller  <davem@davemloft.net>
6195
6196         * configure.ac: Test if linker and assembler properly support
6197         GOTDATA_OP relocations.
6198         * configure: Rebuild.
6199         * config.in: Likewise.
6200         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
6201         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
6202         (movsi_high_pic): Likewise.
6203         (movdi_lo_sum_pic): Likewise.
6204         (movdi_high_pic): Likewise.
6205         (movsi_pic_gotdata_op): New pattern.
6206         (movdi_pic_gotdata_op): Likewise.
6207         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
6208         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
6209
6210 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
6211
6212         PR target/43067
6213         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
6214         attribute to ssemul.
6215         (xop_mulv2div2di3_high): Ditto.
6216
6217 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6218
6219         PR c++/35669
6220         * c.opt (Wconversion-null): New option.
6221         * doc/invoke.texi (Wconversion-null): Document.
6222
6223 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6224
6225         * common.opt (Wlarger-than-): Add Undocumented.
6226
6227 2010-02-19  Mike Stump  <mikestump@comcast.net>
6228
6229         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
6230
6231 2010-02-19  Jason Merrill  <jason@redhat.com>
6232
6233         PR target/40332
6234         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
6235         * configure: Likewise.
6236
6237 2010-02-20  Alan Modra  <amodra@gmail.com>
6238
6239         PR middle-end/42344
6240         * cgraph.h (cgraph_make_decl_local): Declare.
6241         * cgraph.c (cgraph_make_decl_local): New function.
6242         (cgraph_make_node_local): Use it.
6243         * cgraphunit.c (cgraph_function_versioning): Likewise.
6244         * ipa.c (function_and_variable_visibility): Likewise.
6245
6246 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6247
6248         PR bootstrap/43121
6249         * except.c (sjlj_emit_function_enter): Don't call
6250         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
6251         directly.
6252         * rtl.h (add_reg_br_prob_note): Remove prototype.
6253
6254 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6255
6256         PR 41779
6257         * c-common.c (conversion_warning): Remove widening conversions
6258         before checking the conversion of integers to reals.
6259
6260 2010-02-19  Mike Stump  <mikestump@comcast.net>
6261
6262         PR middle-end/43125
6263         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
6264
6265         PR objc/43061
6266         * cgraphunit.c (process_function_and_variable_attributes): Check
6267         DECL_PRESERVE_P instead of looking up attribute "used".
6268         * ipa-pure-const.c (check_decl): Likewise.
6269         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
6270         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
6271         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
6272         instead of attribute "used".
6273         * config/sol2-c.c (solaris_pragma_init): Likewise.
6274         (solaris_pragma_fini): Likewise.
6275
6276 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6277
6278         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
6279         Use XCNEW instead of xcalloc.
6280         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
6281         XNEW instead of xmalloc.
6282         (get_fields): Use XNEWVEC instead of xmalloc.
6283
6284         PR debug/43084
6285         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
6286         populate vars array.
6287         (create_new_general_access): For debug stmts just reset value.
6288         (get_stmt_accesses): For accesses within debug stmts just record them
6289         using add_access_to_acc_sites instead of preventing the peeling or
6290         counting them as accesses.
6291
6292         PR middle-end/42233
6293         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
6294
6295 2010-02-19  Richard Guenther  <rguenther@suse.de>
6296
6297         PR tree-optimization/42916
6298         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
6299         instructions.
6300
6301 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
6302
6303         * configure.ac: Replace all uses of changequote in macro arguments
6304         with proper quoting.
6305
6306 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6307
6308         PR middle-end/42233
6309         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
6310
6311 2010-02-19  Richard Guenther  <rguenther@suse.de>
6312
6313         PR tree-optimization/42944
6314         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
6315         test for aliasing with errno.
6316
6317 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6318
6319         PR middle-end/42233
6320         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
6321         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
6322         * dojump.c: Include output.h.
6323         (inv): New inline function.
6324         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
6325         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
6326         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
6327         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
6328         argument, pass it down to other calls.
6329         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
6330         add REG_BR_PROB note to the conditional jump.
6331         * cfgexpand.c (add_reg_br_prob_note): Removed.
6332         (expand_gimple_cond): Don't call it, add the probability
6333         as last argument to jumpif_1/jumpifnot_1.
6334         * Makefile.in (dojump.o): Depend on output.h.
6335         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
6336         callers.
6337         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
6338         * stmt.c (do_jump_if_equal): Likewise.
6339         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
6340         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6341         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
6342         Likewise.
6343         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
6344         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
6345         jumpifnot_1 callers.
6346         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
6347         callers.
6348         (store_expr): Adjust jumpifnot caller.
6349         (store_constructor): Adjust jumpif caller.
6350
6351         PR middle-end/42233
6352         * gimplify.c (gimple_boolify): For __builtin_expect call
6353         gimple_boolify also on its first argument.
6354
6355 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
6356
6357         * configure.ac (gnu-unique-object): Wrap regexps using [] in
6358         changequote block.
6359         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
6360         * configure: Regenerated.
6361
6362 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6363
6364         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
6365         lang_hooks.types_compatible_p instead of comptypes.
6366
6367 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
6368
6369         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
6370         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
6371         if __prefer_thumb__ is defined.
6372
6373 2010-02-18  Martin Jambor  <mjambor@suse.cz>
6374
6375         PR tree-optimization/43066
6376         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
6377         array with zero-sized element type.
6378
6379 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
6380
6381         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
6382         rtx, allocate struct var_loc_node here and return it to the
6383         caller, and only if it is actually needed.
6384         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
6385         move it earlier and return immediately if it returns NULL.
6386
6387 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
6388
6389         * config/sparc/gas.h: New file.  Restore
6390         TARGET_ASM_NAMED_SECTION to its ELF default.
6391         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
6392         check !HAVE_GNU_AS.
6393         * config/sparc/sparc.c (sparc_elf_asm_named_section):
6394         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
6395         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
6396         after sparc/sysv4.h.
6397
6398 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
6399
6400         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
6401
6402 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
6403
6404         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
6405         patterns from predicated pattern.
6406
6407 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
6408
6409         PR target/43103
6410         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
6411         for insn mnemonic suffix.
6412
6413 2010-02-17  Richard Guenther  <rguenther@suse.de>
6414
6415         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
6416         to loop PHI nodes.
6417
6418 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
6419
6420         PR debug/42918
6421         * caller-save.c (save_call_clobbered_regs): If BB ends with
6422         a DEBUG_INSN, move any notes in between last real insn and the last
6423         DEBUG_INSN after the last DEBUG_INSN.
6424
6425 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
6426
6427         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
6428         Fix return type.  Fix argument type.  Explain meaning of return value.
6429
6430 2010-02-16  Richard Guenther  <rguenther@suse.de>
6431
6432         PR tree-optimization/41043
6433         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
6434         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
6435         statements ...
6436         (vrp_visit_phi_node): ... but only for loop PHI nodes.
6437
6438 2010-02-16  Ira Rosen  <irar@il.ibm.com>
6439
6440         PR tree-optimization/43074
6441         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
6442         * tree-vect-loop.c (vect_analyze_loop_operations): Add
6443         vectorizable cycles in hybrid SLP check.
6444         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
6445
6446 2010-02-16  Richard Guenther  <rguenther@suse.de>
6447
6448         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
6449         (true_dependence): If memrefs_conflict_p computes must-alias
6450         trust it.  Move TBAA check after offset-based disambiguation.
6451         (canon_true_dependence): Likewise.
6452
6453 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
6454
6455         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
6456         * doc/invoke.texi: Document it.
6457         * var-tracking.c: Include toplev.h and params.h.
6458         (vt_find_locations): Return bool indicating success.  Compute
6459         hash sizes unconditionally.  Check new parameter, report.
6460         (variable_tracking_main_1): Check vt_find_locations results and
6461         retry.  Renamed from...
6462         (variable_tracking_main): ... this.  New wrapper to preserve
6463         flag_var_tracking_assignments.
6464         * Makefile.in (var-tracking.o): Adjust dependencies.
6465
6466 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
6467             Jakub Jelinek <jakub@redhat.com>
6468
6469         PR target/42854
6470         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
6471         if weak_import attribute is present.
6472         * config/darwin.c (machopic_select_section): Likewise.
6473
6474 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
6475
6476         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
6477         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
6478         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
6479         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
6480
6481         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
6482         types.
6483
6484         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6485         Fix argument types.
6486
6487         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
6488         Rewrite text to refer to the names.
6489
6490 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
6491
6492         * config/i386/i386-builtin-types.def
6493         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
6494         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
6495         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
6496         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
6497         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
6498         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
6499         IX86_BUILTIN_VPERMIL2PS256.
6500         (MULTI_ARG_4_DF2_DI_I): Defined.
6501         (MULTI_ARG_4_DF2_DI_I1): Defined.
6502         (MULTI_ARG_4_SF2_SI_I): Defined.
6503         (MULTI_ARG_4_SF2_SI_I1): Defined.
6504         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
6505         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
6506         __builtin_ia32_vpermil2ps256.
6507         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6508         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6509         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
6510         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6511         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6512         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
6513         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
6514         CODE_FOR_xop_vpermil2v8sf3.
6515         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
6516         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
6517         * config/i386/xopintrin.h (_mm_permute2_pd): New.
6518         (_mm256_permute2_pd): New.
6519         (_mm_permute2_ps): New.
6520         (_mm256_permute2_ps): New.
6521
6522 2010-02-15  Nick Clifton  <nickc@redhat.com>
6523
6524         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
6525         boolean parameters.  Use emit_jump_insn when emitting a pop
6526         instruction containing a return insn.
6527         (push): Use 'true' rather than '1' as second parameter to F.
6528         (h8300_expand_prologue): Likewise.
6529         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
6530         (h8300_expand_epilogue): Likewise.
6531
6532 2010-02-15  Richard Guenther  <rguenther@suse.de>
6533
6534         PR middle-end/43068
6535         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
6536         if that is zero.
6537
6538 2010-02-15  Nick Clifton  <nickc@redhat.com>
6539
6540         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
6541         delta.
6542
6543 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
6544
6545         * intl.c (fake_ngettext): New function.
6546         * intl.h (fake_ngettext): Declare.
6547         (ngettext): Define macro.
6548         * collect2.c (notice_translated): New function.
6549         (main): Use notice_translated and ngettext.
6550         * collect2.h (notice_translated): Declare.
6551
6552 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
6553
6554         * reorg.c (delete_computation): Comment fixes.
6555         * caller-save.c (setup_save_areas): Idem.
6556         * sel-sched-dump.c (dump_lv_set): Idem.
6557         * rtl.def: Idem.
6558
6559 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6560
6561         * config/s390/s390.c (s390_sched_init): New function.
6562         (TARGET_SCHED_INIT): Target hook defined.
6563
6564 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
6565             Jack Howarth  <howarth@bromo.med.uc.edu>
6566             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6567
6568         PR target/42982
6569         Partial revert of unintended change in fix for PR41605.
6570         * config/darwin.h: Fix typo.
6571         * config/darwin9.h: Same.
6572
6573 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6574
6575         * c-pch.c (pch_init): Clear v.
6576
6577 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6578
6579         PR middle-end/42930
6580         * graphite-scop-detection.c (graphite_can_represent_scev): Call
6581         graphite_can_represent_init for MULT_EXPR.
6582
6583 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6584
6585         PR middle-end/42914
6586         PR middle-end/42530
6587         * graphite-sese-to-poly.c (remove_phi): New.
6588         (translate_scalar_reduction_to_array): Call remove_phi.
6589
6590 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6591
6592         PR middle-end/42771
6593         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
6594         * graphite-clast-to-gimple.h (gloog): Update declaration.
6595         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
6596         * graphite-poly.h (struct poly_bb): Add missing comments.
6597         (struct scop): Add poly_scop_p field.
6598         (POLY_SCOP_P): New.
6599         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
6600         * graphite.c (graphite_transform_loops): Build the polyhedral
6601         representation for each scop before code generation.
6602         * sese.c (rename_variables_in_operand): Removed.
6603         (rename_variables_in_expr): Return the renamed expression.
6604         (rename_sese_parameters): New.
6605         * sese.h (rename_sese_parameters): Declared.
6606
6607 2010-02-11  Richard Guenther  <rguenther@suse.de>
6608
6609         PR tree-optimization/42998
6610         * tree-ssa-pre.c (create_expression_by_pieces): Treat
6611         POINTER_PLUS_EXPR properly.
6612
6613 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6614             Changpeng Fang  <changpeng.fang@amd.com>
6615
6616         PR middle-end/40886
6617         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
6618         the cost of an IV candidate when the IV is used in a test against zero.
6619
6620         * gcc.dg/tree-ssa/ivopts-3.c: New.
6621
6622 2010-02-11  Richard Guenther  <rguenther@suse.de>
6623
6624         PR lto/41664
6625         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
6626         pointer-vs-decl case by swapping refs.  Handle some cases
6627         of pointer-vs-decl disambiguations more conservatively.
6628         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
6629         to false after expanding.
6630
6631 2010-02-11  Richard Guenther  <rguenther@suse.de>
6632
6633         PR driver/43021
6634         * gcc.c (process_command): Handle LTO file@offset case more
6635         appropriately.
6636
6637 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6638
6639         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
6640         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
6641         of DEBUG_INSNs.
6642         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
6643
6644         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
6645         if MEM's mode size isn't DWARF2_ADDR_SIZE.
6646         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
6647         Optimize eq/ne comparisons when both arguments are known to be
6648         zero-extended.
6649         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
6650         Don't mask operands unnecessarily if they are known to be already
6651         zero-extended.
6652
6653 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
6654
6655         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
6656         instead of loop.
6657
6658 2010-02-10  Richard Guenther  <rguenther@suse.de>
6659
6660         PR tree-optimization/43017
6661         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
6662         for wrapping signed arithmetic.
6663
6664 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6665
6666         PR debug/43010
6667         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
6668         if no debug info should be emitted for it.
6669
6670 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6671
6672         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
6673         note when flag_exceptions is set.
6674
6675 2010-02-10  Duncan Sands  <baldrick@free.fr>
6676
6677         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
6678
6679 2010-02-10  Richard Guenther  <rguenther@suse.de>
6680
6681         PR c/43007
6682         * tree.c (get_unwidened): Handle constants.
6683         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
6684
6685 2010-02-10  Martin Jambor  <mjambor@suse.cz>
6686
6687         PR lto/42985
6688         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
6689         check for variable argument counts independently.
6690
6691 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6692
6693         PR target/42841
6694         * config/sh/sh.c (find_barrier): Increase length for non delayed
6695         conditional branches.
6696
6697 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6698
6699         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
6700
6701 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6702
6703         * builtins.c (set_builtin_user_assembler_name): Also handle
6704         ffs if int is smaller than word.
6705
6706 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
6707
6708         PR middle-end/42973
6709         * ira-conflicts.c (get_dup): Remove.
6710         (process_reg_shuffles): Add new parameter.  Use it as an
6711         additional guard for copy generation.
6712         (add_insn_allocno_copies): Rewrite.
6713
6714 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
6715
6716         * common.opt (fsched2-use-traces): Preserved for backward
6717         compatibility.
6718         * doc/invoke.texi: Remove the documentation about option
6719         -fsched2-use-traces.
6720         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
6721         flag_sched2_use_traces.
6722         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
6723         the backward compatibility flag section.
6724
6725 2010-02-09  Richard Guenther  <rguenther@suse.de>
6726
6727         PR tree-optimization/43008
6728         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
6729         make HEAP variables initialized from global memory if they
6730         are not known builtin functions.
6731         (find_func_aliases): Adjust.
6732
6733 2010-02-09  Richard Guenther  <rguenther@suse.de>
6734
6735         PR tree-optimization/43000
6736         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
6737         arithmetic manually.
6738
6739 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
6740
6741         PR tree-optimization/42931
6742         * tree-loop-linear.c (try_interchange_loops): Don't call
6743         double_int_mul if estimated_loop_iterations failed.
6744
6745 2010-02-08  Martin Jambor  <mjambor@suse.cz>
6746
6747         PR middle-end/42898
6748         * tree-sra.c (build_accesses_from_assign): Do not mark in
6749         should_scalarize_away_bitmap if stmt has volatile ops.
6750         (sra_modify_assign): Do not process assigns piecemeal if if stmt
6751         has volatile ops.
6752
6753 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
6754
6755         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
6756
6757 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
6758
6759         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
6760         before the pattern.
6761
6762 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
6763
6764         PR middle-end/42946
6765         * df-core.c (df_finish_pass): Change type of saved_flags to int.
6766
6767 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6768
6769         PR middle-end/42988
6770         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
6771         to unknown_dependence.
6772         (graphite_legal_transform_dr): Handle the unknown_dependence.
6773         (graphite_carried_dependence_level_k): Same.
6774
6775 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6776
6777         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
6778
6779 2010-02-07  Richard Guenther  <rguenther@suse.de>
6780
6781         PR middle-end/42991
6782         * expr.c (get_inner_reference): Always initialize *pbitsize.
6783
6784 2010-02-07  Richard Guenther  <rguenther@suse.de>
6785
6786         PR middle-end/42956
6787         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
6788         new ARRAY_REFs on variable size element or minimal index arrays.
6789         Complete.
6790         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
6791         gimple_fold_indirect_ref.
6792
6793 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
6794
6795         PR target/42957
6796         * arm.c (arm_override_options): Just return if the user has specified
6797         an invalid fpu name.
6798
6799 2010-02-03  Jason Merrill  <jason@redhat.com>
6800
6801         PR c++/42870
6802         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
6803         i386_pe_maybe_record_exported_symbol.
6804
6805 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
6806
6807         PR target/42924
6808         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6809         (pa_delegitimize_address): New function.
6810
6811 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
6812
6813         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
6814         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
6815
6816 2010-02-05  Richard Guenther  <rguenther@suse.de>
6817
6818         PR lto/42762
6819         * lto-streamer-in.c (get_resolution): Deal with references
6820         to undefined functions.
6821
6822 2010-02-05  Richard Guenther  <rguenther@suse.de>
6823
6824         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
6825         (fold_const_aggregate_ref): Likewise.
6826         (ccp_fold_stmt): Substitute loads.
6827         (maybe_fold_reference): Verify types before substituting.
6828         Unshare properly.
6829         (fold_gimple_assign): Unshare properly.
6830         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
6831
6832 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
6833
6834         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
6835         for rs6000_gen_cell_microcode.
6836
6837 2010-02-04  Richard Guenther  <rguenther@suse.de>
6838
6839         PR rtl-optimization/42952
6840         * dse.c (const_or_frame_p): Remove MEM handling.
6841
6842 2010-02-04  Nick Clifton  <nickc@redhat.com>
6843
6844         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
6845         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
6846         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
6847         (mn10300_asm_output_mi_thunk): New function.
6848         (mn10300_can_output_mu_thunk): New function.
6849         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
6850         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
6851         (FUNCTION_ARG): Delete incorrect comment.
6852
6853 2010-02-03  Jason Merrill  <jason@redhat.com>
6854
6855         PR c++/40138
6856         * fold-const.c (operand_equal_p): Handle erroneous types.
6857
6858 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6859
6860         * config/h8300/h8300.md (can_delay): Fix attibute condition.
6861
6862 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
6863
6864         PR rtl-optimization/42941
6865         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
6866         of xmalloc.
6867
6868 2010-02-03  Jason Merrill  <jason@redhat.com>
6869
6870         PR c++/35652
6871         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
6872
6873 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
6874
6875         PR debug/42896
6876         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
6877         (cselib_reset_table): Renamed from...
6878         (cselib_reset_table_with_next_value): ... this.
6879         (cselib_get_next_uid): Renamed from...
6880         (cselib_get_next_unknown_value): ... this.
6881         * cselib.c (next_uid): Renamed from...
6882         (next_unknown_value): ... this.
6883         (cselib_clear_table): Adjust.
6884         (cselib_reset_table): Adjust.  Renamed from...
6885         (cselib_reset_table_with_next_value): ... this.
6886         (cselib_get_next_uid): Adjust.  Renamed from...
6887         (cselib_get_next_unknown_value): ... this.
6888         (get_value_hash): Use hash.
6889         (cselib_hash_rtx): Likewise.
6890         (new_cselib_val): Adjust.  Set and dump uid.
6891         (cselib_lookup_mem): Pass next_uid as hash.
6892         (cselib_subst_to_values): Likewise.
6893         (cselib_log_lookup): Dump uid.
6894         (cselib_lookup): Pass next_uid as hash.  Adjust.
6895         (cselib_process_insn): Adjust.
6896         (cselib_init): Initialize next_uid.
6897         (cselib_finish): Adjust.
6898         (dump_cselib_table): Likewise.
6899         * dse.c (canon_address): Dump value uid.
6900         * print-rtl.c (print_rtx): Print value uid.
6901         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
6902         (dvuid): New type.
6903         (dv_uid): New function, sort of renamed from...
6904         (dv_htab_hash): ... this, reimplemented in terms of it and...
6905         (dv_uid2hash): ... this.  New.
6906         (variable_htab_eq): Drop excess assertions.
6907         (tie_break_pointers): Removed.
6908         (canon_value_cmp): Compare uids.
6909         (variable_post_merge_New_vals): Print uids.
6910         (vt_add_function_parameters): Adjust.
6911         (vt_initialize): Reset table.  Adjust.
6912
6913 2010-02-03  Richard Guenther  <rguenther@suse.de>
6914
6915         PR tree-optimization/42944
6916         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
6917         (call_may_clobber_ref_p_1): Likewise.  Properly handle
6918         malloc and calloc clobbering errno.
6919
6920 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
6921
6922         * doc/invoke.texi: Fix name of sched1 dump.
6923
6924         * opts.c (decode_options): Set flag_tree_switch_conversion
6925         only conditionally on optimize >= 2.
6926
6927         * gcse.c: Assorted comment fixes in pass description.
6928
6929 2010-02-03  Anthony Green  <green@moxielogic.com>
6930
6931         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
6932         nop padding in order to maintain alignment of storage location of
6933         target function address.
6934         (moxie_trampoline_init): Store target function address at newly
6935         aligned location.
6936         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
6937         to 32.
6938         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
6939
6940 2010-02-03  Richard Guenther  <rguenther@suse.de>
6941
6942         PR middle-end/42927
6943         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
6944
6945 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6946
6947         * config.gcc: Reenable check for obsolete targets.
6948         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
6949         mips-sgi-irix6.[0-4]*.
6950
6951 2010-02-02  Nick Clifton  <nickc@redhat.com>
6952
6953         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
6954         constant size of 4 as being the same as 0.
6955         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
6956         can take values in the range 0..4.
6957
6958 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
6959
6960         PR java/41991
6961         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
6962         as _darwin10_Unwind_FindEnclosingFunction().
6963         * libgcc-libsystem.ver: New.
6964
6965 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
6966
6967         PR target/41399
6968         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
6969         implicitly set registers.
6970
6971 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
6972
6973         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
6974         (arm_override_options): Allow automatic selection of the thread
6975         pointer register if thumb2.
6976         (legitimize_pic_address): Improve code sequences for Thumb2.
6977         (arm_call_tls_get_addr): Likewise.
6978         (legitimize_tls_address): Likewise.
6979         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
6980         (pic_load_addr_32bit): ... this.  New named pattern.
6981         * thumb2.md (pic_load_addr_thumb2): Delete.
6982         (pic_load_dot_plus_four): Delete.
6983         (tls_load_dot_plus_four): New named pattern.
6984
6985 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6986
6987         PR libgomp/29986
6988         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
6989         Document fix for TLS bug.
6990
6991 2010-01-31  Richard Guenther  <rguenther@suse.de>
6992
6993         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
6994         conservatively correct.
6995
6996 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6997
6998         PR target/42850
6999         Revert:
7000         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7001
7002         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
7003
7004 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7005
7006         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
7007
7008 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
7009
7010         * config.gcc: Adjust order of makefile fragments for mingw targets.
7011
7012 2010-01-31  Richard Guenther  <rguenther@suse.de>
7013
7014         PR middle-end/42898
7015         * gimplify.c (gimplify_init_constructor): For volatile LHS
7016         initialize a temporary.
7017
7018 2010-01-31  Matthias Klose  <doko@ubuntu.com>
7019
7020         * configure.ac: Fix __stack_chk_fail check for cross builds configured
7021         --with-headers
7022         * configure: Regenerate.
7023
7024 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
7025
7026         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
7027         the same alias set and their sizes different constantness.
7028         (aliasing_component_refs_p): Revert 2009-10-24 change.
7029
7030 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7031
7032         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
7033         unused.
7034
7035 2010-01-29  Richard Guenther  <rguenther@suse.de>
7036
7037         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
7038         Assert we successfully updated the call.
7039
7040 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
7041
7042         PR rtl-optimization/42889
7043         * df.h (df_set_bb_dirty_nonlr): New prototype.
7044         * df-core.c (df_set_bb_dirty_nonlr): New function.
7045         * df-scan.c (df_insn_rescan): Call it instead of
7046         df_set_bb_dirty for DEBUG_INSNs.
7047
7048 2010-01-29  Richard Guenther  <rguenther@suse.de>
7049
7050         PR middle-end/37448
7051         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
7052         quadratic behavior in most cases.
7053
7054 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
7055
7056         PR target/42891
7057         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
7058         in the call to gen_x86_movsicc_0_m1.
7059
7060 2010-01-28  Richard Guenther  <rguenther@suse.de>
7061
7062         PR tree-optimization/42871
7063         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
7064
7065 2010-01-28  Richard Guenther  <rguenther@suse.de>
7066
7067         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
7068         into call arguments.
7069
7070 2010-01-28  Richard Guenther  <rguenther@suse.de>
7071
7072         PR middle-end/42883
7073         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
7074         the forwarder if the destination is an EH landing pad.
7075
7076 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
7077
7078         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
7079         block list passed to gimple_duplicate_sese_tail.
7080         (parallelize_loops): Avoid parallelization when the function
7081         has_nonlocal_label.
7082         Avoid parallelization when the preheader is IRREDUCIBLE.
7083         Try to optimize when estimated_loop_iterations_int is unresolved.
7084         Add the loop's location to the dump file.
7085         * tree-cfg.c (add_phi_args_after_redirect): Remove.
7086         (gimple_duplicate_sese_tail): Remove the check for the latch.
7087         Redirect nexits to the exit block.
7088         Remove handling of the incoming edges to the latch.
7089         Redirect the backedge from the copied latch to the exit bb.
7090
7091 2010-01-28  Michael Matz  <matz@suse.de>
7092
7093         PR target/42881
7094         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
7095         Wrap force_reg into a sequence, emit it before user.
7096
7097 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
7098
7099         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
7100         (arm_rev): New.
7101         (arm_legacy_rev): Likewise.
7102         (thumb_legacy_rev): Likewise.
7103
7104 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7105
7106         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
7107         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
7108         on MEM's address failed, try avoid_constant_pool_reference and
7109         recurse if it returned something different.
7110         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
7111         address, try avoid_constant_pool_reference and recurse if it
7112         returned something different.
7113         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
7114         address and avoid_constant_pool_reference returned something
7115         different, don't set have_address.
7116
7117 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
7118
7119         PR debug/42861
7120         * var-tracking.c (val_store): Add modified argument, obey it.
7121         Adjust callers.
7122         (count_uses): Move down logging of main.
7123         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
7124         don't need resolution.
7125         (emit_notes_in_bb): Likewise.
7126
7127 2010-01-27  Richard Guenther  <rguenther@suse.de>
7128
7129         PR middle-end/42878
7130         * tree-inline.c (remap_decl): Delay remapping of SSA name
7131         default definitions until we need them.
7132
7133 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7134
7135         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7136         (rs6000_delegitimize_address): New function.
7137
7138         * config/s390/s390.c (s390_delegitimize_address): Call
7139         delegitimize_mem_from_attrs.
7140
7141         PR middle-end/42874
7142         * tree-inline.c (cannot_copy_type_1): Removed.
7143         (copy_forbidden): Don't forbid copying of functions containing
7144         records/unions with variable length fields.
7145
7146 2010-01-27  Christian Bruel  <christian.bruel@st.com>
7147
7148         Revert:
7149         PR target/42841
7150         * config/sh/sh.c (find_barrier): Increase length for non delayed
7151         conditional branches.
7152
7153 2010-01-27  Matthias Klose  <doko@ubuntu.com>
7154
7155         * configure.ac (gnu-unique-object): Fix ldd version check.
7156         * configure: Regenerate.
7157
7158 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7159
7160         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
7161         HAVE_GNU_AS value.
7162         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
7163         Test for HAVE_GNU_AS value.
7164
7165 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7166
7167         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
7168         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
7169         INT64_TYPE): Define.
7170         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
7171         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7172         INT_LEAST64_TYPE): Define.
7173         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
7174         UINT_LEAST64_TYPE): Define.
7175         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
7176         INT_FAST64_TYPE): Define.
7177         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7178         UINT_FAST64_TYPE): Define.
7179         (INTMAX_TYPE, UINTMAX_TYPE): Define.
7180         (INTPTR_TYPE, UINTPTR_TYPE): Define.
7181         (SIG_ATOMIC_TYPE): Define.
7182
7183 2010-01-26  Richard Guenther  <rguenther@suse.de>
7184
7185         * df-scan.c (df_scan_set_bb_info): Remove assert.
7186         (df_insn_rescan_debug_internal): Merge asserts.
7187         (df_install_ref): Likewise.
7188         (df_mark_reg): Use bitmap_set_range.
7189         (df_hard_reg_used_p): Remove assert.
7190         (df_hard_reg_used_count): Likewise.
7191
7192 2010-01-26  Richard Guenther  <rguenther@suse.de>
7193
7194         PR rtl-optimization/42685
7195         * web.c (web_main): Ignore DEBUG_INSNs.
7196
7197 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
7198
7199         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
7200
7201         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
7202         Fix types of fndecl and arglist parameters.
7203
7204 2010-01-26  Richard Guenther  <rguenther@suse.de>
7205
7206         PR middle-end/42806
7207         * tree-eh.c (unsplit_eh): Skip debug insns.
7208
7209 2010-01-26  Richard Guenther  <rguenther@suse.de>
7210
7211         PR tree-optimization/42250
7212         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
7213
7214 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
7215
7216         PR fortran/42866
7217         * omp-low.c (expand_omp_sections): Only use single_pred if
7218         l2_bb is single_pred_p.
7219
7220 2010-01-25  Christian Bruel  <christian.bruel@st.com>
7221
7222         PR target/42841
7223         * config/sh/sh.c (find_barrier): Increase length for non delayed
7224         conditional branches.
7225         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
7226
7227 2010-01-24  David S. Miller  <davem@davemloft.net>
7228
7229         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
7230         define if not using GAS.
7231         * config/sparc/sparc.c (sparc_elf_asm_named_section):
7232         Likewise.  Delete SECTION_MERGE code, which is only applicable
7233         when using GAS.
7234
7235 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
7236
7237         PR c++/42748
7238         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
7239         mangling of va_list in system headers.
7240
7241 2010-01-23  Toon Moene  <toon@moene.org>
7242
7243         * tree-predcom.c (combine_chains): Return NULL, not false.
7244
7245 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
7246
7247         * tree-loop-distribution.c (distribute_loop): Fix declaration and
7248         initialization of variable res to agree with return type.
7249
7250 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
7251
7252         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
7253         * tree-sra.c: Add include of expr.h.
7254
7255 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
7256
7257         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
7258         insert the debug stmt on the single non-EH edge from the stmt.
7259
7260 2010-01-22  Richard Henderson  <rth@redhat.com>
7261
7262         PR tree-opt/42833
7263         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
7264         the RHS until after generate_subtree_copies has insertted its
7265         code before the current statement.
7266
7267 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
7268
7269         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
7270
7271         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
7272
7273 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7274
7275         PR tree-optimization/42585
7276         * tree-sra.c (struct access): New field grp_total_scalarization.
7277         (dump_access): Dump the new field.
7278         (should_scalarize_away_bitmap): New variable.
7279         (cannot_scalarize_away_bitmap): Likewise.
7280         (sra_initialize): Allocate new bitmaps.
7281         (sra_deinitialize): Free new bitmaps.
7282         (create_access_1): New function.
7283         (create_access): Parts moved to create_access_1.
7284         (type_consists_of_records_p): New function.
7285         (completely_scalarize_record): Likewise.
7286         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
7287         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
7288         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
7289         access.
7290         (analyze_all_variable_accesses): Completely scalarize small eligible
7291         records.
7292
7293 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7294
7295         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
7296
7297 2010-01-21  Andrew Haley  <aph@redhat.com>
7298
7299         * gcc.c (process_command): Move lang_specific_driver before
7300         setting cc_libexec_prefix.
7301
7302 2010-01-21  Richard Guenther  <rguenther@suse.de>
7303
7304         PR middle-end/19988
7305         * fold-const.c (negate_expr_p): Pretend only negative
7306         real constants are easily negatable.
7307
7308 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
7309             Jason Merrill  <jason@redhat.com>
7310
7311         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
7312         (TYPE_TRANSPARENT_AGGR): this, for union and record.
7313         * calls.c (initialize argument_information): Handle it.
7314         * c-common.c (handle_transparent_union_attribute): Use new name.
7315         * c-decl.c (finish_struct): Ditto.
7316         * c-typeck.c (type_lists_compatible_p): Ditto.
7317         (convert_for_assignment): Use new name and also handle record.
7318         * function.c (aggregate_value_p): Handle it.
7319         (pass_by_reference): Ditto.
7320         (assign_parm_data_types): Ditto.
7321         * print-tree.c (print_node): Ditto.
7322         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
7323         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
7324         * tree.c (first_field): New fn.
7325
7326 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
7327
7328         PR target/42818
7329         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
7330         even when linking statically, for now.
7331
7332 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7333
7334         PR debug/42715
7335         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
7336         without a cselib val.
7337         (count_uses): Accept MO_VAL_SET with no val on stores.
7338         (add_stores): Likewise.
7339
7340 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7341
7342         * var-tracking.c (check_value_val): Add a compile time assertion.
7343         (dv_is_decl_p): Simplify.
7344         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
7345         gcc_assert if ENABLE_CHECKING.
7346
7347 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7348
7349         PR debug/42782
7350         * var-tracking.c: Include tree-flow.h.
7351         (mem_dies_at_call): New.
7352         (dataflow_set_preserve_mem_locs): Use it.
7353         (dataflow_set_remove_mem_locs): Likewise.
7354         (dump_var): Renamed from dump_variable.  Adjust all callers.
7355         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
7356         * Makefile.in (var-tracking.o): Adjust deps.
7357
7358 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
7359
7360         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
7361
7362 2010-01-20  Richard Guenther  <rguenther@suse.de>
7363
7364         PR tree-optimization/42717
7365         * tree-ssa-dce.c (get_live_post_dom): Remove.
7366         (forward_edge_to_pdom): Take an arbitrary edge to copy
7367         degenerate PHI args from.
7368         (remove_dead_stmt): Use the first post-dominator even if it
7369         does not contain live statements as redirection destination.
7370
7371 2010-01-20  Richard Guenther  <rguenther@suse.de>
7372
7373         * tree-inline.c (estimate_num_insns): Handle EH builtins.
7374
7375 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7376
7377         * sel-sched.c (create_speculation_check): Remove set but not used
7378         variable twin.
7379         (try_transformation_cache): Remove set but not used variable ds.
7380         (calculate_privileged_insns): Remove set but not used variables
7381         cur_insn and min_spec_insn.
7382         (find_best_expr): Remove set but not used variable avail_n.
7383         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
7384         variable e.
7385         * cgraphunit.c (assemble_thunk): Remove set but not used variable
7386         false_label.
7387         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
7388         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
7389         new_scop_exit_edge.
7390
7391 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
7392
7393         PR bootstrap/42786
7394         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
7395         cpu types.  Add support for *-sse3 cpu types.
7396         (x86_64-*-*): Ditto.
7397
7398 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7399
7400         PR middle-end/42803
7401         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
7402         argument, call initializer_constant_valid_p_1 instead of
7403         initializer_constant_valid_p, pass CACHE to it, return NULL
7404         immediately if first call returns NULL.
7405         (initializer_constant_valid_p_1): New function.
7406         (initializer_constant_valid_p): Use it.
7407
7408 2010-01-20  Thomas Quinot  <quinot@adacore.com>
7409
7410         * tree.def (PLACEHOLDER_EXPR): Fix comment.
7411
7412 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7413
7414         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
7415         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
7416         (loc_list_from_tree): Don't handle unsigned division.  Handle
7417         signed modulo using DW_OP_{over,over,div,mul,minus}.
7418         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
7419         modulo instead of signed.
7420
7421 2010-01-20  DJ Delorie  <dj@redhat.com>
7422
7423         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
7424         (Fpa): Pass it
7425         (h8300_emit_stack_adjustment): Propogate it.
7426         (push): Pass it.
7427         (h8300_expand_prologue): Likewise.
7428         (h8300_expand_epilogue): Likewise.
7429
7430 2010-01-19  Michael Matz  <matz@suse.de>
7431
7432         PR tree-optimization/41783
7433         * tree-data-ref.c (toplevel): Include flags.h.
7434         (dump_data_dependence_relation):  Also dump the inputs if the
7435         result will be unknown.
7436         (split_constant_offset_1): Look through some conversions.
7437         * tree-predcom.c (determine_roots_comp): Restart a new chain if
7438         the offset from last element is too large.
7439         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
7440         (reassociate_to_the_same_stmt): Handle vector registers.
7441         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
7442         (e.g. conversions).
7443         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
7444         wide_prolog_niters argument, emit widening instructions.
7445         (vect_do_peeling_for_alignment): Adjust caller, use widened
7446         variant of the iteration cound.
7447         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
7448
7449 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7450
7451         PR target/38697
7452         * config/arm/neon-testgen.m (emit_automatics): New parameter
7453         features. Adjust for Fixed_return_reg feature.
7454         (test_intrinsic): Call emit_automatics with new feature.
7455         * config/arm/neon.ml: Update copyright years.
7456         (features): New Fixed_return_reg feature.
7457         (ops): Update feature for Vget_low.
7458
7459 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
7460
7461         PR tree-optimization/42719
7462         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
7463         stmt uses.
7464
7465         PR debug/42728
7466         * fwprop.c (all_uses_available_at): Return false if def_set dest
7467         is a REG that is used in def_insn.
7468
7469 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
7470
7471         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
7472
7473         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
7474         Add argument names.
7475
7476         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
7477
7478         * target.h (struct gcc_target) <secondary_reload>: Change type
7479         of last argument to secondary_reload_info *.
7480
7481 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
7482
7483         PR target/42774
7484         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
7485         memory references with unaligned offsets.  Remove CQImode handling.
7486         (unaligned_memory_operand): Return 1 for memory references with
7487         unaligned offsets.  Remove CQImode handling.
7488
7489 2010-01-18  Richard Guenther  <rguenther@suse.de>
7490
7491         PR middle-end/39954
7492         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
7493         builtin calls.
7494
7495 2010-01-18  Richard Guenther  <rguenther@suse.de>
7496
7497         PR tree-optimization/42781
7498         * tree-ssa-structalias.c (find_what_var_points_to): Skip
7499         restrict processing only if the original variable was artificial.
7500
7501 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
7502
7503         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
7504         find number of popped argument bytes.
7505
7506         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
7507         Fix the text that describes the return value for invalid insns.
7508
7509         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
7510
7511         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
7512         Clarify what 'cost of the -dependence' is.  Fix quoting.
7513
7514         * toplev.c (default_get_pch_validity): Rename argument to "sz".
7515         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
7516
7517 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
7518
7519         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7520         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
7521
7522 2010-01-17  Richard Guenther  <rguenther@suse.de>
7523
7524         PR middle-end/42248
7525         * function.c (split_complex_args): Take a VEC to modify.
7526         (assign_parms_augmented_arg_list): Build a VEC instead of
7527         a chain of PARM_DECLs.
7528         (assign_parms_unsplit_complex): Take a VEC of arguments.
7529         Do not fixup unmodified parms.
7530         (assign_parms): Deal with the VEC.
7531         (gimplify_parameters): Likewise.
7532
7533 2010-01-17  Richard Guenther  <rguenther@suse.de>
7534
7535         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
7536         node existence check.
7537         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
7538         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
7539         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
7540         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
7541         (gimple_execute_on_growing_pred): Likewise.
7542
7543 2010-01-17  Richard Guenther  <rguenther@suse.de>
7544
7545         PR tree-optimization/42773
7546         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
7547         (compute_antic_aux): Likewise.
7548         (compute_partial_antic_aux): Likewise.
7549
7550 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
7551
7552         PR debug/42767
7553         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
7554         and US_TRUNCATE.
7555
7556 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
7557
7558         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
7559         appearance.
7560
7561         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
7562         Fix markup for strict argument.
7563
7564         (TARGET_SCHED_REORDER2): Fix argument types.
7565
7566         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
7567         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
7568
7569         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
7570         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
7571
7572         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
7573         Add argument name.
7574
7575         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
7576         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
7577         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
7578         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
7579         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
7580
7581         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
7582
7583         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
7584
7585         (TARGET_ASM_RELOC_RW_MASK): Add return type.
7586         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
7587
7588         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
7589
7590         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
7591         Use prototype.
7592
7593         (TARGET_ASM_NAMED_SECTION): Fix argument list.
7594
7595         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
7596         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
7597
7598         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
7599
7600         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
7601
7602         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
7603         referring to it.  Fix language.
7604
7605         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
7606
7607         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
7608
7609         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
7610
7611         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
7612
7613         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
7614         '@var{stream}.  Remove stray 'and'.
7615
7616         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
7617
7618         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
7619
7620         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
7621
7622         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
7623         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
7624
7625         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
7626         Fix description of return value.
7627         Rename argument "sz" to "len."
7628
7629         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
7630         Clarify meaning of 'true' return value.
7631
7632         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
7633
7634         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
7635         rep_mode versus mode_rep.
7636
7637         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
7638
7639         (TARGET_BUILTIN_DECL): Fix name.
7640
7641         (TARGET_COMMUTATIVE_P): Fix type of first argument.
7642
7643         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
7644
7645         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
7646
7647         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
7648
7649         (TARGET_RELAXED_ORDERING): Use @deftypevr.
7650
7651         (TARGET_GET_DRAP_RTX): Note that this is a hook.
7652         Clarify language.
7653
7654         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
7655         Rename argument tm_fn to md_fn.
7656
7657         (TARGET_OPTION_PRINT): Fix argument list.
7658
7659 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
7660
7661         PR target/42664
7662         * config/i386/i386.c (ix86_fixup_binary_operands):
7663         Revert FMA4 fixup of operands.
7664
7665 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7666
7667         PR gcc/42525
7668         * Makefile.in (write_entries_to_file, install-plugin):
7669         Use \012 instead of \n with tr.
7670
7671 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
7672
7673         * configure.ac (HAVE_AS_REF): New C macro.
7674         * configure: Regenerate.
7675         * config.in: Likewise.
7676         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
7677         if HAVE_AS_REF.
7678         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
7679         if HAVE_AS_REF.
7680
7681 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
7682
7683         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
7684
7685         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
7686
7687         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
7688
7689         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
7690
7691         (TARGET_IN_SMALL_DATA_P): Fix argument type.
7692
7693         (TARGET_BINDS_LOCAL_P): Fix argument type.
7694
7695         (TARGET_ASM_FILE_END): Use prototype.
7696
7697         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
7698
7699         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
7700
7701         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
7702
7703         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
7704
7705         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
7706         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
7707
7708         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
7709         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
7710
7711         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
7712         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
7713         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
7714         (TARGET_ADDR_SPACE_CONVERT): Likewise.
7715
7716         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
7717
7718         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
7719
7720         (TARGET_INIT_BUILTINS): Use prototype.
7721
7722         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
7723         Put 'const char *' in braces.  Fix parameter types.
7724         (TARGET_INVALID_CONVERSION): Fix parameter types.
7725         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
7726         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
7727
7728         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
7729         Fix argument type.
7730
7731         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
7732
7733         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
7734
7735 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
7736
7737         * doc/tm.texi (TARGET_HELP): Fix return type.
7738
7739         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
7740         in braces.  Fix argument types.
7741
7742         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
7743
7744         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
7745
7746         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
7747
7748         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
7749         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
7750
7751         (TARGET_MANGLE_TYPE): Fix argument types.
7752
7753         (TARGET_IRA_COVER_CLASSES): Use prototype.
7754
7755         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
7756
7757         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
7758
7759         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
7760
7761         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
7762
7763         (TARGET_CALLEE_COPIES): Fix argument types.
7764
7765         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
7766
7767         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
7768
7769         (TARGET_FUNCTION_VALUE): Fix argument types.
7770
7771         (TARGET_RETURN_IN_MSB): Fix argument type.
7772
7773         (TARGET_RETURN_IN_MEMORY): Fix argument types.
7774
7775         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
7776
7777         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
7778
7779         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
7780         agree with return type.
7781
7782         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
7783
7784 2010-01-15  Jing Yu  <jingyu@google.com>
7785
7786         PR rtl-optimization/42691
7787         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
7788         a pseudo to a constant and are merged, and adjust comments.
7789
7790 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
7791
7792         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
7793
7794 2010-01-15  Richard Guenther  <rguenther@suse.de>
7795
7796         PR middle-end/42739
7797         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
7798         labels of computed or non-local gotos to the destination.
7799         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
7800         landing pad label is the first label.
7801
7802 2010-01-15  Richard Guenther  <rguenther@suse.de>
7803
7804         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
7805
7806 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7807
7808         PR target/42747
7809         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
7810         to allow generation of the xssqrtdp instruction on power7.
7811         (sqrtdf2_fpr): Ditto.
7812
7813 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7814
7815         PR middle-end/42674
7816         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
7817         functions with noreturn attribute.
7818
7819         PR c++/42608
7820         * varasm.c (declare_weak): Add weak attribute to decl if it
7821         doesn't have one already.
7822         (assemble_external): Only add decls to weak_decls if they also
7823         have weak attribute.
7824
7825 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
7826
7827         * var-tracking.c (var_reg_delete): Don't delete the association
7828         between REGs and values or one-part variables if the register
7829         isn't clobbered.
7830
7831 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7832
7833         PR debug/42657
7834         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
7835         because its first operand is a non-localized variable.
7836
7837 2010-01-14  Martin Jambor  <mjambor@suse.cz>
7838
7839         PR tree-optimization/42706
7840         * tree-sra.c (encountered_recursive_call): New variable.
7841         (encountered_unchangable_recursive_call): Likewise.
7842         (sra_initialize): Initialize both new variables.
7843         (callsite_has_enough_arguments_p): New function.
7844         (scan_function): Call decl and flags check only for IPA-SRA, check
7845         whether there is a recursive call and whether it has enough arguments.
7846         (all_callers_have_enough_arguments_p): New function.
7847         (convert_callers): Look for recursive calls only when
7848         encountered_recursive_call is set.
7849         (ipa_early_sra): Bail out either if
7850         !all_callers_have_enough_arguments_p or
7851         encountered_unchangable_recursive_call.
7852
7853 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7854
7855         * sel-sched.c: Add 2010 to copyright years.
7856         * sel-sched-ir.c: Likewise.
7857         * sel-sched-ir.h: Likewise.
7858
7859 2010-01-14  Martin Jambor  <mjambor@suse.cz>
7860
7861         PR tree-optimization/42714
7862         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
7863         constructors specially.
7864
7865 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7866
7867         * config/i386/drivers-i386.c (detect_caches_intel):
7868         Add l2sizekb parameter and fill in.
7869         (host_detect_local_cpu): Add l2sizekb, fill in.
7870         Add Atom small cache heuristic.
7871
7872 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7873
7874         * config/i386/drivers-i386.c (detect_caches_cpuid4):
7875         Add level3 parameter and fill in.
7876         (detect_caches_intel): Handle level3 cache.
7877
7878 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7879
7880         * config/i386/drivers-i386.c (host_detect_local_cpu):
7881         Fix core duo detection.
7882
7883 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7884
7885         * config/i386/drivers-i386.c (host_detect_local_cpu):
7886         Fix Atom detection.
7887
7888 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7889
7890         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
7891         (rs6000_variable_issue_1): this.  Use...
7892         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
7893
7894 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7895
7896         * sel-sched-ir.c (sel_restore_other_notes): Rename to
7897         sel_restore_notes.  Update all callers.  Call reemit_notes
7898         for all insns.
7899
7900 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7901
7902         PR rtl-optimization/42246
7903         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
7904         loops.
7905
7906 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7907
7908         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
7909         all successors is the same as number of successors in current region.
7910
7911 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7912
7913         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
7914         to rename is not separable.  Otherwise check that its LHS is not NULL.
7915
7916 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7917
7918         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
7919
7920 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7921
7922         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
7923         available registers when failed to discover LHS register class.
7924         Fix indentation.  Update comment.
7925
7926 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7927             Alexander Monakov  <amonakov@ispras.ru>
7928
7929         PR rtl-optimization/42389
7930         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
7931         to can_issue_more.
7932         (advance_state_on_fence): Likewise.
7933         (sel_target_adjust_priority): Print debug output only when
7934         sched_verbose >= 4, not 2.
7935         (get_expr_cost): Do not issue all unique insns on the next cycle.
7936         (fill_insns): Initialize can_issue_more from the value saved
7937         with the fence.
7938         * sel-sched-ir.c (flist_add): New parameter issue_more.
7939         Init FENCE_ISSUE_MORE with it.
7940         (merge_fences): Likewise.
7941         (init_fences): Update call to flist_add.
7942         (add_to_fences, add_clean_fence_to_fences)
7943         (add_dirty_fence_to_fences): Likewise.
7944         (move_fence_to_fences): Update call to merge_fences.
7945         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
7946         sched groups.
7947         * sel-sched-ir.h (struct _fence): New field issue_more.
7948         (FENCE_ISSUE_MORE): New accessor macro.
7949
7950 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7951
7952         PR rtl-optimization/42388
7953         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
7954         that have no predecessors nor successors.  Do not call move_bb_info
7955         for empty blocks outside of current region.
7956
7957 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7958
7959         PR rtl-optimization/42294
7960         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
7961         * sel-sched.c (move_exprs_to_boundary): Transitively add all
7962         originators' originators.
7963
7964 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7965
7966         PR rtl-optimization/39453
7967         PR rtl-optimization/42246
7968         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
7969         for pipelining_p.
7970         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
7971
7972 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7973             Alexander Monakov  <amonakov@ispras.ru>
7974
7975         PR middle-end/42245
7976         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
7977         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
7978         argument.  Update all callers.
7979         (tidy_control_flow): ... and here.  Recompute topological order
7980         of basic blocks in region if necessary.
7981         (sel_redirect_edge_and_branch): Change return type.  Return true
7982         if topological order might have been invalidated.
7983         (purge_empty_blocks): Export and move from...
7984         * sel-sched.c (purge_empty_blocks): ... here.
7985         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
7986         (maybe_tidy_empty_bb): Delete prototype.
7987         (purge_empty_blocks): Declare.
7988
7989 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
7990
7991         PR rtl-optimization/42249
7992         * sel-sched.c (try_replace_dest_reg): When chosen register
7993         and original register is the same, do not bail out early, but
7994         still check all original insns for validity of replacing destination
7995         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
7996         in this case.
7997
7998 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7999
8000         PR c/42721
8001         Port from no-undefined-overflow branch:
8002         2009-03-09  Richard Guenther  <rguenther@suse.de>
8003
8004         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
8005
8006 2010-01-14  Richard Guenther  <rguenther@suse.de>
8007
8008         PR lto/42665
8009         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
8010
8011 2010-01-14  Ira Rosen  <irar@il.ibm.com>
8012
8013         PR tree-optimization/42709
8014         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
8015         as scalar type in creation of constant vector operand.
8016
8017 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8018
8019         PR testsuite/42414
8020         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
8021         (check-parallel-%): Match `testsuite' directory component only
8022         at the end.
8023
8024 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
8025
8026         PR translation/39521
8027         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
8028         strings with _().
8029
8030 2010-01-13  Richard Guenther  <rguenther@suse.de>
8031
8032         PR tree-optimization/42730
8033         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
8034         offset zero.
8035
8036 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
8037
8038         PR target/pr42542
8039         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
8040         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
8041         them signed.
8042
8043 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8044
8045         * config/bfin/libgcc-bfin.ver: Regenerate based on current
8046         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
8047         ___umulsi3_highpart.
8048
8049         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
8050         rather than schedule_insns if the pass is enabled.
8051
8052 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8053
8054         PR tree-optimization/42704
8055         * tree-sra.c (sra_modify_assign): Do not delete assignments to
8056         SSA_NAMEs.
8057
8058 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8059
8060         PR tree-optimization/42703
8061         * tree-sra.c (analyze_access_subtree): Check that we can build a
8062         reference to the original data within the aggregate.
8063
8064 2010-01-13  Richard Guenther  <rguenther@suse.de>
8065
8066         PR tree-optimization/42705
8067         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
8068
8069 2010-01-13  Richard Guenther  <rguenther@suse.de>
8070
8071         PR middle-end/42716
8072         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
8073
8074 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8075
8076         PR debug/41371
8077         * var-tracking.c (values_to_unmark): New variable.
8078         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8079         values_to_unmark vector.  Moved body to...
8080         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8081         instead queue it into values_to_unmark vector.
8082         (vt_find_locations): Free values_to_unmark vector.
8083
8084 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
8085
8086         * config/s390/s390.c (override_options): Set
8087         default of max-pending-list-length to 256
8088
8089 2010-01-13  Richard Guenther  <rguenther@suse.de>
8090
8091         PR lto/42678
8092         * tree-pass.h (PROP_gimple_lcx): New.
8093         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
8094         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
8095         before the final cleanup_eh.
8096         (dump_properties): Dump PROP_gimple_lcx.
8097         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
8098         (tree_lower_complex_O0): Remove.
8099         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
8100         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
8101         tree_lower_complex, schedule TODO_update_ssa.
8102         * lto-streamer-out.c (output_function): Stream the functions
8103         properties.
8104         * lto-streamer-in.c (input_function): Likewise.
8105         (lto_read_body): Do not override them here.
8106
8107 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
8108
8109         PR c/42708
8110         * c-typeck.c (build_c_cast): Fold value cast to union type before
8111         wrapping it in a CONSTRUCTOR.
8112
8113 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8114
8115         PR rtl-optimization/42699
8116         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
8117         involved.
8118
8119 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8120
8121         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8122         SUBTARGET_WARN_UNUSED_SPEC): Move ...
8123         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8124         SUBTARGET_WARN_UNUSED_SPEC): ... here
8125         * config/mips/iris5.h (LIBGCC_SPEC): Define.
8126
8127 2010-01-12  Julian Brown  <julian@codesourcery.com>
8128
8129         * config/arm/neon-schedgen.ml (Utils): Don't try to
8130         open missing module.
8131         (find_with_result): New.
8132
8133 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8134
8135         PR debug/42662
8136         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
8137         sharing when canonicalizing ({lt,ge}u (plus a b) b).
8138
8139         PR tree-optimization/42645
8140         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
8141         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
8142         decl_map, set processing_debug_stmt to -1 and return name without
8143         any remapping.
8144
8145 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
8146
8147         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
8148         binutils version, and reword target configuration description.
8149
8150 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8151
8152         * config/avr/avr.h (LINKER_NAME): Remove.
8153
8154 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
8155
8156         PR target/42416
8157         * config/rs6000/rs6000.c (rs6000_override_options): On targets
8158         that support VSX, warn for -mno-altivec if vsx is not disabled,
8159         and disable vsx.
8160
8161 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
8162             Shujing Zhao  <pearly.zhao@oracle.com>
8163
8164         PR translation/42469
8165         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
8166         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
8167         character between option name and help text.
8168         * c.opt (imultilib): Likewise.
8169
8170 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
8171
8172         * lto-streamer-out.c (output_unreferenced_globals): Output static
8173         variables.
8174
8175 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
8176
8177         PR rtl-optimization/42621
8178         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
8179         optimizing for size.
8180         (duplicate_computed_gotos): Remove now-redundant check.
8181
8182 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
8183
8184         PR target/37454
8185         * configure.ac: Save and restore LDFLAGS and LIBS
8186         * configure: Regenerate.
8187
8188 2010-01-10  Richard Guenther  <rguenther@suse.de>
8189
8190         PR middle-end/42667
8191         * builtins.c (fold_builtin_strlen): Add type argument and
8192         convert the resulting length to it.
8193         (fold_builtin_1): Adjust.
8194
8195 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8196
8197         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
8198         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
8199         1 insn.
8200         (num_insns_constant_wide): Adjust for that change.
8201
8202 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8203
8204         PR debug/42631
8205         * web.c (union_defs): Add used argument, to combine uses of
8206         uninitialized regs.
8207         (entry_register): Adjust type and tests of used argument.
8208         (web_main): Widen used for new use.  Pass it to union_defs.
8209         * df.h (union_defs): Adjust prototype.
8210
8211 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8212
8213         PR debug/42630
8214         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
8215         uses in new incoming argument.  Free body.
8216         (reset_debug_uses_in_loop): New.
8217         (analyze_insn_to_expand_var): Call the latter if the former found
8218         anything.  Fix whitespace.  Reject invalid dest overlaps before
8219         going through all insns in the loop.
8220
8221 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8222
8223         PR debug/42629
8224         * haifa-sched.c (dying_use_p): Debug insns don't count.
8225
8226 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8227
8228         PR middle-end/42363
8229         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
8230         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
8231         (verify_gimple_call): Reject LHS in noreturn calls.
8232
8233 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8234
8235         PR debug/42604
8236         PR debug/42395
8237         * tree-vect-loop-manip.c (adjust_info): New type.
8238         (adjust_vec): New pointer to vector.
8239         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
8240         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
8241         (slpeel_update_phis_for_duplicate_loop): Use them.
8242         (slpeel_update_phi_nodes_for_guard1): Likewise.
8243         (slpeel_update_phi_nodes_for_guard2): Likewise.
8244         (slpeel_tree_peel_loop_to_edge): Likewise.
8245         (vect_update_ivs_after_vectorizer): Likewise.
8246
8247 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8248
8249         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
8250         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
8251
8252 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8253
8254         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
8255         bogus uninitialized warning.
8256
8257 2010-01-09  Richard Guenther  <rguenther@suse.de>
8258
8259         PR middle-end/42512
8260         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
8261         the evolution is compatible with the initial condition.
8262
8263 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8264
8265         * gcc.c (process_command): Update copyright notice dates.
8266         * gcov.c (print_version): Likewise.
8267         * gcov-dump.c (print_version): Likewise.
8268         * mips-tfile.c (main): Likewise.
8269         * mips-tdump.c (main): Likewise.
8270
8271 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8272
8273         PR target/41885
8274         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
8275         (rotlhi3): Delete.
8276         (rotlhi3_8): Delete.
8277         (rotlsi3): Delete.
8278         (rotlsi3_8): Delete.
8279         (rotlsi3_16): Delete.
8280         (rotlsi3_24): Delete.
8281         (rotl<mode>3): New.
8282         (*rotw<mode>3): New.
8283         (*rotb<mode>3): New.
8284         * config/avr/avr.c (avr_rotate_bytes): New function.
8285         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
8286
8287 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
8288
8289         PR target/37454
8290         * configure.ac: Modify -rdynamic check.
8291         * configure: Regenerate.
8292
8293 2010-01-08  DJ Delorie  <dj@redhat.com>
8294
8295         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
8296         register popping order.
8297
8298 2010-01-08  Richard Guenther  <rguenther@suse.de>
8299
8300         PR lto/42528
8301         * c.opt (fsigned-char): Also let LTO handle this option.
8302         (funsigned-char): Likewise.
8303
8304 2010-01-07  Richard Guenther  <rguenther@suse.de>
8305
8306         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
8307         (gimple_op): Likewise.
8308         (gimple_op_ptr): Likewise.
8309         (gimple_assign_set_lhs): Remove gcc_assert.
8310         (gimple_assign_set_rhs1): Likewise.
8311         (gimple_assign_set_rhs2): Likewise.
8312         (gimple_call_set_lhs): Likewise.
8313         (gimple_call_set_fn): Likewise.
8314         (gimple_call_set_fndecl): Likewise.
8315         (gimple_call_fndecl): Likewise.
8316         (gimple_call_return_type): Likewise.
8317         (gimple_call_set_chain): Likewise.
8318         (gimple_call_num_args): Likewise.
8319         (gimple_call_set_arg): Likewise.
8320         (gimple_cond_set_code): Likewise.
8321         (gimple_cond_set_lhs): Likewise.
8322         (gimple_cond_set_rhs): Likewise.
8323         (gimple_cond_set_true_label): Likewise.
8324         (gimple_cond_set_false_label): Likewise.
8325         (gimple_label_set_label): Likewise.
8326         (gimple_goto_set_dest): Likewise.
8327         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
8328         (gimple_debug_bind_get_value): Likewise.
8329         (gimple_debug_bind_get_value_ptr): Likewise.
8330         (gimple_debug_bind_set_var): Likewise.
8331         (gimple_debug_bind_set_value): Likewise.
8332         (gimple_debug_bind_reset_value): Likewise.
8333         (gimple_debug_bind_has_value_p): Likewise.
8334         (gimple_return_retval_ptr): Remove gcc_assert.
8335         (gimple_return_retval): Likewise.
8336         (gimple_return_set_retval): Likewise.
8337         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
8338         (safe_referenced_var_iterator): Remove.
8339         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
8340         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
8341         (fill_referenced_var_vec): Remove.
8342         (first_readonly_imm_use): Remove redundant gcc_assert.
8343         (phi_arg_index_from_use): Combine gcc_asserts.
8344         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
8345         (first_imm_use_stmt): Remove redundant gcc_assert.
8346         * tree-cfg.c (verify_gimple_call): Verify function and chain
8347         operands.  Verify arguments.
8348         (verify_types_in_gimple_stmt): Verify condition code and labels.
8349
8350 2010-01-07  Richard Guenther  <rguenther@suse.de>
8351
8352         PR tree-optimization/42641
8353         * sese.c (rename_map_elt_info): Use the SSA name version, do
8354         not hash pointers.
8355
8356 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
8357
8358         PR tree-optimization/42625
8359         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
8360         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
8361
8362 2010-01-07  Duncan Sands  <baldrick@free.fr>
8363
8364         * Makefile.in (PLUGIN_HEADERS): Add version.h.
8365
8366 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
8367
8368         PR target/42511
8369         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
8370         note itself is not function_invariant_p.
8371
8372 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
8373
8374         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
8375         Do not add the DF_NOTE problem.
8376         * store-motion.c (execute_rtl_store_motion): Likewise.
8377
8378 2010-01-07  Martin Jambor  <mjambor@suse.cz>
8379
8380         PR tree-optimization/42157
8381         * tree-sra.c (compare_access_positions): Stabilize sort if both
8382         accesses have integer types, return zero immediately if they are the
8383         same.
8384
8385 2010-01-06  Richard Henderson  <rth@redhat.com>
8386
8387         PR middle-end/41883
8388         * haifa-sched.c (add_to_note_list): Merge into ...
8389         (concat_note_lists): ... here, and ...
8390         (unlink_other_notes, rm_other_notes): Merge into...
8391         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
8392         NOTE_INSN_EPILOGUE_BEG.
8393
8394 2010-01-06  Richard Guenther  <rguenther@suse.de>
8395
8396         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
8397         not inline regular functions into always-inline functions.
8398
8399 2010-01-06  Nick Clifton  <nickc@redhat.com>
8400
8401         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
8402         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
8403         used together.
8404         (OVERRIDE_OPTIONS): Delete.
8405         (OPTIMIZATION_OPTIONS): Define.
8406         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
8407         * config/rx/rx.c (rx_handle_option): Issue an error message if
8408         -mcpu=rx200 and -fpu are used together.
8409         (rx_set_optimization_options): New function.  Issue an error
8410         message if an optimization attribute attempts to reset the FPU/
8411         math optimization pairing.
8412         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
8413         * config/rx/rx.opt: Set the default to 32-bit doubles.
8414         * config/rx/t-rx: Add multilibs for -nofpu option.
8415         * doc/invoke.texi: Update documentation of RX options.
8416
8417 2010-01-06  Richard Guenther  <rguenther@suse.de>
8418
8419         * tree-ssa-pre.c (name_to_id): New global.
8420         (alloc_expression_id): Simplify SSA name handling.
8421         (lookup_expression_id): Likewise.
8422         (init_pre): Zero name_to_id.
8423         (fini_pre): Free it.
8424
8425 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
8426
8427         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
8428
8429 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
8430
8431         PR target/42542
8432         * config/i386/sse.md (smaxv2di3): New.
8433         (umaxv2di3): Likewise.
8434         (sminv2di3): Likewise.
8435         (uminv2di3): Likewise.
8436
8437 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
8438
8439         PR target/42564
8440         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
8441         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
8442         (legitimize_tls_address): Likewise.
8443         (sparc_tls_referenced_p): Likewise.
8444         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
8445         and adjust calls to legitimize_pic_address.
8446         (legitimate_constant_p) Use sparc_tls_referenced_p.
8447         (legitimate_pic_operand_p): Likewise.
8448         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
8449         (sparc_tls_symbol_ref_1): Delete.
8450         (sparc_tls_referenced_p): Make static, recognize specific patterns.
8451         (legitimize_tls_address): Make static, handle CONST patterns.
8452         (legitimize_pic_address): Make static, remove unused parameter and
8453         adjust recursive calls.
8454         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
8455         and adjust call to legitimize_pic_address.
8456         (sparc_output_mi_thunk): Likewise.
8457
8458 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
8459             H.J. Lu  <hongjiu.lu@intel.com>
8460
8461         PR target/42542
8462         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
8463         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
8464         operands to make them signed.
8465
8466         Revert:
8467         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8468
8469         PR target/42542
8470         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8471         GTU to GT for V4SI and V2DI.
8472
8473         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8474         (umin<mode>3): Removed.
8475         (uminv8hi3): New.
8476         (uminv4si3): Likewise.
8477
8478 2010-01-05  Martin Jambor  <mjambor@suse.cz>
8479
8480         PR tree-optimization/42462
8481         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
8482         current_function_decl to helper functions and macros.
8483
8484 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8485
8486         PR bootstrap/41771
8487         * flags.h: Don't include real.h.
8488         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
8489         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
8490         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
8491         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
8492         * dominance.c: Update copyright.
8493         * gimple.c (walk_gimple_op): Remove inline.
8494         * tree-ssa-reassoc.c: Include real.h.
8495         * Makefile.in (FLAGS_H): Remove $(REAL_H).
8496         (tree-ssa-reassoc.o): Depend on $(REAL_H).
8497
8498 2010-01-05  Nick Clifton  <nickc@redhat.com>
8499
8500         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
8501         register to push into the stack frame when the accumulator has to
8502         be saved during interrupts.
8503
8504 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
8505
8506         * doc/invoke.texi: Remove the documentation about option
8507         -Wunreachable-code.
8508         * common.opt (Wunreachable-code):  Preserved for backward
8509         compatibility.
8510         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
8511         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
8512         the backward compatibility flag section.
8513
8514 2010-01-05  Richard Guenther  <rguenther@suse.de>
8515
8516         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
8517
8518 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
8519
8520         PR other/42611
8521         * cfgexpand.c (expand_one_var): Diagnose too large variables.
8522
8523         PR tree-optimization/42508
8524         * tree-sra.c (convert_callers): Check for recursive call
8525         by comparing cgraph nodes instead of decls.
8526         (modify_function): Call ipa_modify_formal_parameters also
8527         on all same_body aliases.
8528
8529         * cgraphunit.c (cgraph_materialize_all_clones): Compare
8530         cgraph nodes when checking for same_body aliases.
8531
8532 2010-01-05  Richard Guenther  <rguenther@suse.de>
8533
8534         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
8535         allocation and lookup.
8536         (get_or_alloc_expr_for_constant): Likewise.
8537         (phi_translate): Sink allocation.
8538
8539 2010-01-04  Richard Guenther  <rguenther@suse.de>
8540
8541         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
8542         a new entry only if needed.
8543         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
8544         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
8545         hashtable lookup.
8546         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
8547         the result array.
8548         (phi_translate): Handle CONSTANTs early.
8549
8550 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8551
8552         PR tree-optimization/42398
8553         * tree-sra.c (struct access): Removed flag grp_different_types.
8554         (dump_access): Do not dump the removed flag.
8555         (sort_and_splice_var_accesses): Do not set the removed flag.
8556         (sra_modify_expr): Check for type compatibility directly.
8557
8558 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8559
8560         PR tree-optimization/42366
8561         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
8562         edges with variable number of parameters.
8563         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
8564         flag instead of asserting it.
8565         (ipa_read_node_info): Read uses_analysis_done flag.
8566
8567 2010-01-04  Richard Guenther  <rguenther@suse.de>
8568
8569         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
8570         iterative_hash_* as intended.
8571         (vn_reference_compute_hash): Likewise.  Simplify hashing
8572         SSA names.
8573         (vn_reference_lookup_2): Likewise.
8574         (vn_nary_op_compute_hash): Likewise.
8575         (vn_phi_compute_hash): Likewise.
8576         (expressions_equal_p): Remove strange code.
8577         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
8578         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
8579         (bitmap_insert_into_set_1): Take value-id as parameter.
8580         (add_to_value): Pass it.
8581         (bitmap_insert_into_set): Likewise.
8582         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
8583
8584 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
8585
8586         PR driver/42442
8587         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
8588         (do_self_spec): For switches with SWITCH_IGNORE set set also
8589         SWITCH_IGNORE_PERMANENTLY.
8590         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
8591         of SWITCH_IGNORE.
8592
8593 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
8594
8595         * lto-streamer-out.c (output_unreferenced_globals): Output the full
8596         tree of an unreferenced global var.
8597
8598 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8599
8600         PR target/42542
8601         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8602         GTU to GT for V4SI and V2DI.
8603
8604         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8605         (umin<mode>3): Removed.
8606         (uminv8hi3): New.
8607         (uminv4si3): Likewise.
8608
8609 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8610
8611         PR lto/42581
8612         * collect2.c (main): Turn on trace in collect2 if -v is passed
8613         to gcc with LTO.
8614
8615 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
8616
8617         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
8618         description of expression operand.
8619
8620 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
8621
8622         * configure.ac: Add install-html to target_list for Make-hooks.
8623         * configure: Regenerate.
8624         * fortran/Make-lang.in (F95_HTMLFILES): New.
8625         (fortran.html): Use it.
8626         (fortran.install-html): New.
8627         * Makefile.in (install-html): Add lang.install-html.
8628         * java/Make-lang.in (JAVA_HTMLFILES): New.
8629         (java.html): Use it.
8630         (java.install-html): New.
8631         * objc/Make-lang.in (objc.install-html): New.
8632         * objcp/Make-lang.in (obj-c++.install-html): New.
8633         * cp/Make-lang.in (c++.install-html): New.
8634         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
8635         * lto/Make-lang.in (lto.install-html): New.
8636
8637 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8638
8639         PR lto/42520
8640         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
8641
8642 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8643
8644         PR rtl-optimization/41862
8645         * store-motion.c (store_killed_in_insn, compute_store_table,
8646         remove_reachable_equiv_notes, replace_store_insn,
8647         build_store_vectors): Ignore all DEBUG_INSNs.
8648
8649 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8650
8651         PR lto/41564
8652         * common.opt: Add dumpdir.
8653
8654         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
8655         isn't specified.
8656         (option_map): Add --dumpdir.
8657
8658         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
8659
8660         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
8661
8662         * opts.c (decode_options): Try dump_dir_name first if
8663         dump_base_name isn't an absolute path.
8664         (common_handle_option): Handle OPT_dumpdir.
8665
8666         * toplev.c (dump_dir_name): New.
8667         (print_switch_values): Also ignore -dumpdir.
8668
8669         * toplev.h (dump_dir_name): New.
8670
8671 2010-01-03  Richard Guenther  <rguenther@suse.de>
8672
8673         PR tree-optimization/42589
8674         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
8675         double-word expansion of bswap32.
8676
8677 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8678
8679         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
8680         with BLOCK_FOR_INSN.
8681         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
8682         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
8683         noce_process_if_block): Likewise.
8684         * gcse.c (compute_local_properties, insert_expr_in_table,
8685         insert_set_in_table, canon_list_insert, find_avail_set,
8686         pre_insert_copy_insn): Likewise.
8687
8688         * basic-block.h (BLOCK_NUM): Move from here...
8689         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
8690
8691 2010-01-03  Richard Guenther  <rguenther@suse.de>
8692
8693         PR tree-optimization/42438
8694         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
8695         contains_may_not_return_call flag.
8696         (BB_MAY_NOTRETURN): New.
8697         (valid_in_sets): Trapping nary operations are not valid
8698         in blocks that may not return.
8699         (insert_into_preds_of_block): Remove check for trapping expressions.
8700         (compute_avail): Compute also BB_MAY_NOTRETURN.
8701
8702 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
8703
8704         * doc/invoke.texi: Add 2010 to copyright years.
8705
8706 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
8707
8708         * config/sparc/sparc.c: Fix formatting nits.
8709
8710 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
8711             Alexander Monakov  <amonakov@ispras.ru>
8712
8713         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
8714
8715 2010-01-02  Richard Guenther  <rguenther@suse.de>
8716
8717         PR middle-end/42577
8718         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
8719         (simplify_switch_using_ranges): Mark to be removed edges
8720         as non-executable.
8721
8722 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8723
8724         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
8725
8726         * collect2.c (scan_libraries): Add missing argument in call to
8727         scan_prog_file.
8728
8729 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
8730
8731         PR target/42448
8732         * config/alpha/predicates.md (aligned_memory_operand): Return false
8733         for CQImode.
8734         (unaligned_memory_operand): Return true for CQImode.
8735         * config/alpha/alpha.c (get_aligned_mem): Assert that location
8736         doesn not cross aligned SImode word boundary.
8737
8738 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
8739
8740         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
8741         Remove.
8742         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
8743         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
8744
8745 2010-01-02  Richard Guenther  <rguenther@suse.de>
8746
8747         PR lto/41597
8748         * toplev.c (compile_file): Emit LTO marker properly.  Change
8749         it to __gnu_lto_v1.
8750         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
8751
8752 2010-01-01  Richard Guenther  <rguenther@suse.de>
8753
8754         PR debug/42455
8755         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
8756
8757 2010-01-01  Richard Guenther  <rguenther@suse.de>
8758
8759         PR c/42570
8760         * c-decl.c (grokdeclarator): For zero-size arrays force
8761         structural equality checks as layout_type does.
8762
8763 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8764
8765         * builtins.c: Update copyright to 2010.
8766
8767 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8768
8769         PR lto/42531
8770         * lto-streamer-out.c (produce_asm): Revert the last change.
8771         (copy_function): Likewise.
8772
8773         * lto-streamer.c (lto_get_section_name): Skip any leading
8774         asterisk in name.
8775
8776 2010-01-01  Richard Guenther  <rguenther@suse.de>
8777
8778         PR middle-end/42559
8779         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
8780         for LABEL_DECLs.
8781
8782 \f
8783 Copyright (C) 2010 Free Software Foundation, Inc.
8784
8785 Copying and distribution of this file, with or without modification,
8786 are permitted in any medium without royalty provided the copyright
8787 notice and this notice are preserved.