new patch
[official-gcc/constexpr.git] / gcc / ChangeLog
blob7220d09b188e81a5c1170516e38d069057e48dc7
1 2009-12-15  Gabriel Dos Reis  <gdr@cse.tamu.edu>
3         * tree.h (VAR_DECL_P): New predicate macro.
4         (FUNCTION_DECL_P): Likewise.
5         (tree_base::lang_flag_7): New language flag.
6         (tree_base::spare): Decrease precision by one.
7         (TREE_LANG_FLAG_7): New.
9 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11         * graphite-blocking.c
12         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
13         * graphite-clast-to-gimple.c
14         (clast_to_gcc_expression): Same.
15         (precision_for_value): Same.
16         (precision_for_interval): Same.
17         (gcc_type_for_interval): Same.
18         (graphite_create_new_guard): Same.
19         (compute_bounds_for_level): Same.
20         (graphite_create_new_loop_guard): Same.
21         * graphite-interchange.c
22         (build_linearized_memory_access): Same.
23         (pdr_stride_in_loop): Same.
24         (memory_strides_in_loop_1): Same.
25         (memory_strides_in_loop): Same.
26         (extend_scattering): Same.
27         (psct_scattering_dim_for_loop_depth): Same.
28         (pbb_number_of_iterations): Same.
29         * graphite-poly.h
30         (debug_iteration_domains): Same.
31         * graphite-ppl.c
32         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
33         (ppl_set_inhomogeneous_gmp): Same.
34         (ppl_strip_loop): Same.
35         (ppl_lexico_compare_linear_expressions): Same.
36         (ppl_read_polyhedron_matrix): Same.
37         (ppl_max_for_le_pointset): Same.
38         * graphite-ppl.h
39         (ppl_read_polyhedron_matrix): Same.
40         (tree_int_to_gmp): Same.
41         (gmp_cst_to_tree): Same.
42         (ppl_set_inhomogeneous): Same.
43         (ppl_set_inhomogeneous_tree): Same.
44         (ppl_set_coef): Same.
45         (ppl_set_coef_tree): Same.
46         * graphite-sese-to-poly.c
47         (build_pbb_scattering_polyhedrons): Same.
48         (build_scop_scattering): Same.
49         (scan_tree_for_params_right_scev): Same.
50         (scan_tree_for_params): Same.
51         (find_params_in_bb): Same.
52         (find_scop_parameters): Same.
53         (add_upper_bounds_from_estimated_nit): Same.
54         (build_loop_iteration_domains): Same.
55         (add_condition_to_domain): Same.
56         (pdr_add_memory_accesses): Same.
58 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
60         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
61         CLooG's value_* macros to their respective mpz_* counterparts.
62         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
63         (graphite_create_new_loop_guard): Same.
64         * graphite-interchange.c (build_linearized_memory_access): Same.
65         (pdr_stride_in_loop): Same.
66         (memory_strides_in_loop_1): Same.
67         (1st_interchange_profitable_p): Same.
68         * graphite-poly.c (extend_scattering): Same.
69         (psct_scattering_dim_for_loop_depth): Same.
70         (pbb_number_of_iterations): Same.
71         (pbb_number_of_iterations_at_time): Same.
72         * graphite-poly.h (new_1st_loop): Same.
73         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
74         (oppose_constraint): Same.
75         (insert_constraint_into_matrix): Same.
76         (ppl_set_inhomogeneous_gmp): Same.
77         (ppl_set_coef_gmp): Same.
78         (ppl_strip_loop): Same.
79         (ppl_lexico_compare_linear_expressions): Same.
80         (ppl_max_for_le_pointset): Same.
81         (ppl_min_for_le_pointset): Same.
82         (ppl_build_realtion): Same.
83         * graphite-ppl.h (gmp_cst_to_tree): Same.
84         (ppl_set_inhomogeneous): Same.
85         (ppl_set_inhomogeneous_tree): Same.
86         (ppl_set_coef): Same.
87         (ppl_set_coef_tree): Same.
88         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
89         (build_scop_scattering): Same.
90         (add_value_to_dim): Same.
91         (scan_tree_for_params_right_scev): Same.
92         (scan_tree_for_params_int): Same.
93         (scan_tree_for_params): Same.
94         (find_params_in_bb): Same.
95         (find_scop_parameters): Same.
96         (add_upper_bounds_from_estimated_nit): Same.
97         (build_loop_iteration_domains): Same.
98         (create_linear_expr_from_tree): Same.
99         (add_condition_to_domain): Same.
100         (pdr_add_memory_accesses): Same.
102 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
103             Jason Merrill  <jason@redhat.com>
105         * c-common.c (c_common_reswords): Add nullptr.
106         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
107         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
108         (gen_type_die_with_usage): Likewise.
109         * dbxout.c (dbxout_type): Likewise.
110         * sdbout.c (plain_type_1): Likewise.
112 2010-05-06  Jason Merrill  <jason@redhat.com>
114         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
115         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
116         ret appropriately.
117         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
119         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
120         stripping WITH_SIZE_EXPR.
121         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
122         change.
124 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
126         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
127         list of obsolete configurations.
128         Disabled check for obsolete configurations.
129         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
130         Removed support for previous versions.
131         * config/mips/iris.h: Removed.
132         * config/mips/iris5.h: Removed.
133         * config/mips/iris6.h: Merged old iris.h contents.
134         (TARGET_IRIX): Removed.
135         (DRIVER_SELF_SPECS): Removed mabi=32.
136         (IDENT_ASM_OP): Removed undef.
137         (STARTFILE_SPEC): Removed mabi=32.
138         (ENDFILE_SPEC): Likewise.
139         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
140         (MACHINE_TYPE): Update for IRIX 6.5.
141         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
142         TARGET_IRIX by TARGET_IRIX6.
143         (mips_file_start): Likewise.
144         (mips_output_external): Remove IRIX 5/6 O32 support.
145         (mips_output_function_prologue): Likewise.
146         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
147         TARGET_IRIX6.
148         (TARGET_CPU_CPP_BUILTINS): Likewise.
149         (TARGET_IRIX): Removed.
150         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
151         (MULTILIB_DIRNAMES): Removed 32.
152         (MULTILIB_OSDIRNAMES): Removed ../lib.
153         * doc/install.texi (Prerequisites): Don't reference IRIX before
154         6.5.
155         (Specific, mips-sgi-irix5): Document removal.
156         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
157         removal.
158         Remove references to older IRIX 6 releases and the O32 ABI.
160 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
162         * gcc.dg/Wunused-var-8.c: Move to...
163         * c-c++-common/Wunused-var-6.c: ... here.  New test.
165         PR bootstrap/43994
166         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
167         instead of DF_REF_REAL_REG.
169 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
171         PR target/43888
172         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
173         handling to still return true for x64 targets.
175 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
177         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
179 2010-05-06  Jan Hubicka  <jh@suse.cz>
181         PR tree-optimization/43791
182         * ipa-inline.c (update_caller_keys): Remove bogus
183         disregard_inline_limits check.
185 2010-05-06  Michael Matz  <matz@suse.de>
187         PR tree-optimization/43984
188         * tree-ssa-pre.c (inserted_phi_names): Remove.
189         (inserted_exprs): Change to bitmap.
190         (create_expression_by_pieces): Set bits, don't append to vector.
191         (insert_into_preds_of_block): Don't handle inserted_phi_names.
192         (eliminate): Don't look at inserted_phi_names, remove deleted
193         insns from inserted_exprs.
194         (remove_dead_inserted_code): Adjust to use bitmaps instead of
195         vectors.
196         (init_pre, fini_pre): Allocate and free bitmaps.
197         (execute_pre): Insert insns on edges before elimination.
199 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
201         * tree.c (initializer_zerop): Handle STRING_CST.
203 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
205         PR 40989
206         * doc/invoke.texi (Wimplicit): Document as C only.
207         * opts.c (common_handle_option): Add argument kind.
208         (handle_option): Rename as read_cmdline_option. Factor out code to...
209         (handle_option): ... here. New.
210         (handle_options): Rename as read_cmdline_options.
211         (decode_options): Update call.
212         (set_option): Use option index instead of option pointer. Classify
213         diagnostics correctly.
214         (enable_warning_as_error): Call handle_option.
215         * opts.h (set_option): Update declaration.
216         (handle_option): Declare.
217         * langhooks.h (struct lang_hooks): Add argument kind to
218         handle_option.
219         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
220         * c-opts.c (set_Wimplicit): Delete.
221         (c_family_lang_mask): New static constant.
222         (c_common_handle_option): Add argument kind. Use handle_option
223         instead of set_Wimplicit.
224         (c_common_post_options): warn_implicit and warn_implicit_int
225         are disabled by default.
226         * c-common.c (warn_implicit): Do not define here.
227         * c-common.h (warn_implicit): Do not declare here.
228         (c_common_handle_option): Update declaration.
229         * lto-opts.c (lto_reissue_options): Update call to set_option.
231 2010-05-06  Richard Guenther  <rguenther@suse.de>
233         PR tree-optimization/43571
234         * domwalk.c (walk_dominator_tree): Walk the dominator
235         sons in more optimal order.
237 2010-05-06  Richard Guenther  <rguenther@suse.de>
239         PR tree-optimization/43934
240         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
241         (stmt_cost): Likewise.
242         (extract_true_false_args_from_phi): New helper.
243         (determine_max_movement): For PHI nodes verify we can hoist them
244         and compute their cost.
245         (determine_invariantness_stmt): Handle PHI nodes.
246         (move_computations_stmt): Likewise.  Hoist PHI nodes in
247         if-converted form using COND_EXPRs.
248         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
249         nodes.
250         (tree_ssa_lim): Likewise.
251         * tree-flow.h (tree_ssa_lim): Adjust prototype.
252         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
254 2010-05-06  Richard Guenther  <rguenther@suse.de>
256         PR tree-optimization/43987
257         * tree-ssa-structalias.c (could_have_pointers): For possibly
258         address-taken variables force pointers to be recorded.
259         (create_variable_info_for_1): Likewise.
260         (push_fields_onto_fieldstack): Pass in wheter all fields
261         must have pointers.
262         (find_func_aliases): Query types instead of vars whether
263         they contain pointers where appropriate.
265 2010-05-06  Jan Hubicka  <jh@suse.cz>
267         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
268         (record_reference, mark_address, mark_load, mark_store): Record
269         references.
270         (record_references_in_initializer): Update call of record_references.
271         (rebuild_cgraph_edges): Remove all references before rebuiding.
272         * cgraph.c (cgraph_create_node): Clear ref list.
273         (cgraph_remove_node): Remove references.
274         (dump_cgraph_node): Dump references.
275         (cgraph_clone_node): Clone references.
276         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
277         (struct cgraph_node, varpool_node): Add ref_lst.
278         * ipa-ref.c: New file.
279         * ipa-ref.h: New file.
280         * ipa-ref-inline.h: New file.
281         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
282         (referenced_from_other_partition_p): New function.
283         (lto_output_varpool_node): Take set arugment; call
284         referenced_from_other_partition.
285         (lto_output_ref): New.
286         (add_references): New.
287         (output_refs): New.
288         (output_cgraph): Compute boundary based on references;
289         output refs.
290         (output_varpool): Accept cgraph_node_set argument.
291         (input_ref): New.
292         (input_refs): New.
293         (input_cgraph): Call input_refs.
294         * lto-section-in.c (lto_section_name): Add refs.
295         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
296         (ipa-ref.o): New file.
297         * varpool.c (varpool_node): Clear ipa ref list.
298         (varpool_remove_node): Remove references.
299         (dump_varpool_node): Dump references.
300         (varpool_assemble_decl): Only compile finalized ones.
301         (varpool_extra_name_alias): Initialize ref list.
302         * lto-streamer.c (lto-get_section_name): Add .refs section.
303         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
304         (referenced_from_other_partition_p): Declared.
306 2010-05-06  Ira Rosen  <irar@il.ibm.com>
308         PR tree-optimization/43901
309         * tree-vect-stmts.c (vectorizable_call): Assert that vector
310         type is not NULL if it's transformation phase, and return
311         FALSE if it's analysis.
312         (vectorizable_conversion, vectorizable_operation, 
313         vectorizable_type_demotion, vectorizable_type_promotion):
314         Likewise.
316 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
318         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
319         Delete.
320         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
321         New define.
322         * config/mips/mips-protos.h
323         (mips_small_register_classes_for_mode_p): Delete prototype.
325 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
327         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
328         * config/arm/arm.c (multiple_operation_profitable_p,
329         compute_offset_order): New static functions.
330         (load_multiple_sequence, store_multiple_sequence): Use them.
331         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
332         memory offsets, not register numbers.
333         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
335 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
337         * stor-layout.c (pending_sizes): Change the type to
338         VEC(tree,gc) *.
339         (get_pending_sizes, put_pending_size, put_pending_sizes):
340         Update the uses of pending_sizes.
341         * c-decl.c (store_parm_decls): Likewise.
342         * c-tree.h (struct c_arg_info): Likewise.
343         * tree.h: Update the prototype for get_pending_sizes and
344         put_pending_sizes.
346 2010-05-05  Jason Merrill  <jason@redhat.com>
348         PR debug/43370
349         * c-common.c (handle_aligned_attribute): Respect
350         ATTR_FLAG_TYPE_IN_PLACE.
352         PR testsuite/43758
353         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
354         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
355         (TARGET_INITIALIZER): Use it.
356         * c-common.c (attribute_takes_identifier_p): Call it.
357         * c-common.h: Update prototype.
358         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
359         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
361 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
363         PR debug/43950
364         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
365         DW_ID_down_case for Fortran compilation units.
367 2010-05-05  Jan Hubicka  <jh@suse.cz>
369         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
370         handle aliases.
372 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
374         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
375         a variable-sized RESULT_DECL.
377 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
379         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
381 2010-05-05  Jason Merrill  <jason@redhat.com>
383         PR c++/43787
384         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
385         returns GS_OK.
386         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
388 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
389             Jakub Jelinek  <jakub@redhat.com>
391         PR debug/43478
392         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
393         (dead_debug_init, dead_debug_finish): New functions.
394         (dead_debug_add, dead_debug_insert_before): Likewise.
395         (df_note_bb_compute): Initialize a dead_debug object, add dead
396         debug uses to it, insert debug bind insns before death insns,
397         reset debug insns that refer to pending uses at the end.
398         * rtl.h (make_debug_expr_from_rtl): New prototype.
399         * varasm.c (make_debug_expr_from_rtl): New function.
401 2010-05-05  Jan Hubicka  <jh@suse.cz>
403         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
404         (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
405         lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
406         lto_varpool_encoder_encode_initializer_p,
407         lto_set_varpool_encoder_encode_initializer): New functions.
408         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
409         call output_varpool.
410         (input_varpool_node): Do not always set analyzed.
411         (input_cgraph_1): Return vector of cgraph nodes.
412         (input_varpool_1): Return vector of varpools.
413         (input_cgraph): Free the vectors.
414         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
415         output only initializers needed.
416         (lto_output): Only call output_cgraph.
417         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
418         * lto-section-out.c (lto_new_out_decl_state): Initialize
419         state->varpool_node_encoder.
420         * lto-streamer.h (lto_varpool_encoder_d): New.
421         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.     
422         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
423         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
424         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
425         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
426         Declare.
427         (output_varpool, input_varpool): Remove declarations.
429 2010-05-05  Jan Hubicka  <jh@suse.cz>
431         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
432         with body can prevail.
434 2010-05-05  Jan Hubicka  <jh@suse.cz>
436         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
437         size.
439 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
441         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
442         dependencies.
444         * gengtype.h (erro_at_line): Constify pos argument.
446         * gengtype.c: Include hashtab.h.
447         (enum gc_used): Document GC_MAYBE_POINTED_TO.
448         (error_at_line): Constify pos argument.
449         (do_typedef): Initialize p->opt field.
450         (get_file_gtfilename): Fix comment typo.
451         (struct walk_type_data): Constify line field.
452         (get_output_file_for_structure): New function.
453         (write_local_func_for_structure): Constify orig_s argument.
454         Use get_output_file_for_structure.
455         (write_func_for_structure): Use get_output_file_for_structure.
456         (INDENT): New define.
457         (dump_pair, dump_type, dump_type_list, dump_typekind)
458         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
459         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
460         functions.
461         (seen_types): New variable.
462         (main): New variable do_dump.  Process "-d" command line option.
463         Call dump_everything if dump requested.
465 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
467         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
468         in a temporary instead of invoking the macro multiple times.
469         (track_expr_p): Likewise.
471 2010-05-04  Neil Vachharajani <nvachhar@google.com>
473         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
474         per new semantics.
475         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
476         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
477         conditions for printing notes.
478         * common.opt (-Wcoverage-mismatch): Allow negative, default to
479         true, update documentation.
480         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
482 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
484         PR c/43981
485         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
486         on dimen.
488 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
490         PR target/43799
491         * config/i386/i386.md (sse_prologue_save): Add clobber CC
492         register.
493         (*sse_prologue_save_insn1): Likewise.
494         (SSE prologue save splitter): Likewise.
496 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
498         * tree.c (free_lang_data_in_one_sizepos): New inline function.
499         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
500         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
501         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
502         all decls.  Call it on DECL_FIELD_OFFSET of fields.
503         (find_decls_types_r): Follow DECL_VALUE_EXPR.
504         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
506 2010-05-04  Martin Jambor  <mjambor@suse.cz>
508         * tree-sra.c (build_access_from_expr_1): The first parameter type
509         changed to simple tree.
510         (build_access_from_expr): Likewise, gsi parameter was eliminated.
511         (scan_assign_result): Renamed to assignment_mod_result, enum elements
512         renamed as well.
513         (build_accesses_from_assign): Removed all parameters except for a
514         simple gimple statement.  Now returns a simple bool.
515         (scan_function): All non-analysis parts moved to separate functions
516         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
517         parameters and updated both callers.
518         (sra_modify_expr): Removed parameter data.
519         (sra_modify_function_body): New function.
520         (perform_intra_sra): Call sra_modify_function_body to modify the
521         function body.
522         (replace_removed_params_ssa_names): Parameter data changed into
523         adjustments vector.
524         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
525         changed the parameter dont_convert to convert with the opposite
526         meaning.
527         (sra_ipa_modify_assign): Parameter data changed into adjustments
528         vector, return value changed to bool.
529         (ipa_sra_modify_function_body): New function.
530         (sra_ipa_reset_debug_stmts): Updated a comment.
531         (modify_function): Use ipa_sra_modify_function_body to modify function
532         body.
534 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
536         PR middle-end/43671
537         * alias.c (true_dependence): Handle the same VALUE in x and mem.
538         (canon_true_dependence): Likewise.
539         (write_dependence_p): Likewise.
541 2010-05-04  Jan Hubicka  <jh@suse.cz>
543         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
544         * cgraphbuild.c: Include ipa-utils.h
545         (record_reference_ctx): New struct.
546         (record_reference): Simplify to work on initializers; not statements.
547         (mark_address, mark_load, mark_store): New.
548         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
549         walk PHI nodes too.
550         (record_references_in_initializer): Update use of record_reference.
551         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
552         walk PHI nodes too.
554 2010-05-04  Jan Hubicka  <jh@suse.cz>
556         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
557         node will be removed anyway.
558         (lto_varpool_replace_node): Allow also unanalyzed nodes;
559         relink aliases of node into prevailing node.
560         * varpool.c (varpool_remove_node): Remove aliases properly;
561         when removing node, remove all its aliases too; remove DECL_INITIAL
562         of removed node; ggc_free the varpool node.
564 2010-05-04  Richard Guenther  <rguenther@suse.de>
566         PR tree-optimization/43879
567         * tree-ssa-structalias.c (alias_get_name): Use
568         DECL_ASSEMBLER_NAME if available.
569         (create_function_info_for): Return the varinfo node.
570         (ipa_pta_execute): Associate same-body aliases and extra names
571         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
573 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
575         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
576         static.
578 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
580         PR bootstrap/43964
581         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
582         only if HONOR_REG_ALLOC_ORDER is not defined.
584 2010-05-04  Richard Guenther  <rguenther@suse.de>
586         PR tree-optimization/43949
587         * tree-vrp.c (extract_range_from_binary_expr): Only handle
588         TRUNC_MOD_EXPR.
590 2010-04-26  Jason Merrill  <jason@redhat.com>
592         * c.opt (-fstrict-enums): New.
593         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
595 2010-05-03  David Ung <davidu@mips.com>
596             James E. Wilson  <wilson@codesourcery.com>
598         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
599         emit the trap instruction before the divide for TUNE_74K.
601 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
603         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
604         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
605         based on the above, for new target hook.
607         * hooks.c (hook_bool_mode_true): New generic hook.
608         * hooks.h (hook_bool_mode_true): Add prototype.
610         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
611         target hook.
612         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
613         target hook, set to hook_bool_mode_false.
614         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
615         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
616         with targetm.small_register_classes_for_mode_p.
617         (find_reusable_reload): Likewise.
618         (combine_reloads): Likewise.
619         * reload1.c (reload_as_needed): Likewise.
620         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
621         * ifcvt.c (noce_process_if_block, check_cond_move_block,
622         dead_or_predicable): Likewise.
623         * regmove.c (optimize_reg_copy_1): Likewise.
624         * calls.c (prepare_call_address): Likewise.
625         (precompute_register_parameters): Likewise.
627         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
628         hook definition.
629         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
630         implementation of the hook that considers all register classes
631         small except for SH64.
632         (sh_override_options): Use the new hook.
633         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
634         Add prototype.
636         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
637         hook definition.
638         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
639         implementation of the hook that considers all register classes
640         small for THUMB1.
641         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
642         Add prototype.
644         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
645         hook definition.
646         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
647         implementation of the hook that considers all register classes
648         small for MIPS16.
649         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
650         Add prototype.
652         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
653         hook definition.
654         * config/m32c/m32c.h: Likewise.
655         * config/pdp11/pdp11.h: Likewise.
656         * config/avr/avr.h: Likewise.
657         * config/xtensa/xtensa.h: Likewise.
658         * config/m68hc11/m68hc11.h: Likewise.
659         * config/mn10300/mn10300.h: Likewise.
660         * config/mcore/mcore.h: Likewise.
661         * config/h8300/h8300.h: Likewise.
662         * config/bfin/bfin.h: Likewise.
664         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
665         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
667 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
669         * double-int.h (tree_to_double_int): Remove macro.
670         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
671         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
672         (tree_to_double_int): New function.
673         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
674         Move ...
675         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
677 2010-05-03  Richard Guenther  <rguenther@suse.de>
679         PR tree-optimization/43971
680         * tree-ssa-structalias.c (get_constraint_for_1): Fix
681         constraints in the !flag_delete_null_pointer_checks case.
683 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
685         PR debug/43972
686         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
687         result mode matches original rtl mode.
689 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
691         PR target/43888
692         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
694 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
696         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
697         when processing flag options.
699 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
701         * gcov-iov.c (main): Change format string placeholder
702         from %#08x to 0x%08x.
703         * genchecksum.c (dosum): Change format string placeholder
704         from %#02x to 0x%02x.
706 2010-05-02  Richard Guenther  <rguenther@suse.de>
708         PR tree-optimization/43879
709         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
711 2010-05-02  Bruno Haible  <bruno@clisp.org>
713         * doc/extend.texi (Function Attributes): Fix a typo.
715 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
717         Revert:
718         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
719         placeholder from 0x%x to %#x.
720         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
721         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
722         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
723         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
724         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
725         * config/i386/i386.c (ix86_target_string): Ditto.
726         * config/i386/i386.c (output_pic_addr_const): Ditto.
727         (print_operand): Ditto.
729 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
731         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
732         placeholder from 0x%x to %#x.
733         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
734         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
735         (ASM_OUTPUT_DEBUG_DATA): Ditto.
736         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
737         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
738         * optc-gen.awk: Ditto.
739         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
740         (HOST_WIDE_INT_PRINT_HEX): Ditto.
741         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
742         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
744 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
746         * target.h (struct calls): Add function_value_regno_p field.
747         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
748         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
749         * targhooks.c (default_function_value_regno_p): New function.
750         * targhooks.h (default_function_value_regno_p): Declare function.
751         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
752         * builtins.c. (apply_result_size): (Ditto.).
753         * combine.c. (likely_spilled_retval_p): (Ditto.).
754         * mode-switching.c. Include 'target.h'.
755         (create_pre_exit): Use function_value_regno_p hook.
756         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
757         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
758         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
760         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
761         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
762         (ix86_function_value_regno_p): Declare as static, change argument
763         type to const unsigned int.
764         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
766 2010-05-01  Richard Guenther  <rguenther@suse.de>
768         PR tree-optimization/43949
769         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
770         types.
771         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
773 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
775         * rtl.h (CONST_DOUBLE_P): Define.
776         (rtx_to_double_int): Declare.
777         * emit-rtl.c (rtx_to_double_int): New function.
778         * dwarf2out.c (insert_double): New function.
779         (loc_descriptor, add_const_value_attribute): Clean up, use
780         rtx_to_double_int and insert_double functions.
782 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
784         * doc/extend.texi (Inline): Add missing return keyword to examples.
785         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
786         "command-line".
788 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
790         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
791         the variable part of the offset as well.  Use highest_pow2_factor for
792         all alignment checks.
794 2010-04-30  Richard Guenther  <rguenther@suse.de>
796         PR tree-optimization/43879
797         * tree-ssa-structalias.c (type_could_have_pointers): Functions
798         can have pointers.
800 2010-04-30  Jan Hubicka  <jh@suse.cz>
802         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
803         varpool.
804         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
806 2010-04-30  Jan Hubicka  <jh@suse.cz>
808         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
809         New.
810         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
811         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
812         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
813         cgraph_node_set_needs_ltrans_p): Remove.
815 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
817         * sdbout.c: Include vec.h, do not include varray.h.
818         (deferred_global_decls, sdbout_global_decl,
819         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
820         * toplev.c: Do not include varray.h.
821         (dump_memory_report): Do not dump VARRAY statistics.
822         * gengtype.c (open_base_file): Ignore varray.h.
823         * Makefile.in: Update for abovementioned changes.
824         Remove all traces of varray.c and varray.h.
825         * varray.c: Remove file.
826         * varray.h: Remove file.
828 2010-04-30  Jan Hubicka  <jh@suse.cz>
830         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
831         references.
833 2010-04-30  Jan Hubicka  <jh@suse.cz>
835         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
836         needed.
838 2010-04-30  Richard Guenther  <rguenther@suse.de>
840         * tree-ssa-structalias.c (get_constraint_for_1): Generate
841         constraints for CONSTRUCTOR.
843 2010-04-30  Richard Guenther  <rguenther@suse.de>
845         PR lto/43946
846         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
847         first after all lowering passes.
849 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
851         * toplev.c: Include varray.h for statistics dumping.
852         * tree.h: Do not declare varray_head_tag.
853         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
854         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
855         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
856         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
857         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
858         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
859         c-common.c, c-common.h, reg-stack.c, basic-block.h,
860         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
861         include varray.h.
862         * Makefile.in: Update for abovementioned changes.
864 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
866         PR debug/43942
867         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
869 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
871         * config/picochip/picochip.c (picochip_legitimize_address): Define.
872         Use this function to do machine-specific conversion.
873         (picochip_legitimize_reload_address): Likewise.
874         (picochip_legitimate_address_p): Check valid base register only if
875         strict.
876         (picochip_check_conditional_copy): Check for modw only if opnd is
877         register.
878         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
879         to call the function in c.
880         * config/picochip/picochip-protos.h
881         (picochip_legitimize_reload_address): Define.
882         * config/picochip/picochip.md (supported_compare1): Define.
884 2010-04-30  Jan Hubicka  <jh@suse.cz>
886         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
887         (cgraph_global_info): Remove inlined.
888         (LTO_cgraph_tag_names): Remove.
889         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
890         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
891         simplify cgraph tags and document.
892         (lto_output_node): Use only LTO_cgraph_unavail_node and
893         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
894         for_functions_valid, global info, process and output flags.
895         (input_overwrite_node): Initialize estimated stack size and
896         estimated growth.  Do not read flags we no longer store.
897         (input_node): Likewise do not read info no longer stored.
898         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
899         flag.
901 2010-04-30  Richard Guenther  <rguenther@suse.de>
903         PR tree-optimization/43879
904         * tree-ssa-structalias.c (get_constraint_for_1): Properly
905         handle non-zero initializers.
907 2010-04-30  Richard Guenther  <rguenther@suse.de>
909         * builtins.c (fold_builtin_1): Delete free (0).
911 2010-04-29  Jan Hubicka  <jh@suse.cz>
913         * gengtype.c (open_base_files): Add lto-streamer.h
914         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
915         (pass_ipa_cp): GGC collect.
916         * toplev. (compile_file): Do not output symbols.
917         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
918         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
919         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
920         * lto-section-in.c: Include ggc.h
921         (lto_new_in_decl_state): Alloc in GGC.
922         (lto_delete_in_decl_state): Likewise.
923         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
924         Collect.
926 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
928         PR target/42895
929         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
930         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
931         (HONOR_REG_ALLOC_ORDER): Describe new macro.
932         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
933         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
934         account only if HONOR_REG_ALLOC_ORDER is not defined.
935         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
936         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
938 2010-04-29  Jon Grant  <04@jguk.org>
940         * collect2.c (vflag): Change type from int to bool.
941         (debug): Likewise.
942         (helpflag): New global bool.
943         (main): Set vflag and debug with boolean, not integer truth values.
944         Accept new "--help" option and output usage text if found.
945         * collect2.h (vflag): Update prototype.
946         (debug): Likewise.
948 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
950         PR bootstrap/43936
951         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
953 2010-04-29  Richard Guenther  <rguenther@suse.de>
955         PR bootstrap/43935
956         * plugin.h (invoke_plugin_callbacks): Annotate arguments
957         with ATTRIBUTE_UNUSED.
959 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
961         PR target/43921
962         * config/i386/i386.c (get_some_local_dynamic_name): Replace
963         INSN_P with NONDEBUG_INSN_P.
964         (distance_non_agu_define): Likewise.
965         (distance_agu_use): Likewise.
967 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
969         From Dominique d'Humieres <dominiq@lps.ens.fr>
970         PR bootstrap/43858
971         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
972         test_set.
974 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
976         * plugin.h (invoke_plugin_callbacks): New inline function.
977         * plugin.c (flag_plugin_added): New global flag.
978         (add_new_plugin): Initialize above flag.
979         (invoke_plugin_callbacks): Rename to ...
980         (invoke_plugin_callbacks_full): ... this.
982 2010-04-28  Jan Hubicka  <jh@suse.cz>
984         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
985         (lto_varpool_replace_node): New.
986         (lto_symtab_resolve_symbols): Resolve varpool nodes.
987         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
988         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
989         * cgraph.h (varpool_node_ptr): New type.
990         (varpool_node_ptr): New vector.
991         (varpool_node_set_def): New structure.
992         (varpool_node_set): New type.
993         (varpool_node_set): New vector.
994         (varpool_node_set_element_def): New structure.
995         (varpool_node_set_element, const_varpool_node_set_element): New types.
996         (varpool_node_set_iterator): New type.
997         (varpool_node): Add prev pointers, add used_from_other_partition,
998         in_other_partition.
999         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
1000         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
1001         varpool_get_node, varpool_remove_node): Declare.
1002         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
1003         varpool_node_set_size): New inlines.
1004         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
1005         * tree-pass.h (varpool_node_set_def): Forward declare.
1006         (ipa_opt_pass_d): Summary writting takes vnode sets too.
1007         (ipa_write_optimization_summaries): Update prototype.
1008         * ipa-cp.c (ipcp_write_summary): Update.
1009         * ipa-reference.c (ipa_reference_write_summary): Update.
1010         * lto-cgraph.c (lto_output_varpool_node): New static function.
1011         (output_varpool): New function.
1012         (input_varpool_node): New static function.
1013         (input_varpool_1): New function.
1014         (input_cgraph): Input varpool.
1015         * ipa-pure-const.c (pure_const_write_summary): Update.
1016         * lto-streamer-out.c (lto_output): Update, output varpool too.
1017         (write_global_stream): Kill WPA hack.
1018         (produce_asm_for_decls): Update.
1019         (output_alias_pair_p): Handle variables.
1020         (output_unreferenced_globals): Output only needed partition of varpool.
1021         * ipa-inline.c (inline_write_summary): Update.
1022         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
1023         cgraph.
1024         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
1025         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
1026         varpool_node_set_new, varpool_node_set_add,
1027         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
1028         debug_varpool_node_set): New functions.
1029         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
1030         (execute_one_pass): Process new decls too.
1031         (ipa_write_summaries_2): Pass around vsets.
1032         (ipa_write_summaries_1): Likewise.
1033         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
1034         to add.
1035         (ipa_write_optimization_summaries_1): Pass around vsets.
1036         (ipa_write_optimization_summaries): Likewise.
1037         * varpool.c (varpool_get_node): New.
1038         (varpool_node): Update doubly linked lists.
1039         (varpool_remove_node): New.
1040         (dump_varpool_node): More dumping.
1041         (varpool_enqueue_needed_node): Update doubly linked lists.
1042         (decide_is_variable_needed): Kill ltrans hack.
1043         (varpool_finalize_decl): Kill lto hack.
1044         (varpool_assemble_decl): Skip decls in other partitions.
1045         (varpool_assemble_pending_decls): Update doubly linkes lists.
1046         (varpool_empty_needed_queue): Likewise.
1047         (varpool_extra_name_alias): Likewise.
1048         * lto-streamer.c (lto_get_section_name): Add vars section.
1049         * lto-streamer.h (lto_section_type): Update.
1050         (output_varpool, input_varpool): Declare.
1052 2010-04-28  Mike Stump  <mikestump@comcast.net>
1054         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
1056 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1058         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
1059         record or union type with RECORD_OR_UNION_TYPE_P predicate.
1060         (lto_input_ts_type_tree_pointers): Likewise.
1061         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
1062         (lto_output_ts_type_tree_pointers): Likewise.
1064 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1066         Uniquization of constants at the Tree level
1067         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
1068         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
1069         bit to the end.
1070         (tree_output_constant_def): Declare.
1071         * gimplify.c (gimplify_init_constructor): When using block copy, first
1072         uniquize the constant constructor on the RHS.
1073         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
1074         DECL_IN_CONSTANT_POOL flag.
1075         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
1076         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
1077         constant pool.
1078         (assemble_variable): Deal with symbols belonging to the tree constant
1079         pool.
1080         (get_constant_section): Add ALIGN parameter and simplify.
1081         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
1082         (assemble_constant_contents): Use the expression of the VAR_DECL.
1083         (output_constant_def_contents): Use the alignment of the VAR_DECL.
1084         (tree_output_constant_def): New global function.
1085         (mark_constant): Use the expression of the VAR_DECL.
1086         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
1087         its expression.
1088         (output_object_block): Likewise and assemble the expression.
1090 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1092         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
1093         hash_tree, eq_tree): New tree hash table.
1094         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
1095         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
1096         lto_orig_address_remove): Reimplement.
1098 2010-04-28  Xinliang David Li  <davidxl@google.com>
1100         PR c/42643
1101         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
1102         (compute_uninit_opnds_pos): New function.
1103         (is_non_loop_exit_postdominating): New function.
1104         (compute_control_dep_chain): New function.
1105         (find_pdom): New function.
1106         (convert_control_dep_chain_into_preds): New function.
1107         (find_predicates): New function.
1108         (find_control_equiv_block): New function.
1109         (collect_phi_def_edges): New function.
1110         (find_def_preds): New function.
1111         (find_dom): New function.
1112         (dump_predicates): New function.
1113         (get_cmp_code): New function.
1114         (is_value_included_in): New function.
1115         (find_matching_predicate_in_rest_chains): New function.
1116         (use_pred_not_overlap_with_undef_path_pred): New function.
1117         (is_use_properly_guarded): New function.
1118         (normalize_cond_1): New function.
1119         (is_and_or_or): New function.
1120         (normalize_cond): New function.
1121         (is_gcond_subset_of): New function.
1122         (is_subset_of_any): New function.
1123         (is_or_set_subset_of): New function.
1124         (is_and_set_subset_of): New function.
1125         (is_norm_cond_subset_of): New function.
1126         (is_pred_expr_subset_of): New function.
1127         (is_pred_chain_subset_of): New function.
1128         (is_included_in): New function.
1129         (is_superset_of): New function.
1130         (find_uninit_use): New function.
1131         (warn_uninitialized_phi): New function.
1132         (compute_possibly_undefined_names): New function.
1133         (ssa_undefined_value_p): New function.
1134         (execute_late_warn_uninitialized): New function.
1135         * tree-ssa.c (ssa_undefined_value_p): Removed.
1136         (warn_uninit): Changed to extern.
1137         (warn_uninitialized_phi): Removed.
1138         (warn_uninitialized_vars): Changed to extern.
1139         (execute_late_warn_uninitialized): Removed
1140         * tree-flow.h: Add new prototypes.
1141         * timevar.def: Add new time variable.
1142         * Makefile.in: Add new build file.
1144 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
1146         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1147         type if available.
1149 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1151         PR target/22224
1152         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
1154 2010-04-28  Martin Jambor  <mjambor@suse.cz>
1156         * cgraph.h (struct cgraph_node): New field indirect_calls.
1157         (struct cgraph_indirect_call_info): New type.
1158         (struct cgraph_edge): Removed field indirect_call. New fields
1159         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1160         (cgraph_create_indirect_edge): Declare.
1161         (cgraph_make_edge_direct): Likewise.
1162         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1163         * ipa-prop.h (struct ipa_param_call_note): Removed.
1164         (struct ipa_node_params): Removed field param_calls.
1165         (ipa_create_all_structures_for_iinln): Declare.
1166         * cgraph.c: Described indirect edges and uids in initial comment.
1167         (cgraph_add_edge_to_call_site_hash): New function.
1168         (cgraph_edge): Search also among the indirect edges, use
1169         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1170         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1171         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1172         site hash.
1173         (initialize_inline_failed): Assign a reason to indirect edges.
1174         (cgraph_create_edge_1): New function.
1175         (cgraph_create_edge): Moved some functionality to
1176         cgraph_create_edge_1.
1177         (cgraph_create_indirect_edge): New function.
1178         (cgraph_edge_remove_callee): Add an assert checking for
1179         non-indirectness.
1180         (cgraph_edge_remove_caller): Special-case indirect edges.
1181         (cgraph_remove_edge): Likewise.
1182         (cgraph_set_edge_callee): New function.
1183         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1184         (cgraph_make_edge_direct): New function.
1185         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1186         the declaration of the call statement matches.
1187         (cgraph_node_remove_callees): Special-case indirect edges.
1188         (cgraph_clone_edge): Likewise.
1189         (cgraph_clone_node): Clone also the indirect edges.
1190         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1191         indirect_call, dump count of indirect_calls edges.
1192         * ipa-prop.c (iinlining_processed_edges): New variable.
1193         (ipa_note_param_call): Create indirect edges instead of
1194         creating notes.  New parameter node.
1195         (ipa_analyze_call_uses): New parameter node, pass it on to
1196         ipa_note_param_call.
1197         (ipa_analyze_stmt_uses): Likewise.
1198         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1199         (print_edge_addition_message): Work on edges rather than on notes.
1200         (update_call_notes_after_inlining): Likewise, renamed to
1201         update_indirect_edges_after_inlining.
1202         (ipa_create_all_structures_for_iinln): New function.
1203         (ipa_free_node_params_substructures): Do not free notes.
1204         (ipa_edge_duplication_hook): Propagate bits within
1205         iinlining_processed_edges bitmap.
1206         (ipa_node_duplication_hook): Do not duplicate notes.
1207         (free_all_ipa_structures_after_ipa_cp): Renamed to
1208         ipa_free_all_structures_after_ipa_cp.
1209         (free_all_ipa_structures_after_iinln): Renamed to
1210         ipa_free_all_structures_after_iinln.g
1211         (ipa_write_param_call_note): Removed.
1212         (ipa_read_param_call_note): Removed.
1213         (ipa_write_indirect_edge_info): New function.
1214         (ipa_read_indirect_edge_info): Likewise.
1215         (ipa_write_node_info): Do not stream notes, do stream information
1216         in indirect edges.
1217         (ipa_read_node_info): Likewise.
1218         (lto_ipa_fixup_call_notes): Removed.
1219         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1220         * ipa-inline.c (pass_ipa_inline): Likewise.
1221         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1222         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1223         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1224         is_gimple_call.
1225         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1226         edges.
1227         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1228         (output_cgraph): Stream also indirect edges.
1229         (lto_output_edge): Added capability to stream indirect edges.
1230         (input_edge): Likewise.
1231         (input_cgraph_1): Likewise.
1232         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1233         of indirect edges.
1235 2010-04-28  Richard Guenther  <rguenther@suse.de>
1237         PR tree-optimization/43879
1238         PR tree-optimization/43909
1239         * tree-ssa-structalias.c (struct variable_info): Add
1240         only_restrict_pointers flag.
1241         (new_var_info): Initialize it.  Increment stats.total_vars here.
1242         (create_function_info_for): Do not increment stats.total_vars
1243         here.
1244         (get_function_part_constraint): Fix build with C++.
1245         (insert_into_field_list): Remove.
1246         (push_fields_onto_fieldstack): Properly merge fields.
1247         (create_variable_info_for): Split and simplify.
1248         (create_variable_info_for_1): New piece.
1249         (intra_create_variable_infos): Properly make restrict constraints
1250         from parameters.
1252 2010-04-28  Richard Guenther  <rguenther@suse.de>
1254         PR c++/43880
1255         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1257 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1258             Jan Hubicka <hubicka@ucw.cz>
1260         * doc/invoke.texi (-Wsuggest-attribute=const,
1261         -Wsuggest-attribute=pure): Document.
1262         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1263         (function_always_visible_to_compiler_p,
1264         suggest_attribute, warn_function_pure, warn_function_const):
1265         New functions.
1266         (check_call): Improve debug info.
1267         (analyze_function): Do not check availability.
1268         (add_new_function): Check availability.
1269         (propagate): Output warnings.
1270         (skip_function_for_local_pure_const): New function.
1271         (local_pure_const): Use it; output warnings.
1272         * common.opt (Wsuggest-attribute=const,
1273         Wsuggest-attribute=pure): New.
1275 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1277         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1278         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1279         or DW_CFA_def_cfa_offset{,_sf}.
1281 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1283         * tree.h: Fix truncated long macros.
1285 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1287         * collect2.c (TARGET_64BIT): Redefine to target's default.
1288         * tlink.c: Likewise.
1289         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1290         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1291         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1292         for underscoring __USER_LABEL_PREFIX__.
1293         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1294         (SUB_LINK_ENTRY32): New.
1295         (SUB_LINK_ENTRY64): New.
1296         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1297         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1298         (SUB_LINK_ENTRY64): New.
1299         (SUB_LINK_ENTRY): New.
1300         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1301         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1302         x64 target is choosen.
1303         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1304         * configure: Regenerated.
1305         * configure.ac (leading-mingw64-underscores): Option added.
1307 2010-04-27  Jan Hubicka  <jh@suse.cz>
1309         * doc/invoke.texi (-fipa-profile): Document.
1310         * opts.c (decode_options): Enable ipa-profile at -O1.
1311         * timevar.def (TV_IPA_PROFILE): Define.
1312         * common.opt (fipa-profile): Add.
1313         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1314         flag for clones.
1315         (cgraph_propagate_frequency): Handle only local ones.
1316         * tree-pass.h (pass_ipa_profile): Declare.
1317         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1318         (pass_ipa_profile): Use TV_IPA_PROFILE.
1319         * ipa.c (ipa_profile): New function.
1320         (gate_ipa_profile): Likewise.
1321         (pass_ipa_profile): New global variable.
1322         * passes.c (pass_ipa_profile): New.
1324 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1326         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1328 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1330         PR middle-end/43812
1331         * ipa.c (dissolve_same_comdat_group_list): New function.
1332         (function_and_variable_visibility): Call
1333         dissolve_same_comdat_group_list when comdat group contains external or
1334         newly local nodes.
1335         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1336         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1338 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1340         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1341         (const_hash_1) <VECTOR_CST>: New case.
1342         (compare_constant) <VECTOR_CST>: Likewise.
1343         <ADDR_EXPR>: Deal with LABEL_REFs.
1344         (copy_constant) <VECTOR_CST>: New case.
1346 2010-04-27  Jan Hubicka  <jh@suse.cz>
1348         * cgraph.c (cgraph_propagate_frequency): New function.
1349         * cgraph.h (cgraph_propagate_frequency): Declare.
1350         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1351         cgraph_propagate_frequency.
1353 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1355         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1357 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1359         PR target/40657
1360         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1361         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1362         here to determine which regs to push and how much stack to reserve.
1364 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1366         * doc/gimple.texi (gimple_statement_with_ops): Remove
1367         addresses_taken field.
1368         (gimple_statement_with_memory_ops): Likewise.
1370 2010-04-27  Jan Hubicka  <jh@suse.cz>
1372         * tree-inline.c (eni_inlining_weights): Remove.
1373         (estimate_num_insns): Special case more builtins.
1375 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1377         PR c/32207
1378         * c-typeck.c (build_binary_op): Move forward check for comparison
1379         pointer with null pointer constant and adjust the diagnostic message.
1381 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1383         PR lto/42776
1384         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1385         binutils supports extended .section directive needed by LTO, or
1386         warn if older binutils found.
1387         (LTO_BINARY_READER): New AC_SUBST'd variable.
1388         (LTO_USE_LIBELF): Likewise.
1389         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1390         variable.
1391         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1392         (LTO_USE_LIBELF): Likewise.
1393         * configure: Regenerate.
1395         * collect2.c (is_elf): Rename from this ...
1396         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1397          object files in addition to ELF-formatted ones.
1398         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1399         symbol to be prefixed or not by an extra underscore.
1401         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1402         * config/i386/winnt.c: Also #include lto-streamer.h
1403         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1404         LTO named sections.
1405         (i386_pe_asm_output_aligned_decl_common): Add comment.
1406         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1408 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1410         PR target/43889
1411         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1412         Add missing earlyclobber for second alternative.
1414 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1416         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1417         bits for artificial defs at the top of the block.
1418         * fwprop.c (single_def_use_enter_block): Don't call it.
1420 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1422         PR 43715
1423         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1424         instead of "$gcc_cv_objdump -T".
1425         Use "-undefined dynamic_lookup" on darwin.
1426         * gcc/configure: Regenerate.
1428 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1430         PR c/43893
1431         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1433 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1435         * c-parser.c (struct c_token): Move location field up.
1436         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1437         (struct c_declspecs): Convert typespec_word, storage_class, and
1438         default_int_p into bitfields.
1439         (struct c_declarator): Move loc field up.
1441 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1443         * cfgloop.h (struct loop): Move can_be_parallel field up.
1444         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1445         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1446         down.
1447         (struct iv_cand): Convert pos field into a bitfield.
1448         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1449         field up.
1450         (struct _stmt_vec_info): Shuffle fields for better packing.
1452 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1454         * varasm.c (IN_NAMED_SECTION): Remove guard.
1455         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1456         (IN_NAMED_SECTION_P): ...this.
1457         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1458         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1460 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1462         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1463         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1464         of shadowing it.  Fix comments.
1466 2010-04-26  Jan Hubicka  <jh@suse.cz>
1468         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1469         (cgraph_clone_node): Copy function frequency.
1470         * cgraph.h (node_frequency): New enum
1471         (struct cgraph_node): Add.
1472         * final.c (rest_of_clean_state): Update.
1473         * lto-cgraph.c (lto_output_node): Output node frequency.
1474         (input_overwrite_node): Input node frequency.
1475         * tre-ssa-loop-ivopts (computation_cost): Update.
1476         * lto-streamer-out.c (output_function): Do not output function
1477         frequency.
1478         * predict.c (maybe_hot_frequency_p): Update and handle functions
1479         executed once.
1480         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1481         attribute lookup.
1482         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1483         (compute_function_frequency): Set noreturn functions to be executed
1484         once.
1485         (choose_function_section): Update.
1486         * lto-streamer-in.c (input_function): Do not input function frequency.
1487         * function.c (allocate_struct_function): Do not initialize function
1488         frequency.
1489         * function.h (function_frequency): Remove.
1490         (struct function): Remove function frequency.
1491         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1492         (try_update): Update.
1493         * tree-inline.c (initialize_cfun): Do not update function frequency.
1494         * passes.c (pass_init_dump_file): Update.
1495         * i386.c (ix86_compute_frame_layout): Update.
1496         (ix86_pad_returns): Update.
1498 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1500         PR tree-optimization/43833
1501         * tree-vrp.c (range_int_cst_p): New.
1502         (range_int_cst_singleton_p): New.
1503         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1504         when both operands are constants.  Use range_int_cst_p in
1505         BIT_IOR_EXPR case.
1507 2010-04-26  Jan Hubicka  <jh@suse.cz>
1509         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1511 2010-04-26  Richard Guenther  <rguenther@suse.de>
1513         PR lto/43080
1514         * gimple.c (gimple_decl_printable_name): Deal gracefully
1515         with a NULL DECL_NAME.
1517 2010-04-26  Richard Guenther  <rguenther@suse.de>
1519         PR lto/42425
1520         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1521         if emitting debug information and it is either a function
1522         or a namespace decl.
1524 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1526         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1527         determine if the statement is vectorizable, and a macro to access it.
1528         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1529         Skip statements that can't be vectorized. If the analysis fails,
1530         mark the statement as unvectorizable if vectorizing basic block.
1531         (vect_compute_data_refs_alignment): Likewise.
1532         (vect_verify_datarefs_alignment): Skip statements marked as
1533         unvectorizable. Add print.
1534         (vect_analyze_group_access): Skip statements that can't be
1535         vectorized. If the analysis fails, mark the statement as
1536         unvectorizable if vectorizing basic block.
1537         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1538         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1539         generated stmts for SLP.
1540         (new_stmt_vec_info): Initialize the new field.
1541         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1542         statements marked as unvectorizable.
1544 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1546         * c-common.c (flag_isoc1x): New.
1547         (flag_isoc99): Update comment.
1548         * c-common.h (flag_isoc1x): New.
1549         (flag_isoc99): Update comment.
1550         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1551         __<type>_DECIMAL_DIG__.
1552         * c-opts.c (set_std_c1x): New.
1553         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1554         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1555         * c.opt (-std=c1x, -std=gnu1x): New options.
1556         * doc/cpp.texi: Mention -std=c1x.
1557         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1558         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1559         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1560         * doc/standards.texi: Mention C1X.
1561         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1562         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1563         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1564         Define for C1X.
1566 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1568         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1569         placeholder from 0x%x to %#x.
1570         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1571         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1572         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1573         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1574         * config/i386/i386.c (ix86_target_string): Ditto.
1575         (output_pic_addr_const): Ditto.
1576         (print_operand): Ditto.
1578 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1580         * combine.c (find_split_point): Add third argument.  Use it
1581         to find nested multiply-accumulate instructions.  Adjust calls.
1582         (try_combine): Adjust call to find_split_point.
1584 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1586         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1588 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1590         PR tree-optimization/41442
1591         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1592         (fold_binary_loc): Call it.
1594 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1596         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1597         * opts.c (common_handle_option): Allow disabling it.
1598         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1600 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1602         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1603         between modes if both types are integral.
1605 2010-04-23  Richard Guenther  <rguenther@suse.de>
1607         PR tree-optimization/43572
1608         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1610 2010-04-23  Richard Guenther  <rguenther@suse.de>
1612         PR lto/43455
1613         * tree-inline.c (tree_can_inline_p): Also check compatibility
1614         of return types.
1616 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1618         PR tree-optimization/43846
1619         * tree-sra.c (struct access): New flag grp_assignment_read.
1620         (build_accesses_from_assign): Set grp_assignment_read.
1621         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1622         (enum mark_read_status): New type.
1623         (analyze_access_subtree): Propagate grp_assignment_read, create
1624         accesses also if both direct_read and root->grp_assignment_read.
1626 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1628         PR middle-end/43835
1629         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1630         function does not have type attributes.
1632 2010-04-23  Richard Guenther  <rguenther@suse.de>
1634         PR lto/42653
1635         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1636         of FUNCTION_DECLs.
1638 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1640         * sese.h (create_if_region_on_edge): Remove.
1642         * sese.c (create_if_region_on_edge): Make static.
1644         * tree-inline.c: Do not include ggc.h.
1646         * expr.c: Do not include ggc.h.
1648         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1649         dependencies.
1651 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1653         PR target/43744
1654         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1655         in the middle of insns for casesi_worker_2.
1657 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1659         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1661 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1663         PR tree-optimization/43842
1664         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1665         loop unrolling in update of exit phis. Fix comment.
1666         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1667         least two reduction statements in the loop before starting SLP
1668         analysis.
1670 2010-04-22  Nick Clifton  <nickc@redhat.com>
1672         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1674 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1676         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1677         to simplify a + ~a.
1679 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1681         * tree-parloops.c (loop_parallel_p): New argument
1682         parloop_obstack.  Pass it down.
1683         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1684         pass it down, free it.
1686         * tree-loop-linear.c (linear_transform_loops): Pass down
1687         lambda_obstack.
1689         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1690         of type struct obstack *.
1692         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1693         scratch_obstack.  Initialize it, pass down, free it.
1695         * lambda.h (lambda_loop_new): Remove.
1696         (lambda_matrix_new, lambda_matrix_inverse)
1697         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1698         argument of type struct obstack *.
1700         * lambda-trans.c (lambda_trans_matrix_new): New argument
1701         lambda_obstack.  Pass it down, use obstack allocation for ret.
1702         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1703         it down.
1705         * lambda-mat.c (lambda_matrix_get_column)
1706         (lambda_matrix_project_to_null): Remove.
1707         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1708         allocation for mat.
1709         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1710         lambda_obstack.
1712         * lambda-code.c (lambda_loop_new): New function.
1713         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1714         (lambda_compute_auxillary_space, lambda_compute_target_space)
1715         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1716         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1717         (build_access_matrix): New argument lambda_obstack.  Use obstack
1718         allocation for am.
1719         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1720         argument lambda_obstack.  Pass it down.
1722 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1724         * optabs.h (expand_widening_mult): Declare.
1726 2010-04-22  Richard Guenther  <rguenther@suse.de>
1728         PR tree-optimization/43845
1729         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1730         lookup the CALL_EXPR function and arguments.
1732 2010-04-22  Nick Clifton  <nickc@redhat.com>
1734         * config/stormy16/stormy16.c
1735         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1736         * config/stormy16/stormy16.h: Tidy up formatting.
1737         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1738         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1739         (ineqbranchsi): Delete pattern.
1740         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1741         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1742         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1743         stormy16-lib2-ucmpsi2.c.
1745 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1747         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1748         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1749         extra set merge_set_noclobber, and use it to relax the final test
1750         slightly.
1751         * df.h (df_simulate_find_noclobber_defs): Declare.
1752         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1753         conditional defs.
1754         (df_simulate_find_noclobber_defs): New function.
1756 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1758         * config/i386/i386.md: Use {} around multi-line preparation statements.
1760 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1762         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1763         (process_init_element): New argument of type struct obstack *.
1765         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1766         (set_init_index, set_init_label, set_nonincremental_init)
1767         (set_nonincremental_init_from_string, find_init_member)
1768         (output_init_element, output_pending_init_elements)
1769         (process_init_element): New argument braced_init_obstack.  Pass it
1770         down.
1771         (push_range_stack, add_pending_init): New argument
1772         braced_init_obstack.  Use obstack allocation.
1774         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1775         braced_init_obstack.  Pass it down.
1776         (c_parser_braced_init): New variables ret, braced_init_obstack.
1777         Initialize obstack, pass it down and finally free it.
1779 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1781         PR middle-end/29274
1782         * tree-pass.h (pass_optimize_widening_mul): Declare.
1783         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1784         gate_optimize_widening_mul): New static functions.
1785         (pass_optimize_widening_mul): New.
1786         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1787         <case MULT_EXPR>: Remove support for widening multiplies.
1788         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1789         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1790         simplify_gen_unary rather than directly building extensions.
1791         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1792         WIDEN_MULT_EXPR.
1793         * expmed.c (expand_widening_mult): New function.
1794         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1796 2010-04-21  Jan Hubicka  <jh@suse.cz>
1798         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1799         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1800         * lto-wpa-fixup.c: Remove.
1801         * Makefile.in (lto-wpa-fixup.o): Remove.
1802         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1803         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1804         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1806 2010-04-21  Jan Hubicka  <jh@suse.cz>
1808         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1809         add write_optimization_summary, read_optimization_summary.
1810         (ipa_write_summaries_of_cgraph_node_set): Remove.
1811         (ipa_write_optimization_summaries): Declare.
1812         (ipa_read_optimization_summaries): Declare.
1813         * ipa-cp.c (pass_ipa_cp): Update.
1814         * ipa-reference.c (pass_ipa_reference): Update.
1815         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1816         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1817         Update.
1818         * ipa-inline.c (pass_ipa_inline): Update.
1819         * ipa.c (pass_ipa_whole_program): Update.
1820         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1821         * passes.c (ipa_write_summaries_1): Do not test wpa.
1822         (ipa_write_optimization_summaries_1): New.
1823         (ipa_write_optimization_summaries): New.
1824         (ipa_read_summaries): Do not test ltrans.
1825         (ipa_read_optimization_summaries_1): New.
1826         (ipa_read_optimization_summaries): New.
1828 2010-04-21  Jan Hubicka  <jh@suse.cz>
1830         * lto-cgraph.c (lto_output_node): Do not output comdat groups
1831         for boundary nodes.
1832         (output_cgraph): Do not arrange comdat groups for boundary nodes.
1834 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1836         PR debug/40040
1837         * dwarf2out.c (add_name_and_src_coords_attributes): Add
1838         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
1840 2010-04-21  Jan Hubicka  <jh@suse.cz>
1842         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
1844 2010-04-21  Jan Hubicka  <jh@suse.cz>
1846         * varpool.c (decide_is_variable_needed): Variable is always needed
1847         during ltrans.
1849 2010-04-21  Jan Hubicka  <jh@suse.cz>
1851         * opts.c (decode_options): Enable pure-const pass for whopr.
1853 2010-04-21  Jan Hubicka  <jh@suse.cz>
1855         * cgraph.c (dump_cgraph_node): Dump also assembler name.
1856         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
1857         at WPA dumping.
1858         (cgraph_decide_inlining): Do not expect callee to be removed in all
1859         cases.
1861 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
1863         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
1865 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1867         * config/i386/i386.md (x86_shrd): Add athlon_decode and
1868         amdfam10_decode attributes.
1870 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1872         PR middle-end/43570
1873         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
1874         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
1875         (lower_copyprivate_clauses): Use private var in outer
1876         context instead of original var.  Make sure the types
1877         are correct for VLAs.
1879 2010-04-21  Richard Guenther  <rguenther@suse.de>
1881         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
1882         to non-pointer objects.
1884 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1886         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
1887         last chain entry if it starts with the still current label.
1888         (add_location_or_const_value_attribute): Check that
1889         loc_list->first->next is NULL instead of comparing ->first with ->last.
1890         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
1891         to add_var_loc_to_decl.
1893         * dwarf2out.c (output_call_frame_info): For dw_cie_version
1894         >= 4 add also address size and segment size fields into CIE header.
1896         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
1897         long as address size is the same as sizeof (void *) and
1898         segment size is 0.
1899         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
1900         address size or segment size is unexpected, return DW_EH_PE_omit.
1901         (classify_object_over_fdes): If get_cie_encoding returned
1902         DW_EH_PE_omit, return -1.
1903         (init_object): If classify_object_over_fdes returned -1,
1904         pretend there were no FDEs at all.
1906 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1908         * config/i386/i386.md (bswap<mode>2): Macroize expander from
1909         bswap{si,di}2 using SWI48 mode iterator.
1910         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
1911         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
1912         set modrm attribute of bswap insn to 0 and remove length attribute.
1913         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
1914         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
1915         set mode attribute to <MODE> and remove length attribute.
1917 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
1919         PR rtl-optimization/43520
1920         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
1921         zero available registers.
1923 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1925         * builtins.c (fold_builtin_cproj): Fold more cases.
1927 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1929         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
1930         (fold_builtin_1): Fold builtin cproj.
1931         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
1932         Use ATTR_CONST_NOTHROW_LIST.
1934 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
1936         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
1937         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
1938         ffsi2_no_cmove for !TARGET_CMOVE.
1939         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
1940         (ffssi2): Remove expander.
1941         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
1942         mode iterator.
1943         (ctz<mode>2): Ditto from ctz{si,di}2.
1944         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
1945         mode iterator.
1946         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
1947         mode iterator.
1949 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1951         * dwarf2out.c (AT_linkage_name): Define.
1952         (clone_as_declaration): Handle DW_AT_linkage_name.
1953         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
1954         of DW_AT_MIPS_linkage_name.
1955         (move_linkage_attr): Likewise.
1956         (dwarf2out_finish): Likewise.
1958 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
1960         PR middle-end/41952
1961         * fold-const.c (fold_comparison): New folding rule.
1963 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
1965         * double-int.h (double_int_setbit): Declare.
1966         * double-int.c (double_int_setbit): New function.
1967         * rtl.h (immed_double_int_const): Declare.
1968         * emit-rtl.c (immed_double_int_const): New function.
1969         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1970         and immed_double_int_const functions.
1971         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1972         expand_copysign_bit):  (Ditto.).
1973         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1974         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
1975         * dojump.c (prefer_and_bit_test): (Ditto.).
1976         * expr.c (convert_modes, reduce_to_bit_field_precision,
1977         const_vector_from_tree): (Ditto.).
1978         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1980 2010-04-20  Jan Hubicka  <jh@suse.cz>
1982         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
1983         (dump_cgraph_node): Dump new flags.
1984         * cgraph.h (struct cgraph_node): Add flags
1985         reachable_from_other_partition and in_other_partition.
1986         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
1987         other partition can not be removed.
1988         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
1989         the other partition must be output; silence sanity checking on
1990         leaking functions bodies from other paritition.
1991         * lto-cgraph.c (reachable_from_other_partition_p): New function.
1992         (lto_output_node): Output new flags; do not sanity check that inline
1993         clones are output; drop lto_forced_extern_inline_p code; do not mock
1994         visibility flags at partition boundaries.
1995         (add_node_to): New function.
1996         (output_cgraph): Use it to sort functions so masters appear before
1997         clones.
1998         (input_overwrite_node): Input new flags.
1999         * passes.c (ipa_write_summaries): Do not call
2000         lto_new_extern_inline_states.
2001         * lto-section-out.c (forced_extern_inline,
2002         lto_new_extern_inline_states lto_delete_extern_inline_states,
2003         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
2004         * lto-streamer.h (lto_new_extern_inline_states,
2005         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
2006         lto_forced_extern_inline_p): Kill.
2008 2010-04-20  Richard Guenther  <rguenther@suse.de>
2010         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
2011         from vars that can have pointers.
2012         (process_constraint): Dump useless constraints.
2014 2010-04-20  Richard Guenther  <rguenther@suse.de>
2016         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
2017         (dump_sa_points_to_info): Remove asserts.
2018         (init_base_vars): nothing_id isn't an escape point nor does it
2019         have pointers.
2021 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2023         * tree.h (TYPE_REF_IS_RVALUE): Define.
2024         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
2025         should_move_die_to_comdat, prune_unused_types_walk): Handle
2026         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
2027         (modified_type_die, gen_reference_type_die): Emit
2028         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
2029         if TYPE_REF_IS_RVALUE and -gdwarf-4.
2031 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2033         PR target/43635
2034         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
2035         calls for -fpic -m31 if they have been sibcall optimized.
2037 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
2039         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
2040         ar.lc fixed and call-used.
2042         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
2044 2010-04-19  Jan Hubicka  <jh@suse.cz>
2046         * opts.c (decode_options): Disable whpr incompatible passes.
2047         * lto/lto.c (lto_1_to_1_map): Skip clones.
2048         (read_cgraph_and_symbols): Do not mark everything as needed.
2049         (do_whole_program_analysis): Do map only after optimizing;
2050         set proper cgraph_state; use passmanager.
2052 2010-04-19  DJ Delorie  <dj@redhat.com>
2054         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
2055         POINTER_PLUS_EXPR and fix them.
2057 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
2059         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
2060         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
2061         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
2062         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
2063         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
2064         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
2065         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
2066         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
2067         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
2068         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
2069         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
2071 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2073         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
2074         (check_cond_move_block): Likewise.
2075         (cond_move_process_if_block): Likewise.
2076         (noce_find_if_block): Improve formatting.
2077         (find_if_header): Pass 0 to memset and tweak conditions.
2078         (cond_exec_find_if_block): Fix long lines and tweak conditions.
2080 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2082         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
2083         for -gdwarf-4.
2085         PR middle-end/43337
2086         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
2087         with non-local decl doesn't need chain.
2089 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2091         * ira-color.c (allocno_reload_assign): Avoid accumulating
2092         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
2094 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2096         * gimple.h (create_tmp_reg): Declare.
2097         * gimplify.c (create_tmp_reg): New function.
2098         (gimplify_return_expr): Use create_tmp_reg.
2099         (gimplify_omp_atomic): Likewise.
2100         (gimple_regimplify_operands): Likewise.
2101         * tree-dfa.c (make_rename_temp): Likewise.
2102         * tree-predcom.c (predcom_tmp_var): Likewise.
2103         (reassociate_to_the_same_stmt): Likewise.
2104         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
2105         (get_replaced_param_substitute): Likewise.
2106         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2107         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2108         * tree-ssa-pre.c (get_representative_for): Likewise.
2109         (create_expression_by_pieces): Likewise.
2110         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
2111         (create_tailcall_accumulator): Likewise.
2113 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2115         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
2116         new_stmt.
2117         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
2119 2010-04-19  Richard Guenther  <rguenther@suse.de>
2121         PR tree-optimization/43796
2122         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
2123         from SCEV in the lattice.
2124         (vrp_visit_phi_node): Dump change.
2126 2010-04-19  Richard Guenther  <rguenther@suse.de>
2128         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
2129         * configure: Re-generated.
2131 2010-04-19  Richard Guenther  <rguenther@suse.de>
2133         PR tree-optimization/43783
2134         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
2135         constant ARRAY_REF operands two and three if possible.
2137 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
2139         PR target/43766
2140         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
2142 2010-04-19  Jie Zhang  <jie@codesourcery.com>
2144         PR target/43662
2145         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
2147 2010-04-19  Ira Rosen  <irar@il.ibm.com>
2149         PR tree-optimization/37027
2150         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
2151         and macro to access it.
2152         (vectorizable_reduction): Add argument.
2153         (vect_get_slp_defs): Likewise.
2154         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
2155         statements for possible use in SLP.
2156         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
2157         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
2158         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2159         add new argument.
2160         (vectorizable_reduction): Likewise.
2161         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2162         vect_get_slp_defs.
2163         (vectorizable_type_demotion, vectorizable_type_promotion,
2164         vectorizable_store): Likewise.
2165         (vect_analyze_stmt): Update call to vectorizable_reduction.
2166         (vect_transform_stmt): Likewise.
2167         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2168         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2169         from different interleaving chains in same node.
2170         (vect_slp_rearrange_stmts): New function.
2171         (vect_supported_load_permutation_p): Allow load permutations for
2172         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2173         inside SLP nodes if necessary.
2174         (vect_analyze_slp_instance): Handle reductions.
2175         (vect_analyze_slp): Try to build SLP instances originating from groups
2176         of reductions.
2177         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2178         (vect_get_constant_vectors): Create initial vectors for reductions
2179         according to reduction code. Add new argument.
2180         (vect_get_slp_defs): Add new argument, pass it to
2181         vect_get_constant_vectors.
2182         (vect_schedule_slp_instance): Remove SLP tree root statements.
2184 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2186         * tree.h (ENUM_IS_SCOPED): Define.
2187         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2188         for ENUM_IS_SCOPED enums.
2190 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2192         * fold-const.c (fold_comparison): Use ssizetype.
2193         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2194         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2195         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2196         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2198         * tree.h (initialize_sizetypes): Remove parameter.
2199         (build_common_tree_nodes): Remove second parameter.
2200         * stor-layout.c (initialize_sizetypes): Remove parameter.
2201         Always create an unsigned type.
2202         (set_sizetype): Assert that the passed type is unsigned and simplify.
2203         * tree.c (build_common_tree_nodes): Remove second parameter.
2204         Adjust call to initialize_sizetypes.
2205         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2206         build_common_tree_nodes.
2208 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2210         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2212 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2214         PR tree-optimization/43771
2215         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2216         load permutation doesn't have gaps.
2218 2010-04-18  Jan Hubicka  <jh@suse.cz>
2220         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2221         (sse_prologue_save_insn expander): Use new pattern.
2222         (sse_prologue_save_insn1): New pattern and splitter.
2223         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2224         blocks.
2225         * i386.c (setup_incoming_varargs_64): Do not compute jump
2226         destination here.
2227         (ix86_gimplify_va_arg): Update alignment needed.
2228         (ix86_local_alignment): Do not align all local arrays to 128bit.
2230 2010-04-17  Jan Hubicka  <jh@suse.cz>
2232         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2234 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2236         * arm.md (negdi2): Remove redundant code to force values into a
2237         register.
2239 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2241         * arm/bpabi.S: Add EABI alignment attributes to objects.
2242         * arm/bpabi-v6m.S: Likewise.
2243         * arm/crti.asm: Likewise.
2244         * arm/crtn.asm: Likewise.
2245         * arm/lib1funcs.asm: Likewise.
2246         * arm/libunwind.S: Likewise.
2248 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2250         * arm-protos.h (tune_params): New structure.
2251         * arm.c (current_tune): New variable.
2252         (arm_constant_limit): Delete.
2253         (struct processors): Add pointer to the tune parameters.
2254         (arm_slowmul_tune): New tuning option.
2255         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2256         (all_cores): Adjust to pick up the tuning model.
2257         (arm_constant_limit): New function.
2258         (arm_override_options): Select the appropriate tuning model.  Delete
2259         initialization of arm_const_limit.
2260         (arm_split_constant): Use the new constant-limit model.
2261         (arm_rtx_costs): Pick up the current tuning model.
2262         * arm.md (is_strongarm, is_xscale): Delete.
2263         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2264         for Xscale variant architectures.
2265         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2267 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2269         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2270         can_shift.
2271         (arm_rtx_costs_1): Remove unused variable extra_cost.
2272         (arm_unwind_emit_set): Use variable offset.
2273         (thumb1_output_casesi): Remove unused variable flags.
2275 2010-04-16  Jeff Law  <law@redhat.com>
2277         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2278         needing assignment rather than doing a two-phase assignment.  Remove
2279         unused variable 'm'.
2281 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2283         PR bootstrap/43767
2284         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2286 2010-04-16  Doug Kwan  <dougkwan@google.com>
2288         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2289         (next_operand_entry_id): New static variable.
2290         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2291         (add_to_ops_vec): Assigned unique ID to operand entry.
2292         (struct oecount_s): New field ID.
2293         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2294         (undistribute_ops_list): Assign unique IDs to oecounts.
2295         (init_reassoc): reset next_operand_entry_id.
2297 2010-04-16  Doug Kwan  <dougkwan@google.com>
2299         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2300         missing left parenthesis.
2302 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2304         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2305         *btdi_rex64 using SWI48 mode iterator.
2306         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2307         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2308         *jcc_btdi_mask_rex64.
2310 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2312         * double-int.h (tree_to_double_int): Convert to macro.
2313         * double-int.c (tree_to_double_int): Remove.
2315 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2317         PR debug/43762
2318         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2319         with want_address 2 and in case a single element list might be
2320         possible, call it again with want_address 0.
2322 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2324         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2325         case 'W' print operands for HI mode.
2326         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2327         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2328         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2329         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2331         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2333         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2334         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2335         #xx:3 and #xx:4 mode.
2337         * config/h8300/h8300.md (inverted load with HImode dest): Add
2338         support for H8300SX.
2340         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2341         satisfy 'U' constraint.
2343 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2345         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2346         * configure: Regenerate.
2347         * config.in: Regenerate.
2348         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2349         works.
2351 2010-04-16  Richard Guenther  <rguenther@suse.de>
2353         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2354         (struct tree_decl_common): ... here.
2355         (DECL_PT_UID): Adjust.
2356         (SET_DECL_PT_UID): Likewise.
2357         (DECL_PT_UID_SET_P): Likewise.
2359 2010-04-16  Richard Guenther  <rguenther@suse.de>
2361         PR tree-optimization/43572
2362         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2363         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2364         * tree-flow.h (is_call_clobbered): Remove.
2365         * tree-flow-inline.h (is_call_clobbered): Likewise.
2366         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2367         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2368         (execute_return_slot_opt): Adjust.
2369         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2370         check for call clobbered vars here.
2371         (find_tail_calls): Move tailcall verification to the
2372         proper place.
2374 2010-04-16  Diego Novillo  <dnovillo@google.com>
2376         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2378 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2380         PR target/40603
2381         * config/arm/arm.md (cbranchqi4): New pattern.
2382         * config/arm/predicates.md (const0_operand,
2383         cbranchqi4_comparison_operator): New predicates.
2385 2010-04-16  Richard Guenther  <rguenther@suse.de>
2387         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2388         (dump_gimple_stmt): Likewise.
2390 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2392         * recog.h (struct recog_data): New field is_operator.
2393         (struct insn_operand_data): New field is_operator.
2394         * recog.c (extract_insn): Set recog_data.is_operator.
2395         * genoutput.c (output_operand_data): Emit code to set the
2396         is_operator field.
2397         * reload.c (find_reloads): Use it rather than testing for an
2398         empty constraint string.
2400         PR target/41514
2401         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2402         If the previous insn is a cbranchsi4_insn with the same arguments,
2403         omit the compare instruction.
2405         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2406         register, inputs must be low registers and we need a low register
2407         scratch.  Handle alternative 2 like alternative 3.
2409 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2411         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2412         don't call get_addr on both.  If one expression is a VALUE and
2413         the other a REG, check VALUE's locs if the REG isn't among them.
2415 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2417         * config/sh/sh.h (sh_frame_pointer_required): New function.
2418         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2419         (flag_omit_frame_pointer) Set.
2420         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2421         (rounded_frame_size): Adjust size with outgoing_args_size.
2422         (sh_set_return_address): Must return from stack pointer.
2423         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2424         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2425         (ACCUMULATE_OUTGOING_ARGS): Define.
2426         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2427         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2429 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2431         PR target/43471
2432         * config/sh/sh.c (sh_legitimize_reload_address): Use
2433         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2434         Remove a unneeded check for offset_base.
2436 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2438         * configure: Regenerated.
2440 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2442         * config/s390/s390.c (s390_call_save_register_used): Switch back
2443         to HARD_REGNO_NREGS.
2445 2010-04-15  Richard Guenther  <rguenther@suse.de>
2447         * alias.c (alias_set_subset_of): Handle alias-set zero
2448         child properly.
2450 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2451             Julian Brown  <julian@codesourcery.com>
2453         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2454         alternatives according to use of high and low regs.
2455         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2456         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2457         optimizing for size on Thumb-2.
2459 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2461         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2463 2010-04-15  Richard Guenther  <rguenther@suse.de>
2465         * tree-ssa-structalias.c (struct variable_info): Add
2466         is_fn_info flag.
2467         (new_var_info): Initialize it.
2468         (dump_constraints): Support printing last added constraints.
2469         (debug_constraints): Adjust.
2470         (dump_constraint_graph): Likewise.
2471         (make_heapvar_for): Check for NULL cfun.
2472         (get_function_part_constraint): New function.
2473         (get_fi_for_callee): Likewise.
2474         (find_func_aliases): Properly implement IPA PTA constraints.
2475         (process_ipa_clobber): New function.
2476         (find_func_clobbers): Likewise.
2477         (insert_into_field_list_sorted): Remove.
2478         (create_function_info_for): Properly allocate vars for IPA mode.
2479         Do not use insert_into_field_list_sorted.
2480         (create_variable_info_for): Properly generate constraints for
2481         global vars in IPA mode.
2482         (dump_solution_for_var): Always dump the solution.
2483         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2484         (find_what_var_points_to): Adjust.
2485         (pt_solution_set): Change.
2486         (pt_solution_ior_into): New function.
2487         (pt_solution_empty_p): Export.
2488         (pt_solution_includes_global): Adjust.
2489         (pt_solution_includes_1): Likewise.
2490         (pt_solutions_intersect_1): Likewise.
2491         (dump_sa_points_to_info): Check some invariants.
2492         (solve_constraints): Move constraint dumping ...
2493         (compute_points_to_sets): ... here.
2494         (ipa_pta_execute): ... and here.
2495         (compute_may_aliases): Do not re-compute points-to info
2496         locally if IPA info is available.
2497         (ipa_escaped_pt): New global var.
2498         (ipa_pta_execute): Properly implement IPA PTA.
2499         * tree-into-ssa.c (dump_decl_set): Support dumping
2500         decls not in referenced-vars.
2501         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2502         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2503         (dump_points_to_solution): Likewise.
2504         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2505         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2506         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2507         (copy_decl_to_var): Copy DECL_PT_UID.
2508         (copy_result_decl_to_var): Likewise.
2509         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2510         (copy_node_stat): Copy it.
2511         * tree.h (DECL_PT_UID): New macro.
2512         (SET_DECL_PT_UID): Likewise.
2513         (DECL_PT_UID_SET_P): Likewise.
2514         (struct tree_decl_minimal): Add pt_uid member.
2515         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2516         (pt_solution_empty_p): Declare.
2517         (pt_solution_set): Adjust.
2518         (ipa_escaped_pt): Declare.
2519         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2520         * gimple-pretty-print.c (pp_points_to_solution): New function.
2521         (dump_gimple_call): Dump call clobber/use information.
2522         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2523         * tree-pass.h (TDF_ALIAS): New dump option.
2524         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2525         * doc/invoke.texi (-fipa-pta): Update documentation.
2527 2010-04-15  Richard Guenther  <rguenther@suse.de>
2529         * Makefile.in (OBJS-common): Add gimple-fold.o.
2530         (gimple-fold.o): New rule.
2531         * tree.h (maybe_fold_offset_to_reference,
2532         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2533         prototypes ...
2534         * gimple.h: ... here.
2535         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2536         may_propagate_address_into_dereference): Move prototypes ...
2537         * gimple.h: ... here.
2538         * tree-ssa-ccp.c (get_symbol_constant_value,
2539         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2540         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2541         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2542         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2543         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2544         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2545         gimplify_and_update_call_from_tree): Move ...
2546         * gimple-fold.c: ... here.  New file.
2547         (ccp_fold_builtin): Rename to ...
2548         (gimple_fold_builtin): ... this.
2549         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2551 2010-04-15  Richard Guenther  <rguenther@suse.de>
2553         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2554         fit_double_type, force_fit_type_double, add_double_with_sign,
2555         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2556         lrotate_double, rrotate_double, div_and_round_double): Move ...
2557         * double-int.c: ... here.
2558         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2559         add_double, neg_double, mul_double_with_sign, mul_double,
2560         lshift_double, rshift_double, lrotate_double, rrotate_double,
2561         div_and_round_double): Move prototypes ...
2562         * double-int.h: ... here.
2564 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2566         PR target/43742
2567         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2568         matching constraints to ensure inputs match the output.
2570 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2572         PR target/43742
2573         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2574         in an input-only operand.
2576 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2578         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2579         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2580         (double_int_negative_p): Convert to static inline function.
2581         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2582         (double_int_negative_p): Remove.
2583         * tree.h (lshift_double, rshift_double):
2584         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2585         * fold-const.c (fold_convert_const_int_from_real,
2586         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2587         (lshift_double): Change type of arith argument to bool.
2588         (rshift_double): Change type of arith argument to bool. Correct
2589         comment.
2590         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2592 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2594         PR target/21803
2595         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2596         at the start and end of the then/else blocks, and omit them from the
2597         conversion.
2598         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2599         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2600         (flow_find_head_matching_sequence): New function.
2601         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2602         * basic-block.h (flow_find_cross_jump,
2603         flow_find_head_matching_sequence): Declare functions.
2605 2010-04-14  Jason Merrill  <jason@redhat.com>
2607         PR c++/36625
2608         * c-common.c (attribute_takes_identifier_p): New fn.
2609         * c-common.h: Declare it.
2611 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2613         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2614         splitter condition.
2615         (*udivmod<mode>4): Ditto.
2617 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2619         * config/i386/i386.md (maxmin_int): Rename code attribute from
2620         maxminiprefix and update all users.
2621         (maxmin_float): Ditto from maxminfprefix.
2622         (logic): Ditto from logicprefix.
2623         (absneg_mnemonic): Ditto from absnegprefix.
2624         * config/i386/mmx.md: Update all users of maxminiprefix,
2625         maxminfprefix and logicprefix for rename.
2626         * config/i386/sse.md: Ditto.
2627         * config/i386/sync.md (sync_<code><mode>): Update for
2628         logicprefix rename.
2630 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2632         PR 42966
2633         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2634         warnings converted to errors.
2636 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2638         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2639         used insn_type variable.
2640         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2641         to avoid set-but-not-used warning.
2643 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2645         * df-core.c (df_ref_debug): Change format string placeholder
2646         from 0x%x to %#x.
2647         * dwarf2asm.c (dw2_asm_output_data_raw,
2648         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2649         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2650         * dwarf2out.c (output_cfi, output_cfi_directive,
2651         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2652         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2653         Ditto.
2654         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2655         * print-rtl.c (print_rtx): Ditto.
2657 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2659         PR middle-end/42694
2660         * builtins.c (expand_builtin_pow_root): New function to expand pow
2661         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2662         series of sqrt and cbrt calls under -ffast-math.
2663         (expand_builtin_pow): Call it.
2665 2010-04-14  Michael Matz  <matz@suse.de>
2667         PR tree-optimization/42963
2668         * tree-cfg.c (touched_switch_bbs): New static variable.
2669         (group_case_labels_stmt): New function broken out from ...
2670         (group_case_labels): ... here, use the above.
2671         (start_recording_case_labels): Allocate touched_switch_bbs.
2672         (end_recording_case_labels): Deallocate it, call
2673         group_case_labels_stmt.
2674         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2676 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2678         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2679         from insn template.
2681 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2683         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2685 2010-04-13  Jan Hubicka  <jh@suse.cz>
2687         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2688         of optimized out static functions.
2689         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2690         cost computation.  Also sanity check for overflows.
2691         (update_caller_keys): Update cgraph_edge_badness call; properly
2692         update fibheap and sanity check that it is up to date.
2693         (add_new_edges_to_heap): Update cgraph_edge_badness.
2694         (cgraph_decide_inlining_of_small_function): Likewise;
2695         add sanity checking that badness in heap is up to date;
2696         improve dumping of reason; Update badness of calls to the
2697         offline copy of function currently inlined; dump badness
2698         of functions not inlined because of unit growth limits.
2700 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2702         PR middle-end/32628
2703         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2704         because of sign-extension change when converting to sizetype here...
2705         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2707         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2708         the folding to constants.  Remove redundant final conversion.
2709         (fold_binary) <associate>: Do not associate if the re-association of
2710         constants alone overflows.
2711         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2712         to the end of the list.
2713         (multiple_of_p) <COND_EXPR>: New case.
2715 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2717         * opt-functions.awk (opt_sanitized_name): New.
2718         (opt_enum): New.
2719         * optc-gen.awk: Use it
2720         * opth-gen.awk: Use it.
2722 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2724         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2725         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2726         children.  Call replace_uses_with_default_def_ssa_name to handle
2727         SSA_NAES on lhs.
2729 2010-04-13  Michael Matz  <matz@suse.de>
2731         PR middle-end/43730
2732         * builtins.c (expand_builtin_interclass_mathfn): Also create
2733         a register if the predicate doesn't match.
2735 2010-04-13  Diego Novillo  <dnovillo@google.com>
2737         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2738         * c-pch.c: Include timevar.h.
2739         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2740         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2741         * ggc-common.c: Include timevar.h.
2742         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2743         * timevar.def (TV_PCH_SAVE): Define.
2744         (TV_PCH_CPP_SAVE): Define.
2745         (TV_PCH_PTR_REALLOC): Define.
2746         (TV_PCH_PTR_SORT): Define.
2747         (TV_PCH_RESTORE): Define.
2748         (TV_PCH_CPP_RESTORE): Define.
2750 2010-04-13  Michael Matz  <matz@suse.de>
2752         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2753         into MINUS_EXPRs.
2754         (can_reassociate_p): New function.
2755         (break_up_subtract_bb, reassociate_bb): Use it.
2757 2010-04-13  Richard Guenther  <rguenther@suse.de>
2759         PR bootstrap/43737
2760         * builtins.c (c_readstr): Fix assert.
2762 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2764         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2765         when generating cltd insn.
2767         (*ashl<mode>3_1): Remove special handling for register operand 2.
2768         (*ashlsi3_1_zext): Ditto.
2769         (*ashlhi3_1): Ditto.
2770         (*ashlhi3_1_lea): Ditto.
2771         (*ashlqi3_1): Ditto.
2772         (*ashlqi3_1_lea): Ditto.
2773         (*<shiftrt_insn><mode>3_1): Ditto.
2774         (*<shiftrt_insn>si3_1_zext): Ditto.
2775         (*<shiftrt_insn>qi3_1_slp): Ditto.
2776         (*<rotate_insn><mode>3_1): Ditto.
2777         (*<rotate_insn>si3_1_zext): Ditto.
2778         (*<rotate_insn>qi3_1_slp): Ditto.
2780 2010-04-13  Richard Guenther  <rguenther@suse.de>
2782         * tree-ssa-structalias.c (callused_id): Remove.
2783         (call_stmt_vars): New.
2784         (get_call_vi): Likewise.
2785         (lookup_call_use_vi): Likewise.
2786         (lookup_call_clobber_vi): Likewise.
2787         (get_call_use_vi): Likewise.
2788         (get_call_clobber_vi): Likewise.
2789         (make_transitive_closure_constraints): Likewise.
2790         (handle_const_call): Adjust to do per-call call-used handling.
2791         (handle_pure_call): Likewise.
2792         (find_what_var_points_to): Remove general callused handling.
2793         (init_base_vars): Likewise.
2794         (init_alias_vars): Initialize call_stmt_vars.
2795         (compute_points_to_sets): Process call-used and call-clobbered
2796         vars for call statements.
2797         (delete_points_to_sets): Free call_stmt_vars.
2799 2010-04-13  Richard Guenther  <rguenther@suse.de>
2801         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2802         Only add RW dependence for dependence distance zero.
2803         Adjust maximal vectorization factor according to dependences.
2804         Move alignment handling ...
2805         (vect_find_same_alignment_drs): ... here.  New function.
2806         (vect_analyze_data_ref_dependences): Adjust.
2807         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2808         (vect_analyze_data_refs): Adjust minimal vectorization factor
2809         according to data references.
2810         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2811         dependences before determining the vectorization factor.
2812         Analyze alignment after determining the vectorization factor.
2813         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2814         dependences before alignment.
2815         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2816         Adjust prototype.
2817         (vect_analyze_data_refs): Likewise.
2818         (MAX_VECTORIZATION_FACTOR): New define.
2820 2010-04-13  Duncan Sands  <baldrick@free.fr>
2822         * except.h (lang_eh_type_covers): Remove.
2823         * except.c (lang_eh_type_covers): Likewise.
2825 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2826             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2828         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
2829         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
2830         UNITS_PER_LONG where it is ABI relevant.
2831         (s390_return_addr_rtx): Likewise.
2832         (s390_back_chain_rtx): Likewise.
2833         (s390_frame_area): Likewise.
2834         (s390_frame_info): Likewise.
2835         (s390_initial_elimination_offset): Likewise.
2836         (save_gprs): Likewise.
2837         (s390_emit_prologue): Likewise.
2838         (s390_emit_epilogue): Likewise.
2839         (s390_function_arg_advance): Likewise.
2840         (s390_function_arg): Likewise.
2841         (s390_va_start): Likewise.
2842         (s390_gimplify_va_arg): Likewise.
2843         (s390_function_profiler): Likewise.
2844         (s390_optimize_prologue): Likewise.
2845         (s390_rtx_costs): Likewise.
2846         (s390_secondary_reload): Likewise.
2847         (s390_promote_function_mode): Likewise.
2848         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
2849         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
2850         registers available.
2851         (s390_unwind_word_mode): New function.
2852         (s390_function_value): Split 64 bit values into register pair if
2853         used as return value.
2854         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
2855         function call parameters.  Handle parallels.
2856         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
2857         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
2858         (DWARF_CIE_DATA_ALIGNMENT): New macro.
2859         (s390_expand_setmem): Remove unused variable src_addr.
2860         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
2861         deal with 64 bit registers.
2862         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
2863         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
2864         (UNITS_PER_LONG): New macro.
2865         * libjava/include/s390-signal.h: Define extended ucontext
2866         structure containing the upper halfs of the 64 bit registers.
2868 2010-04-13  Simon Baldwin  <simonb@google.com>
2870         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
2872 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2874         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
2875         rvalue on the RHS if the LHS is of a non-renamable type.
2876         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
2878 2010-04-13  Matthias Klose  <doko@ubuntu.com>
2880         * gcc.c (cc1_options): Handle -iplugindir before processing
2881         the cc1 spec. Only add -iplugindir once.
2882         (cpp_unique_options): Add -iplugindir option if -fplugin* options
2883         found.
2884         * common.opt (iplugindir): Remove `Separate' property, initialize.
2885         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
2886         option.
2887         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
2888         (distclean): Remove plugin dir.
2889         * doc/invoke.texi: Document -iplugindir.
2891 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
2893         * doc/plugins.texi (Loading Plugins): Document short
2894         -fplugin=foo option.
2895         (Plugin API): Mention default_plugin_dir_name function.
2897         * gcc.c (find_file_spec_function): Add new declaration.
2898         (static_spec_func): Use it for "find-file".
2899         (find_file_spec_function): Add new function.
2900         (cc1_options): Add -iplugindir option if -fplugin* options found.
2902         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
2904         * plugin.c (add_new_plugin): Updated comment, and handle short
2905         plugin name.
2906         (default_plugin_dir_name): Added new function.
2908         * common.opt (iplugindir): New option to set the plugin directory.
2910 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
2912         * config/i386/i386.md (any_rotate): New code iterator.
2913         (rotate_insn): New code attribute.
2914         (rotate): Ditto.
2915         (SWIM124): New mode iterator.
2916         (<rotate_insn>ti3): New expander.
2917         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
2918         any_rotate code iterator.
2919         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
2920         using any_rotate code iterator and SWIM124 mode iterator.
2921         (ix86_rotlti3): New insn_and_split pattern.
2922         (ix86_rotrti3): Ditto.
2923         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
2924         ix86_rotl{di,ti}3 patterns.
2925         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
2926         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
2927         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
2928         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
2929         code iterator and SWI mode iterator.
2930         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
2931         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
2932         code iterator.
2933         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
2934         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
2935         (bswap rotatert splitter): Add splitter.
2936         (bswap splitter): Macroize splitter using any_rotate code iterator.
2937         Add insn predicate to split only for TARGET_USE_XCHGB or when
2938         optimizing function for size.
2940 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2942         * config/pa/pa.c (emit_move_sequence): Remove use of
2943         deleted variable flag_argument_noalias.
2945 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2947         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
2948         configurations.
2949         Add to unsupported targets list.
2950         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
2951         sparc*-sun-solaris2.[567]* from target lists.
2952         * configure: Regenerate.
2953         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
2954         removal.
2955         Remove Solaris 7 patch references.
2956         (Specific, sparc-sun-solaris2.7): Removed.
2957         (sparc-sun-solaris2*): Update Solaris 7 example.
2958         (sparc64-*-solaris2*): Likewise.
2960 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2962         * config.build (alpha*-dec-osf4*): Remove.
2963         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
2964         of obsolete configurations.
2965         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2966         support.
2967         * config/alpha/t-osf4: Renamed to ...
2968         * config/alpha/t-osf5: ... this.
2969         * config/alpha/osf.h: Renamed to ...
2970         * config/alpha/osf5.h: ... this.
2971         Merged old osf5.h contents.
2972         Update comments.
2973         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2974         (EXTRA_SPECS): Removed.
2975         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
2976         reflect removal of Tru64 UNIX V4.0/V5.0 support.
2977         Document that.
2979 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2981         * doc/contrib.texi (Contributors, Rainer Orth): Update.
2983 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
2985         PR/43702
2986         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
2987         __thiscall convention.
2989 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2991         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
2992         orig_base.
2993         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
2995 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2997         * function.c (assign_parms_initialize_all): Add unused attribute
2998         to fntype.
3000 2010-04-12  Richard Guenther  <rguenther@suse.de>
3002         * gsstruct.def (GSS_CALL): New.
3003         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
3004         * gimple.h: Include tree-ssa-alias.h.
3005         (struct gimple_statement_call): New.
3006         (union gimple_statement_struct_d): Add gimple_call member.
3007         (gimple_call_reset_alias_info): Declare.
3008         (gimple_call_use_set): New function.
3009         (gimple_call_clobber_set): Likewise.
3010         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
3011         * gimple.c (gimple_call_reset_alias_info): New function.
3012         (gimple_build_call_1): Call it.
3013         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3014         * tree-inline.c (remap_gimple_stmt): Likewise.
3015         (expand_call_inline): Remove callused handling.
3016         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
3017         * tree-dfa.c (dump_variable): Likewise.
3018         * tree-parloops.c (parallelize_loops): Likewise.
3019         * tree-ssa.c (init_tree_ssa): Likewise.
3020         (delete_tree_ssa): Likewise.
3021         * tree-flow-inline.h (is_call_used): Remove.
3022         * tree-flow.h (struct gimple_df): Remove callused member.
3023         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
3024         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
3025         (ref_maybe_used_by_call_p_1): Simplify.
3026         (call_may_clobber_ref_p_1): Likewise.
3027         * tree-ssa-structalias.c (compute_points_to_sets): Set
3028         the call stmt used and clobbered sets.
3029         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
3030         (find_tail_calls): Verify the tail call.
3032 2010-04-12  Richard Guenther  <rguenther@suse.de>
3034         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
3035         single-iteration always-inline inlining.
3036         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
3037         (cgraph_decide_inlining): Do not handle always-inline specially.
3038         (try_inline): Remove always-inline cycle detection special case.
3039         Do not recurse on always-inlines.
3040         (cgraph_early_inlining): Do not iterate if not optimizing.
3041         (cgraph_gate_early_inlining): remove.
3042         (pass_early_inline): Run unconditionally.
3043         (gate_cgraph_decide_inlining): New function.
3044         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
3045         not inlining or optimizing.
3046         (cgraph_decide_inlining_of_small_functions): Also consider
3047         always-inline functions.
3048         (cgraph_default_inline_p): Return true for nodes which should
3049         disregard inline limits.
3050         (estimate_function_body_sizes): Assume zero size and time for
3051         nodes which are marked as disregarding inline limits.
3052         (cgraph_decide_recursive_inlining): Do not perform recursive
3053         inlining on always-inline nodes.
3055 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
3057         PR bootstrap/43699
3058         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
3059         for exprs satisfying handled_component_p.
3061 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3063         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
3064         non-constant aggregate elements.
3066         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
3067         is a real initialization.
3069 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
3071         PR c/36774
3072         * c-decl.c (start_function): Move forward check for nested function.
3074 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3076         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
3077         * config/sh/sh.c: Include reload.h.
3078         (sh_legitimize_reload_address): New.
3079         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
3080         sh_legitimize_reload_address.
3082 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3084         * config/sh/sh.md (*movqi_pop): New insn pattern.
3085         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
3087 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3089         * config/i386/i386.md (any_shiftrt): New code iterator.
3090         (shiftrt_insn): New code attribute.
3091         (shiftrt): Ditto.
3092         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
3093         using any_shiftrt code iterator.
3094         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
3095         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
3096         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
3097         pattern from corresponding peephole2 patterns.
3098         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
3099         using any_shiftrt code iterator.
3100         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
3101         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
3102         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
3103         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
3104         *{ashr,lshr}<mode>3_cmp_zext.
3105         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
3107 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3109         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
3110         scratch register.
3111         (*lshr<mode>3_cconly): Ditto.
3113 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3115         * config/i386/i386.md (lshr<mode>3): Macroize expander from
3116         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3117         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3118         pattern from *lshr{di,ti}3_1 and corresponding splitters using
3119         DWI mode iterator.
3120         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3121         from corresponding peephole2 patterns.
3122         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
3123         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
3124         and *lshrdi3_1_rex64 using SWI mode iterator.
3125         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
3126         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
3127         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
3128         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
3129         and *lshrdi3_cmp_rex64 using SWI mode iterator.
3130         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
3131         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
3132         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
3133         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
3134         SWI mode iterator.
3136 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
3138         * config/i386/i386.md (ashr<mode>3): Macroize expander from
3139         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3140         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3141         pattern from *ashr{di,ti}3_1 and corresponding splitters using
3142         DWI mode iterator.
3143         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3144         from corresponding peephole2 patterns.
3145         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
3146         (ashrsi3_cvt): Rename from ashrsi3_31.
3147         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
3148         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
3149         and x86_64_shift_adj_3 using SWI48 mode iterator.
3150         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
3151         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
3152         and *ashrdi3_1_rex64 using SWI mode iterator.
3153         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
3154         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
3155         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
3156         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
3157         and *ashrdi3_cmp_rex64 using SWI mode iterator.
3158         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3159         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3160         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3161         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3162         SWI mode iterator.
3163         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3164         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3165         x86_shift<mode>_adj_3 expanders.
3167 2010-04-10  Wei Guozhi  <carrot@google.com>
3169         PR target/42601
3170         * config/arm/arm.c (arm_pic_static_addr): New function.
3171         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3172         a static symbol.
3173         (arm_output_addr_const_extra): Output expression for new pattern.
3174         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3176 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3178         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3179         not enabled.
3181         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3182         * web.c: Include "insn-config.h" and "recog.h".
3183         (union_match_dups): New function.
3184         (web_main): Call it.
3185         (union_defs): Don't try to recognize match_dups.
3187         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3188         if doing so would replace the entire pattern.
3190 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3192         PR target/43707
3193         PR target/43709
3194         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3195         and splitter pattern.  Change splitter operand 1 predicate to
3196         nonmemory_operand.
3198 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3200         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3201         lattices are addresses of CONST_DECLs with the same initial value.
3202         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3203         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3205 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3206             Bernd Schmidt  <bernds@codesourcery.com>
3208         * loop-invariant.c (replace_uses): New static function.
3209         (move_invariant_reg): Use it to ensure we can replace the uses.
3211 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3213         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3214         function template.
3215         (picochip_override_options): Enable section anchors only above -O1.
3216         (picochip_reorg): Fixed a couple of build warnings.
3218 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3220         * configure.ac (plugin -rdynamic test): Log result.
3221         * configure: Regenerate.
3222         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3223         (RDYNAMIC_SPEC): Define.
3224         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3226 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3228         * configure.ac: Determine Sun ld version numbers.
3229         (comdat_group): Restrict GNU ld version checks to gld.
3230         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3231         (enable_comdat): Support --enable-comdat.
3232         * configure: Regenerate.
3233         * doc/install.texi (Configuration): Document --enable-comdat.
3235 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3237         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3238         * config/sol2-gld.h: ... here.
3239         * config.gcc (sparc*-*-solaris2*): Reflect this.
3240         (i[34567]86-*-solaris2*): Use it.
3242 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3244         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3245         setup_clocks_p.
3246         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3248 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3250         PR 42965
3251         * diagnostic.c (diagnostic_initialize): Initialize
3252         some_warnings_are_errors.
3253         (diagnostic_finish): New.
3254         (diagnostic_action_after_output): Call it before exiting.
3255         (diagnostic_report_diagnostic): Do not print message here. Set
3256         some_warnings_are_errors.
3257         * diagnostic.h (diagnostic_context): Delete
3258         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3259         (diagnostic_finish): Declare.
3260         * toplev.c (toplev_main): Call it before exit.
3262 2010-04-09  Jason Merrill  <jason@redhat.com>
3264         PR c++/42623
3265         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3266         for incomplete type.
3268         PR c++/41788
3269         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3270         based on a warning flag.
3272 2010-04-09  Richard Guenther  <rguenther@suse.de>
3274         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3276 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3278         PR bootstrap/43684
3279         * varasm.c (default_assemble_visibility): Wrap vars that are
3280         set, but unused, by targets without GAS.
3281         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3282         Remove set, but unused, vars.
3283         (rs6000_legitimize_tls_address): Likewise.
3284         (altivec_expand_dst_builtin): Likewise.
3285         * config/darwin.c (machopic_classify_symbol): Likewise.
3286         (machopic_indirection_name): Likewise.
3288 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3290         * config/i386/i386.md (DWI): New mode iterator.
3291         (S): New mode attribute.
3292         (shift_operand): Ditto.
3293         (shift_immediate_operand): Ditto.
3294         (ashl_input_operand): Ditto.
3295         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3296         using SDWIM mode iterator.
3297         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3298         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3299         DWI mode iterator.
3300         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3301         from corresponding peephole2 patterns.
3302         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3303         and x86_64_shift_adj_1 using SWI48 mode iterator.
3304         (x86_shift<mode>_adj_2): Ditto.
3305         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3306         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3307         using SWI48 mode iterator.
3308         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3309         *ashldi3_cmp_rex64 using SWI mode iterator.
3310         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3311         *ashldi3_cconly_rex64 using SWI mode iterator.
3312         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3313         x86_shift<mode>_adj_{1,2}.
3314         (ix86_split_ashr): Ditto.
3315         (ix86_split_lshr): Ditto.
3317 2010-04-09  Richard Guenther  <rguenther@suse.de>
3319         * target.h (builtin_conversion): Pass in input and output types.
3320         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3321         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3322         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3323         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3325         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3326         Handle AVX modes.
3327         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3329 2010-04-09  Richard Guenther  <rguenther@suse.de>
3331         PR target/43152
3332         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3334 2010-04-09  Richard Guenther  <rguenther@suse.de>
3336         * tree-vectorizer.h (struct _stmt_vec_info): Document
3337         that vectype is the type of the LHS.
3338         (supportable_widening_operation, supportable_narrowing_operation):
3339         Get both input and output vector types as arguments.
3340         (vect_is_simple_use_1): Declare.
3341         (get_same_sized_vectype): Likewise.
3342         * tree-vect-loop.c (vect_determine_vectorization_factor):
3343         Set STMT_VINFO_VECTYPE to the vector type of the def.
3344         (vectorizable_reduction): Adjust.
3345         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3346         Adjust.  Specify the output vector type.
3347         (vect_pattern_recog_1): Adjust.
3348         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3349         (vectorizable_call): Adjust.
3350         (vectorizable_conversion): Likewise.
3351         (vectorizable_operation): Likewise.
3352         (vectorizable_type_demotion): Likewise.
3353         (vectorizable_type_promotion): Likewise.
3354         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3355         the def.
3356         (vect_is_simple_use_1): New function.
3357         (supportable_widening_operation): Get both input and output
3358         vector types.
3359         (supportable_narrowing_operation): Likewise.
3360         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3362 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3364         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3365         __thiscall and _thiscall as predefined macros.
3366         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3367         thiscall attribute handling.
3368         (ix86_comp_type_attributes): Likewise.
3369         (ix86_function_regparm): Likewise.
3370         (ix86_return_pops_args): Likewise.
3371         (init_cumulative_args): Likewise.
3372         (find_drap_reg): Likewise.
3373         (ix86_static_chain): Likewise.
3374         (x86_this_parameter): Likewise.
3375         (x86_output_mi_thunk): Likewise.
3376         (ix86_attribute_table): Add description for thiscall attribute.
3377         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3378         * doc/extend.texi: Add documentation for thiscall.
3380 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3382         PR c++/28584
3383         * c.opt (Wint-to-pointer-cast): Available in C++.
3384         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3386 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3388         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3389         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3390         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3391         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3392         function type instead.  Reorder and simplify checks.
3394         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3396 2010-04-08  Jing Yu  <jingyu@google.com>
3397             Zdenek Dvorak  <ook@ucw.cz>
3399         PR tree-optimization/42720
3400         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
3401         loop unswitch conditions here from ...
3402         (tree_unswitch_single_loop): ... here.
3404 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3406         * tree-if-conv.c: Fix comments and simplify logic.
3408 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3410         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
3411         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
3412         (main_tree_if_conversion): Update call to tree_if_conversion.
3414 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3416         PR 42485
3417         * doc/invoke.texi (-b,-V): Delete.
3418         * doc/tm.texi: Do not mention -b.
3419         * gcc.c (display_help): Delete -b and -V.
3420         (process_command): Delete -b and -V.
3421         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
3423 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
3424             Wolfgang Gellerich  <gellerich@de.ibm.com>
3426         Implement target hook for loop unrolling
3427         * target.h (loop_unroll_adjust): Add a new target hook function.
3428         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
3429         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
3430         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
3431         (s390_loop_unroll_adjust): Implement the new target hook for s390.
3432         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
3433         target hook.
3434         (decide_unroll_stupid): Likewise.
3436 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3438         PR target/43643
3439         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
3441 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3443         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
3444         (Specific, *-*-solaris2*): Likewise.
3445         Don't prefer Sun as over GNU as.
3447 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
3449         * config/s390/s390.c (override_options): Adjust the z10
3450           defaults for max-unroll-times, max-completely-peeled-insns
3451           and max-completely-peel-times.
3453 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3455         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
3456         instructions for z10.
3457         (s390_expand_setmem): Likewise.
3458         (s390_expand_cmpmem): Likewise.
3460 2010-04-08  Richard Guenther  <rguenther@suse.de>
3462         PR tree-optimization/43679
3463         * tree-ssa-pre.c (eliminate): Only propagate copies.
3465 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3467         PR bootstrap/43681
3468         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
3469         set but not used variable warning.
3471 2010-04-08  Wei Guozhi  <carrot@google.com>
3473         PR target/41653
3474         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
3475         (arm_size_rtx_costs): Call the new function when optimized for size.
3477 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3479         PR debug/43670
3480         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
3481         op0 is not a MEM, just return NULL instead of assertion
3482         failure.
3483         (discover_nonconstant_array_refs): Don't walk debug stmts.
3485 2010-04-08  Doug Kwan  <dougkwan@google.com>
3487         * configure.ac: Recognize gold and do not use its version number
3488         to test ld features.
3489         * configure: Regenerate.
3491 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
3493         PR middle-end/40815
3494         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
3495         (negate_value): Move code to push elements to broken_up_substracts ...
3496         (eliminate_plus_minus_pair): ... here.  Push operands that have no
3497         negative pair to plus_negates.
3498         (repropagate_negates, init_reassoc, fini_reassoc): Update.
3500 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3502         * doc/install.texi (Configuration): Move description of
3503         --enable-lto, --with-libelf*, --enable-gold from Java section to
3504         general section.
3506         * doc/generic.texi (Working with declarations)
3507         (Function Properties, C and C++ Trees): Fix typos.
3508         * doc/sourcebuild.texi (Top Level): Likewise.
3510 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3512         PR c/18624
3513         * tree.h (DECL_READ_P): Define.
3514         (struct tree_decl_common): Add decl_read_flag.
3515         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
3516         a set but not used warning.
3517         (merge_decls): Merge DECL_READ_P flag.
3518         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
3519         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3520         * c-common.c (handle_used_attribute, handle_unused_attribute):
3521         Likewise.
3522         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
3523         New prototypes.
3524         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
3525         New functions.
3526         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
3527         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
3528         c_parser_binary_expression, c_parser_cast_expression,
3529         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
3530         Call default_function_array_read_conversion instead of
3531         default_function_array_conversion where needed.
3532         (c_parser_unary_expression, c_parser_conditional_expression,
3533         c_parser_postfix_expression_after_primary, c_parser_initelt):
3534         Likewise.  Call mark_exp_read where needed.
3535         (c_parser_statement_after_labels, c_parser_asm_operands,
3536         c_parser_typeof_specifier, c_parser_sizeof_expression,
3537         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
3538         where needed.
3539         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
3540         New.
3541         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
3542         (warn_unused_but_set_parameter): Default to warn_unused
3543         && extra_warnings.
3544         * doc/invoke.texi: Document -Wunused-but-set-variable and
3545         -Wunused-but-set-parameter.
3547         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
3548         used count variable.
3549         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
3550         when operandN variables aren't used in the body of the expander
3551         or splitter.
3552         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
3553         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
3554         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
3555         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
3556         FOR_EACH_IMM_USE_ON_STMT): Likewise.
3557         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
3558         * tree.c (PROCESS_ARG): Likewise.
3560 2010-04-07  Simon Baldwin  <simonb@google.com>
3562         * diagnostic.h (diagnostic_override_option_index): New macro to
3563         set a diagnostic's option_index.
3564         * c-tree.h (c_cpp_error): Add warning reason argument.
3565         * opts.c (_warning_as_error_callback): New.
3566         (register_warning_as_error_callback): Store callback for
3567         warnings enabled via enable_warning_as_error.
3568         (enable_warning_as_error): Call callback, minor code tidy.
3569         * opts.h (register_warning_as_error_callback): Declare.
3570         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
3571         response to -Werror=.
3572         (c_common_init_options): Register warning_as_error_callback in opts.c.
3573         * common.opt: Add -Wno-cpp option.
3574         * c-common.c (struct reason_option_codes_t): Map cpp warning
3575         reason codes to gcc option indexes.
3576         * (c_option_controlling_cpp_error): New function, lookup the gcc
3577         option index for a cpp warning reason code.
3578         * (c_cpp_error): Add warning reason argument, call
3579         c_option_controlling_cpp_error for diagnostic_override_option_index.
3580         * doc/invoke.texi: Document -Wno-cpp.
3582 2010-04-07  Richard Guenther  <rguenther@suse.de>
3584         * ipa-reference.c (mark_load): Use get_base_address.
3585         (mark_store): Likewise.
3587         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
3588         inserting GIMPLE_NOPs into the IL.
3589         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3590         Explicitly strip handled components and indirect references.
3592         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3593         folding address expressions.
3594         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3595         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3596         operand_equal_p to compare decls.
3597         (ptr_deref_may_alias_decl_p): Likewise.
3598         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3599         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3600         Handle reversed comparison ops.
3601         * tree-sra.c (asm_visit_addr): Use get_base_address.
3602         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3603         * ipa-reference.c (mark_address): Use get_base_address.
3605 2010-04-07  Richard Guenther  <rguenther@suse.de>
3607         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3608         Propagate constants everywhere.
3610 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3612         PR debug/43516
3613         * tree.c (MAX_INT_CACHED_PREC): Define.
3614         (nonstandard_integer_type_cache): New array.
3615         (build_nonstandard_integer_type): Cache results for precision
3616         <= MAX_INT_CACHED_PREC.
3618 2010-04-07  Richard Guenther  <rguenther@suse.de>
3620         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3621         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3622         * common.opt: Likewise.
3623         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3624         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3625         (nonoverlapping_memrefs_p): Likewise.
3626         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3627         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3628         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3629         OPT_fargument_noalias_global for backward compatibility.
3631 2010-04-07  Richard Guenther  <rguenther@suse.de>
3633         PR tree-optimization/43270
3634         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3635         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3636         * tree-ssa-pre.c (phi_translate_1): Adjust.
3637         (fully_constant_expression): Split out vn_reference handling to ...
3638         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3639         Fold reads from constant strings.
3640         (vn_reference_lookup): Handle fully constant references.
3641         (vn_reference_lookup_pieces): Likewise.
3642         * Makefile.in (expmed.o-warn): Add -Wno-error.
3644 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3646         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3648 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3650         PR driver/41594
3651         * gcc.c: Add -static-libstdc++ to list of recognized options.
3653 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3655         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3657 2010-04-07  Richard Guenther  <rguenther@suse.de>
3659         PR middle-end/42617
3660         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3661         bases build simple mem attributes to retain points-to information.
3663 2010-04-07  Richard Guenther  <rguenther@suse.de>
3665         PR middle-end/42617
3666         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3667         preserve points-to related information.
3669 2010-04-07  Richard Guenther  <rguenther@suse.de>
3671         PR middle-end/42617
3672         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3673         discard plain indirect references.
3674         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3675         * tree.c (tree_nop_conversion): Likewise.
3677 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3679         PR debug/43628
3680         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3682 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3684         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3685         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3687 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3689         * tree-if-conv.c: Fix indentation and comments.
3691 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3693         * tree-if-conv.c: Sort static functions in topological order.
3695 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3697         * tree-if-conv.c: Fix indentation and comments.
3699 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3701         PR middle-end/43519
3702         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3703         lang_hooks.types.type_for_size instead of
3704         build_nonstandard_integer_type.
3705         When converting an unsigned type to signed, double its precision.
3706         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3707         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3708         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3709         use lb <= ub.
3711 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3713         PR middle-end/43519
3714         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3715         POINTER_PLUS_EXPR for pointer types.
3717 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3719         PR middle-end/43519
3720         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3721         * graphite-clast-to-gimple.c: Include langhooks.h.
3722         (max_signed_precision_type): New.
3723         (max_precision_type): Takes two types as arguments.
3724         (precision_for_value): New.
3725         (precision_for_interval): New.
3726         (gcc_type_for_interval): New.
3727         (gcc_type_for_value): New.
3728         (gcc_type_for_clast_term): New.
3729         (gcc_type_for_clast_red): New.
3730         (gcc_type_for_clast_bin): New.
3731         (gcc_type_for_clast_expr): Split up into several functions.
3732         (gcc_type_for_clast_eq): Rewritten.
3733         (compute_bounds_for_level): New.
3734         (compute_type_for_level_1): New.
3735         (compute_type_for_level): New.
3736         (gcc_type_for_cloog_iv): Removed.
3737         (gcc_type_for_iv_of_clast_loop): Rewritten.
3738         (graphite_create_new_loop): Compute the lower and upper bound types
3739         with gcc_type_for_clast_expr.
3740         (graphite_create_new_loop_guard): Same.
3741         (find_cloog_iv_in_expr): Removed.
3742         (compute_cloog_iv_types_1): Removed.
3743         (compute_cloog_iv_types): Removed.
3744         (gloog): Do not call compute_cloog_iv_types.
3745         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3746         GBB_CLOOG_IV_TYPES.
3747         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3748         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3749         (GBB_CLOOG_IV_TYPES): Removed.
3751 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3753         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3754         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3755         (detect_commutative_reduction): Same.
3757 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3759         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3760         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3761         argument.
3762         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3763         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3764         (rewrite_commutative_reductions_out_of_ssa): Same.
3765         * passes.c (execute_function_todo): Call verify_ssa for every pass
3766         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3767         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3768         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3769         with an extra argument.
3770         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3771         verify_ssa only when the extra argument is true.
3772         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3773         with an extra argument.
3774         (tree_transform_and_unroll_loop): Same.
3776 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3778         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3779         for all the passes of the LNO having LOOP_CLOSED_SSA.
3780         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3781         * tree-loop-distribution.c (pass_loop_distribution): Same.
3782         * tree-pass.h (TODO_verify_loops): Removed.
3783         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3784         (pass_lim): Same.
3785         (pass_tree_unswitch): Same.
3786         (pass_predcom): Same.
3787         (pass_vectorize): Same.
3788         (pass_linear_transform): Same.
3789         (pass_graphite_transforms): Same.
3790         (pass_iv_canon): Same.
3791         (pass_complete_unroll): Same.
3792         (pass_complete_unrolli): Same.
3793         (pass_parallelize_loops): Same.
3794         (pass_loop_prefetch): Same.
3795         (pass_iv_optimize): Same.
3797 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3799         PR middle-end/32824
3800         * passes.c (init_optimization_passes): Move pass_lim before
3801         pass_copy_prop and pass_dce_loop.
3803 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3805         PR target/43667
3806         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3807         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3808         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3809         MULTI_* defines for 4 argument vpermil2p* builtins.
3811 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3813         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3814         * config/i386/i386.c (x86_maybe_negate_const_int): New.
3815         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
3816         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
3817         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
3818         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
3819         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
3820         Use x86_maybe_negate_const_int to output insn mnemonic.
3821         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
3822         check from instruction predicate.  Update comments.
3823         * config/i386/sync.md (sync_add<mode>): Use
3824         x86_maybe_negate_const_int to output insn mnemonic.
3826 2010-04-06  Jan Hubicka  <jh@suse.cz>
3828         PR tree-optimization/42906
3829         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
3830         IGNORE_SELF argument.  Set visited_control_parents for fully
3831         processed BBs.
3832         (find_obviously_necessary_stmts): Update call of
3833         mark_control_dependent_edges_necessary.
3834         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
3836 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3838         * config/i386/i386.md: Remove comment about 'e' and 'E'
3839         operand modifier.
3841 2010-04-06  Richard Guenther  <rguenther@suse.de>
3843         PR tree-optimization/43627
3844         * tree-vrp.c (extract_range_from_unary_expr): Widenings
3845         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
3846         not varying.
3848 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3850         * BASE-VER: Change to 4.6.0.
3852         PR target/43638
3853         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
3854         handling.
3856 2010-04-06  Richard Guenther  <rguenther@suse.de>
3858         PR middle-end/43661
3859         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
3861 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3863         * doc/invoke.texi (Optimize Options): Document that LTO
3864         won't remove object access purely due to incompatible
3865         declarations.
3867 2010-04-04  Matthias Klose  <doko@ubuntu.com>
3869         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
3870         Initialize variable.
3872 2010-04-03  Richard Guenther  <rguenther@suse.de>
3874         PR middle-end/42509
3875         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
3876         require a non-NULL MEM_OFFSET.
3878 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
3880         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
3881         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
3882         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
3883         config/alpha/predicates.md, config/arm/arm.md,
3884         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
3885         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
3886         config/darwin9.h, config/darwin.c, config/darwin.h,
3887         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
3888         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
3889         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
3890         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
3891         config/mips/mips.md, config/mn10300/mn10300.c,
3892         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
3893         config/rs6000/aix.h, config/rs6000/dfp.md,
3894         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
3895         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
3896         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
3897         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
3898         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
3899         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
3900         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
3901         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
3902         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
3903         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
3904         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
3905         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
3906         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
3907         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
3908         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
3909         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
3910         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
3911         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
3912         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
3913         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
3914         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
3915         opt-functions.awk, opth-gen.awk, params.def, passes.c,
3916         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
3917         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
3918         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
3919         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
3920         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
3921         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
3922         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
3923         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3924         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
3925         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3926         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
3927         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
3928         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
3929         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
3931 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3933         PR other/43620
3934         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
3935         * aclocal.m4: Regenerate.
3937 2010-04-02  Richard Guenther  <rguenther@suse.de>
3939         PR tree-optimization/43629
3940         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
3941         if we have seen a constant value.
3943 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
3945         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
3947 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
3949         PR target/43469
3950         * arm.c (legitimize_tls_address): Adjust call to
3951         gen_tls_load_dot_plus_four.
3952         (arm_note_pic_base): New function.
3953         (arm_cannot_copy_insn_p): Use it.
3954         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
3955         constraint.
3957 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3959         PR bootstrap/43531
3961         Revert:
3962         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3964         * Makefile.in ($(out_object_file)): Depend on
3965         gt-$(basename $(notdir $(out_file))).h.
3967 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
3969         * config.gcc (lm32-*-rtems*): Add t-lm32.
3971 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
3973         * config.gcc: Add lm32-*-rtems*.
3974         * config/lm32/rtems.h: New file.
3976 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
3978         PR target/42609
3979         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
3981 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
3983         * dwarf2out.c (output_compilation_unit_header): For
3984         -gdwarf-4 use version 4 instead of version 3.
3985         (output_line_info): For version 4 and above emit additional
3986         maximum ops per insn header field.
3987         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
3989         * dwarf2out.c (is_c_family, is_java): Remove.
3990         (lower_bound_default): New function.
3991         (add_bound_info, gen_descr_array_type_die): Use it.
3993 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
3995         PR debug/43325
3996         * dwarf2out.c (gen_variable_die): Allow debug info for variable
3997         re-declaration when it happens in a function.
3999 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
4001         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
4002         (cgraph_remove_function_insertion_hook): Same.
4003         (cgraph_call_function_insertion_hooks): Same.
4005 2010-04-01  Richard Guenther  <rguenther@suse.de>
4007         PR middle-end/43614
4008         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
4009         and TREE_THIS_VOLATILE.
4010         (copy_ref_info): Likewise.
4011         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
4012         * tree.c (build6_stat): Ignore side-effects of all but arg5
4013         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
4014         TARGET_MEM_REF.
4016 2010-04-01  Richard Guenther  <rguenther@suse.de>
4018         PR tree-optimization/43607
4019         * ipa-type-escape.c (check_call): Do not access non-existing
4020         arguments.
4022 2010-04-01  Richard Guenther  <rguenther@suse.de>
4024         PR middle-end/43602
4025         Revert
4026         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4027                     Jack Howarth <howarth@bromo.med.uc.edu>
4029         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4030         variables TLS.
4032 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4034         * doc/install.texi (Prerequisites): Document libelf usability on
4035         IRIX 5/6 and Solaris 2.
4036         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
4037         Update GNU as, GNU ld requirements.
4038         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
4039         Document Sun Studio compiler download.
4040         Update and simplify as, ld recommendations.
4041         (Specific, *-*-solaris2.7): Note obsoletion, removal.
4043 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4045         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
4046         with_tune_32 to pentium4.
4048 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
4050         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
4052 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4054         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
4055         obsoletion, removal.
4056         Update IDO URL.
4057         Document GNU as requirement.
4058         Update configure requirements.
4059         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
4060         Recomment IRIX 6.5.18+.
4061         Document IDF/IDL requirement.
4062         Document GNU as requirement.
4063         Document GNU ld bootstrap failure.
4064         Remove freeware.sgi.com reference.
4066 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4068         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
4069         UNIX V4.0, V5.0 obsoletion, removal.
4070         Remove --with-gc=simple reference.
4071         Update VM requirements during bootstrap.
4072         Remove -oldas bootstrap description.
4073         Update binutils reference.
4074         Remove comparison failure note.
4076 2010-03-31  Richard Guenther  <rguenther@suse.de>
4077             Zdenek Dvorak  <ook@ucw.cz>
4078             Sebastian Pop  <sebastian.pop@amd.com>
4080         PR middle-end/43464
4081         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
4082         with multiple arguments.
4083         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
4085 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4087         * graphite-dependences.c (print_pddr): Call print_pdr with an
4088         extra argument.
4089         * graphite-poly.c (debug_pdr): Add an extra argument for the
4090         verbosity level.
4091         (print_pdr): Same.
4092         (print_pbb_domain): Same.
4093         (print_pbb): Same.
4094         (print_scop_context): Same.
4095         (print_scop): Same.
4096         (print_cloog): Same.
4097         (debug_pbb_domain): Same.
4098         (debug_pbb): Same.
4099         (print_pdrs): Same.
4100         (debug_pdrs): Same.
4101         (debug_scop_context): Same.
4102         (debug_scop): Same.
4103         (debug_cloog): Same.
4104         (print_scop_params): Same.
4105         (debug_scop_params): Same.
4106         (print_iteration_domain): Same.
4107         (print_iteration_domains): Same.
4108         (debug_iteration_domain): Same.
4109         (debug_iteration_domains): Same.
4110         (print_scattering_function): Same.
4111         (print_scattering_functions): Same.
4112         (debug_scattering_function): Same.
4113         (debug_scattering_functions): Same.
4114         * graphite-poly.h (debug_pdr): Update declaration.
4115         (print_pdr): Same.
4116         (print_pbb_domain): Same.
4117         (print_pbb): Same.
4118         (print_scop_context): Same.
4119         (print_scop): Same.
4120         (print_cloog): Same.
4121         (debug_pbb_domain): Same.
4122         (debug_pbb): Same.
4123         (print_pdrs): Same.
4124         (debug_pdrs): Same.
4125         (debug_scop_context): Same.
4126         (debug_scop): Same.
4127         (debug_cloog): Same.
4128         (print_scop_params): Same.
4129         (debug_scop_params): Same.
4130         (print_iteration_domain): Same.
4131         (print_iteration_domains): Same.
4132         (debug_iteration_domain): Same.
4133         (debug_iteration_domains): Same.
4134         (print_scattering_function): Same.
4135         (print_scattering_functions): Same.
4136         (debug_scattering_function): Same.
4137         (debug_scattering_functions): Same.
4139 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4141         * graphite-poly.c (print_scattering_function_1): New.
4142         (print_scattering_function): Call it.
4143         (print_scop_params): Remove spaces at the end of lines.
4144         (print_cloog): New.
4145         (debug_cloog): New.
4146         * graphite-poly.h (print_cloog): Declared.
4147         (debug_cloog): Declared.
4149 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4151         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
4152         in loop->header.
4153         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
4154         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
4155         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
4156         to switch between adding the IV bump in loop->latch or in loop->header.
4158 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4160         * graphite-poly.c (print_scattering_function): Pretty print following
4161         the scoplib format.
4162         (print_pdr): Same.
4163         (print_pbb_domain): Same.
4164         (dump_gbb_cases): Same.
4165         (dump_gbb_conditions): Same.
4166         (print_pdrs): Same.
4167         (print_pbb): Same.
4168         (print_scop_params): Same.
4169         (print_scop_context): Same.
4170         (print_scop): Same.
4171         (print_pbb_body): New.
4172         (lst_indent_to): New.
4173         (print_lst): Start new lines with a #.
4174         * graphite-poly.h (pbb_bb): New.
4175         (pbb_index): Use pbb_bb.
4176         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
4177         disjuncts.
4178         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
4180 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4182         * dwarf2out.c (size_of_die): For -gdwarf-4 use
4183         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
4184         and 0 instead of 1 for dw_val_class_flag.
4185         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
4186         dw_val_class_range_list, dw_val_class_loc_list,
4187         dw_val_class_lineptr and dw_val_class_macptr, use
4188         DW_FORM_flag_present for dw_val_class_flag and
4189         DW_FORM_exprloc for dw_val_class_loc.
4190         (output_die): For -gdwarf-4 print dw_val_class_loc
4191         size as uleb128 instead of 1 or 2 bytes and don't print
4192         anything for dw_val_class_flag.
4194         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
4195         instead of cselib_lookup following by tweaking locs->setting_insn.
4197         PR bootstrap/43596
4198         * cselib.c (cselib_process_insn): Clear cselib_current_insn
4199         even before returning from label, setjmp call or volatile asm
4200         handling.
4202 2010-03-31  Richard Guenther  <rguenther@suse.de>
4204         PR middle-end/43600
4205         * cgraphunit.c (cgraph_output_in_order): Do not allocate
4206         temporary data on stack.
4208 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4210         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
4211         (PUSHSECTION_ASM_OP): Remove.
4212         (POPSECTION_ASM_OP): Remove.
4213         (PUSHSECTION_FORMAT): Remove.
4214         * config/sol2.h (PUSHSECTION_FORMAT): Define.
4215         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
4216         * config/sol2.c (solaris_output_init_fini): Use it.
4218 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4220         PR 43574
4221         * opt-functions.awk (var_type_struct): Use signed char type
4222         for simple variables.
4224 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4226         * config/sol2.c: Include output.h.
4227         (solaris_assemble_visibility): New function.
4228         * config/t-sol2 (sol2.o): Add output.h dependency.
4229         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
4230         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
4231         Redefine.
4233 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4235         PR target/43580
4236         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
4237         V2SImode or XFmode on PRE_DEC.
4239         PR debug/43557
4240         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
4241         BLKmode.
4243 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4245         PR 43562
4246         * reload.h (caller_save_initialized_p): Declare.
4247         * toplev.c (backend_init_target): Don't call
4248         init_caller_save but set caller_save_initialized_p to false.
4249         * caller-save.c (caller_save_initialized_p): Define.
4250         (init_caller_save): Check caller_save_initialized_p.
4251         * ira.c (ira): Call init_caller_save if flag_caller_saves.
4253 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4255         PR target/39048
4256         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
4257         and soft-fp/t-softfp to tmake_file.
4258         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
4259         (LIBGCC2_TF_CEXT): Define.
4260         (TF_SIZE): Define.
4262 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
4264         PR debug/42977
4265         * cselib.c (n_useless_values): Document handling of debug locs.
4266         (n_useless_debug_values, n_debug_values): New variables.
4267         (new_elt_loc_list): Don't add to debug values, keep count.
4268         (promote_debug_loc): New.
4269         (cselib_reset_table): Zero new variables.
4270         (entry_and_rtx_equal_p): Promote debug locs.
4271         (discard_useless_locs): Increment n_useless_debug_values for
4272         debug values.
4273         (remove_useless_values): Adjust n_useless_values and n_debug_values
4274         with n_useless_debug_values.
4275         (add_mem_for_addr): Promote debug locs.
4276         (cselib_lookup_mem): Likewise.
4277         (cselib_lookup_addr): Renamed to...
4278         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
4279         (cselib_log_lookup): ... this.  Turn into...
4280         (cselib_lookup_addr): ... new wrapper.
4281         (cselib_lookup_from_insn): New.
4282         (cselib_invalidate_regno): Increment n_useless_debug_values for
4283         debug values.
4284         (cselib_invalidate_mem): Likewise.
4285         (cselib_process_insn): Take n_deleted and n_debug_values into
4286         account to guard remove_useless_value call.
4287         (cselib_finish): Zero n_useless_debug_values.
4288         * cselib.h (cselib_lookup_from_insn): Declare.
4289         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
4290         (sched_analyze_2): Likewise.
4292 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
4294         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
4295         functions.
4296         (adjust_mems): Replace narrowing SUBREG of expression containing
4297         just PLUS, MINUS, MULT and ASHIFT of registers and constants
4298         with operations in the narrower mode.
4300         PR debug/43593
4301         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
4302         regs_invalidated_by_call instead all call_used_reg_set registers.
4304 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4306         PR middle-end/43430
4307         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
4308         pointer comparisons with types_compatible_p.
4309         * tree-vect-stmts.c (vectorizable_call): Same.
4310         (vectorizable_condition): Same.
4312 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4314         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
4315         stack check if the mask would be zero.
4317 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4318             Jack Howarth <howarth@bromo.med.uc.edu>
4320         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4321         variables TLS.
4323 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
4325         PR other/25232
4326         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
4327         and __unordtf2.
4328         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
4329         Include ___unordxf2 and ___unordtf2.
4330         * config/i386/libgcc-glibc.ver: Do not define inheritance from
4331         GCC_4.4.0 here.
4333 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
4335         * config/lm32/t-lm32: New file.
4336         * config.gcc: Use the above file when targetting lm32.
4338 2010-03-28  Duncan Sands  <baldrick@free.fr>
4340         * Makefile.in (PLUGIN_HEADERS): Add except.h.
4342 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4344         PR middle-end/43431
4345         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
4346         Improve vectorization cost model diagnostic.
4348 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4350         PR middle-end/43436
4351         * tree-vect-data-refs.c (vect_analyze_data_refs): When
4352         compute_data_dependences_for_loop returns false, early exit
4353         and output an extra diagnostic for the failed data reference
4354         analysis.
4356 2010-03-29  Richard Guenther  <rguenther@suse.de>
4358         PR tree-optimization/43560
4359         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
4360         (can_sm_ref_p): Treat stores to readonly locations as trapping.
4362 2010-03-29  Jie Zhang  <jie@codesourcery.com>
4364         PR 43564
4365         * toplev.c (process_options): Set optimization_default_node
4366         and optimization_current_node.
4367         * opts.c (decode_options): Don't set optimization_default_node
4368         and optimization_current_node.
4370 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
4372         * config/rtems.h: Abandon -qrtems_debug.
4374 2010-03-28  Jan Hubicka  <jh@suse.cz>
4376         PR tree-optimization/43505
4377         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
4378         map should not be copied.
4380 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4382         PR middle-end/41674
4383         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
4384         cdtors, set DECL_PRESERVE_P.
4385         * ipa.c (cgraph_externally_visible_p): Return true if declaration
4386         should be preseved.
4388 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
4390         PR tree-optimization/43528
4391         * stor-layout.c (place_field): Check that constant fits into
4392         unsigned HWI when skipping calculation of MS bitfield layout.
4394 2010-03-27  Jan Hubicka  <jh@suse.cz>
4396         PR middle-end/43391
4397         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
4398         notice_global_symbol work.
4400 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
4402         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
4403         instead of dwarf2out_decl.
4404         (struct var_loc_node): Remove section_label field.
4405         (dwarf2out_function_decl): New function.
4406         (dwarf2out_var_location): Don't set section_label field.
4407         (dwarf2out_begin_function): Don't empty decl_loc_table here.
4409 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4411         PR tree-optimization/43544
4412         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
4413         First argument for builtin vectorized function hook is now a
4414         tree to be able to distinguish between machine specific and
4415         standard builtins.
4416         * targhooks.c (default_builtin_vectorized_function): Ditto.
4417         * targhooks.h (default_builtin_vectorized_function): Ditto.
4418         * target.h (struct gcc_target): Ditto.
4419         * tree-vect-stmts.c (vectorizable_function): Ditto.
4420         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
4421         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
4422         Ditto.
4424 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
4426         PR c/43381
4427         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
4428         nested binding iff it is a FUNCTION_DECL.
4429         (store_parm_decls_newstyle): Pass nested=true to bind for
4430         FUNCTION_DECLs amongst parameters.
4432 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4434         * var-tracking.c (vt_expand_loc_callback): Don't run
4435         cselib_expand_value_rtx_cb in dummy mode if
4436         cselib_dummy_expand_value_rtx_cb returned false.
4438         * var-tracking.c (emit_note_insn_var_location): For one part
4439         notes with offset 0, don't add EXPR_LIST around the location.
4440         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
4441         add_location_or_const_value_attribute): Adjust for that change.
4443         PR debug/43540
4444         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
4445         into first operand and location into second.
4446         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
4447         dw_cfi_oprnd_loc for DW_CFA_expression.
4448         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
4449         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
4450         assume first argument is regnum and second argument is location.
4452 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4454         PR target/42113
4455         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
4456         of scratch register to DImode.  Split to DImode comparison operator.
4457         Use SImode subreg of scratch register in the multiplication.
4458         (*cmp_sadd_sidi): Ditto.
4459         (*cmp_ssub_si): Ditto.
4460         (*cmp_ssub_sidi): Ditto.
4462 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4464         PR target/43524
4465         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
4466         Remove invalid assert and wrong comment.
4468 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4470         PR debug/43516
4471         * flags.h (final_insns_dump_p): New extern.
4472         * final.c (final_insns_dump_p): New variable.
4473         (rest_of_clean_state): Set it before -fdump-final-insns=
4474         dumping, clear afterwards.
4475         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
4476         MEM_ALIAS_SET on MEMs.
4478 2010-03-26  David S. Miller  <davem@davemloft.net>
4480         * configure.ac: Fix sparc GOTDATA_OP bug check.
4481         * configure: Rebuild.
4483 2010-03-26  Alan Modra  <amodra@gmail.com>
4485         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
4487 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4489         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
4490         TLS_SECTION_ASM_FLAG.
4492 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
4494         PR bootstrap/43511
4495         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
4496         Clear first_function_block_is_cold.
4498         PR c/43385
4499         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
4500         argument if the argument is truth_value_p.
4502 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4504         * config/rs6000/constraints.md: Update copyright year for my changes.
4506         PR target/43484
4507         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
4508         used in reg+reg addressing, swap registers.
4510 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4512         PR debug/43293
4513         * target.h (struct gcc_target): Add code_end hook.
4514         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
4515         if not yet defined.
4516         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
4517         * toplev.c (compile_file): Call targetm.asm_out.code_end
4518         hook before unwind info/debug info output.
4519         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
4520         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
4521         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4522         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
4523         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4524         * config/i386/i386.c (ix86_file_end): Renamed to...
4525         (ix86_code_end): ... this.  Make static.  Don't call
4526         file_end_indicate_exec_stack.  Emit unwind info using
4527         final_start_function/final_end_function.
4528         (darwin_x86_file_end): Remove.
4529         (TARGET_ASM_CODE_END): Define.
4530         * config/i386/i386.h (TARGET_ASM_FILE_END,
4531         NEED_INDICATE_EXEC_STACK): Don't define.
4532         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
4533         (TARGET_ASM_FILE_END): Define to darwin_file_end.
4534         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
4535         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
4537         PR target/43498
4538         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
4539         at the beginning and final_end_function at the end.
4540         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
4542 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4544         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
4545         and Sun as TLS syntax.
4546         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
4547         * configure: Regenerate.
4548         * config.in: Regenerate.
4549         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
4550         (default_elf_asm_named_section): Use it.
4551         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
4552         (i386_output_dwarf_dtprel): Likewise.
4553         (output_addr_const_extra): Likewise.
4554         (output_pic_addr_const): Lowercase @GOTTPOFF.
4555         (output_addr_const_extra): Likewise.
4556         (output_pic_addr_const): Lowercase @GOTNTPOFF.
4557         (output_addr_const_extra): Likewise.
4558         (output_pic_addr_const): Lowercase @INDNTPOFF.
4559         (output_addr_const_extra): Likewise.
4560         (output_pic_addr_const): Lowercase @NTPOFF.
4561         (output_addr_const_extra): Likewise.
4562         (output_pic_addr_const): Lowercase @TPOFF.
4563         (output_addr_const_extra): Likewise.
4564         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
4565         (*tls_global_dynamic_64): Likewise.
4566         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
4567         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
4569         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
4570         (ASM_OUTPUT_TLS_COMMON): Use it.
4571         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
4573         PR target/38118
4574         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
4575         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
4576         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
4577         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
4578         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4579         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
4581 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4583         * config/i386/i386.c (override_options): Don't accept
4584         -mtls-dialect=sun any longer.
4585         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
4586         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
4587         (*tls_local_dynamic_base_32_sun): Likewise.
4588         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4590 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4592         PR debug/43508
4593         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
4594         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
4596         PR debug/43479
4597         * ira.c (adjust_cleared_regs): New function.
4598         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
4600         PR debug/19192
4601         PR debug/43479
4602         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
4603         from gimple_block.
4604         * expr.c (expand_expr_real): Restore previous
4605         curr_insn_source_location and curr_insn_block after
4606         expand_expr_real_1 call.
4607         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
4608         instead of expand_expr_real_1.
4610 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
4612         PR rtl-optimization/43413
4613         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
4614         hard regs too.
4616 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
4618         PR target/43348
4619         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
4620         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
4622 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
4624         * config/i386/i386.c (ix86_target_string): Add -mfma.
4625         Fix a typo in comment.
4627 2010-03-22  Mike Stump  <mikestump@comcast.net>
4629         PR target/23071
4630         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
4631         Don't overly align based upon packed packed fields.
4633 2010-03-22  Jason Merrill  <jason@redhat.com>
4635         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
4636         Use () rather than [], and move before the element type.
4638 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4640         * doc/configfiles.texi (Configuration Files): Removed
4641         fixinc/Makefile*, intl/Makefile.*.
4642         * doc/makefile.texi: Fixed markup. Abstract from version
4643         control system used.
4644         (Makefile): Removed obsolete gcc/java/parse.y example.
4645         * doc/sourcebuild.texi: Likewise.
4646         (Top Level): Added config, gnattools, libdecnumber, libgcc,
4647         libgomp, libssp.  Removed fastjar.
4648         (Miscellaneous Docs): Clarify location.
4649         Added COPYING3, COPYING3.LIB.
4650         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
4652 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4654         PR target/38085
4655         * config/i386/i386.c (x86_function_profiler)
4656         [!NO_PROFILE_COUNTERS]: Fix typo.
4657         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
4658         instead of callq.
4660 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
4661             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4663         * doc/sourcebuild.texi (Test Directives): Split into six
4664         subsections, with most of the current text in new subsections
4665         Directives, Selectors, and Final Actions.
4666         (Directives): Split list of test directives into multiple
4667         subsubsections.
4668         (Selectors): Describe use and syntax of selectors.
4669         (Effective-Target Keywords): Describe all existing keywords.
4670         (Add Options): Describe features for dg-add-options.
4671         (Require Support): Describe variants of dg-require-support.
4672         (Final Actions): Describe commands to use in dg-final.
4674 2010-03-22  Michael Matz  <matz@suse.de>
4676         PR middle-end/43475
4677         * recog.c (validate_replace_rtx_group): Replace also in
4678         REG_EQUAL and REG_EQUIV notes.
4680 2010-03-22  Richard Guenther  <rguenther@suse.de>
4682         PR tree-optimization/43390
4683         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
4684         sure vector extracts are type correct.
4686 2010-03-22  Richard Guenther  <rguenther@suse.de>
4688         PR middle-end/40106
4689         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
4690         x * sqrt (x) even when optimizing for size if the target
4691         has native support for sqrt.
4693 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
4695         * varasm.c (make_decl_rtl_for_debug): Also clear
4696         flag_mudflap for the duration of make_decl_rtl call.
4698         PR debug/43443
4699         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
4700         locs from preserved VALUEs.
4702 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4704         PR middle-end/42718
4705         * pa.md (movmemsi): Set align to one if zero.
4706         (movmemdi): Likewise.
4708 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
4710         PR target/42321
4711         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
4712         with their corresponding prologue pushes.
4714 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
4716         PR target/43156
4717         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
4718         at the begining or end.
4719         (spu_expand_epilogue): Likewise.
4721 2010-03-20  Richard Guenther  <rguenther@suse.de>
4723         PR rtl-optimization/43438
4724         * combine.c (make_extraction): Properly zero-/sign-extend an
4725         extraction of the low part of a CONST_INT.  Also handle
4726         CONST_DOUBLE.
4728 2010-03-19  Mike Stump  <mikestump@comcast.net>
4730         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
4731         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
4732         (override_options): Use SUBTARGET32_DEFAULT_CPU.
4734 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4736         PR c/43211
4737         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
4738         an error.
4740 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
4742         PR rtl-optimization/42258
4743         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
4744         use that may match DEF.
4746         PR target/40697
4747         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
4748         the cost of loading the constant rather than assuming
4749         COSTS_N_INSNS (1).
4750         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
4751         outer code is AND, do the same tests as the andsi3 expander and
4752         return COSTS_N_INSNS (1) if and is cheap.
4754         * optabs.c (avoid_expensive_constant): Fix formatting.
4756 2010-03-19  Michael Matz  <matz@suse.de>
4758         PR c++/43116
4759         * attribs.c (decl_attributes): When rebuilding a function pointer
4760         type use the same qualifiers as the original pointer type.
4762 2010-03-19  Martin Jambor  <mjambor@suse.cz>
4764         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
4765         and is_gimple_ip_invariant_address.
4767 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4769         Revert
4770         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4772         * config/arm/arm.c (arm_override_options): Turn off
4773         flag_dwarf2_cfi_asm for AAPCS variants.
4775 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4777         PR target/43399
4778         * config/arm/arm.c (emit_multi_reg_push): Update comments.
4779         Use PRE_MODIFY instead of PRE_DEC.
4780         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
4781         (vfp_emit_fstmd): Likewise.
4783 2010-03-19  Michael Matz  <matz@suse.de>
4785         PR target/43305
4786         * builtins.c (expand_builtin_interclass_mathfn,
4787         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
4788         if that fails.
4790 2010-03-19  Richard Guenther  <rguenther@suse.de>
4792         PR tree-optimization/43415
4793         * tree-ssa-pre.c (phi_translate): Split out worker to ...
4794         (phi_translate_1): ... this.
4795         (phi_translate): Move all caching here.  Cache all NARY
4796         and REFERENCE translations.
4798 2010-03-19  David S. Miller  <davem@davemloft.net>
4800         With help from Eric Botcazou.
4801         * config/sparc/sparc.c: Include dwarf2out.h.
4802         (emit_pic_helper): Delete.
4803         (pic_helper_symbol_name): Delete.
4804         (pic_helper_emitted_p): Delete.
4805         (pic_helper_needed): New.
4806         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
4807         (get_pc_thunk_name): New.
4808         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
4809         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
4810         Set pic_helper_needed to true.  Don't call emit_pic_helper.
4811         (sparc_expand_prologue): Update load_pic_register call.
4812         (sparc_output_mi_thunk): Likewise.
4813         (sparc_file_end): Emit a hidden comdat symbol for the PIC
4814         thunk if possible.  Output CFI information as needed.
4816 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4817             Jack Howarth <howarth@bromo.med.uc.edu>
4819         PR target/36399
4820         * config/i386/i386.h: Fix ABI on darwin x86-32.
4822 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
4824         * tree.h: Declare make_decl_rtl_for_debug.
4825         * varasm.c (make_decl_rtl_for_debug): New.
4826         * dwarf2out.c (rtl_for_decl_location): Call it.
4827         * cfgexpand.c (expand_debug_expr): Call it.
4829 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4831         PR bootstrap/43399
4832         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
4833         mem_mode.
4835         PR bootstrap/43403
4836         * var-tracking.c (vt_init_cfa_base): Do nothing if
4837         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
4839 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
4841         PR debug/42873
4842         * var-tracking.c (canonicalize_vars_star): New.
4843         (dataflow_post_merge_adjust): Use it.
4845 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4847         PR debug/43058
4848         * var-tracking.c (non_suitable_const): New function.
4849         (add_uses): For DEBUG_INSNs with constants, don't record any
4850         value, instead just the constant value itself.
4851         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
4852         is not VAR_LOC_UNKNOWN_P, set var to the constant.
4853         (emit_notes_in_bb): Likewise.
4854         (emit_note_insn_var_location): For onepart variables if
4855         cur_loc is a VOIDmode constant, use DECL_MODE.
4857 2010-03-18  Martin Jambor  <mjambor@suse.cz>
4859         PR middle-end/42450
4860         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
4861         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
4862         all non-clones.  Moved call redirection...
4863         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
4864         (cgraph_materialize_all_clones): Dispose of all
4865         combined_args_to_skip bitmaps.
4866         (verify_cgraph_node): Do not check for edges pointing to wrong
4867         nodes in inline clones.
4868         * tree-inline.c (copy_bb): Call
4869         cgraph_redirect_edge_call_stmt_to_callee.
4870         * ipa.c (cgraph_remove_unreachable_nodes): Call
4871         cgraph_node_remove_callees even when there are used clones.
4873 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4875         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
4877 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4879         PR target/43383
4880         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
4881         for 32bit.
4883 2010-03-18  Michael Matz  <matz@suse.de>
4885         PR middle-end/43419
4886         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
4887         into sqrt(x) if we need to preserve signed zeros.
4889 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
4890             Eric Botcazou  <ebotcazou@adacore.com>
4892         PR rtl-optimization/43360
4893         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
4894         note if we don't know its invariant status.
4896 2010-03-18  Michael Matz  <matz@suse.de>
4898         PR tree-optimization/43402
4899         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
4900         PHI chains of ssa names registered for update.
4902 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
4904         PR target/42427
4905         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
4906         non-offsettable and pre_modify update addressing.
4907         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
4908         and "2" alternatives "#".
4909         (*movdd_softfloat32): Make all alternatives "#";
4910         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
4911         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
4912         (*movdf_softfloat32): Make all alternatives "#";
4913         (movdi): Use the new DIFD mode iterator to create a common splitter
4914         for movdi, movdf and movdd patterns.
4916 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
4918         * common.opt (dumpdir): Remove redundant tab.
4920 2010-03-17  Martin Jambor  <mjambor@suse.cz>
4922         PR tree-optimization/43347
4923         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
4924         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
4926 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4928         PR rtl-optimization/42216
4929         * regrename.c (create_new_chain): New function, broken out from...
4930         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
4931         appending a use to an empty chain.
4932         (build_def_use): Remove previous changes that convert OP_INOUT to
4933         OP_OUT operands; instead detect the case where an OP_INOUT operand
4934         uses a previously untracked register and create an empty chain for it.
4936 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4938         * doc/extend.texi (Function Attributes): Rewrite unfinished
4939         sentence in ms_abi documentation.
4941 2010-03-17  Alan Modra  <amodra@gmail.com>
4943         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
4944         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
4945         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
4946         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
4948 2010-03-16  Richard Henderson  <rth@redhat.com>
4950         PR middle-end/43365
4951         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
4952         (lower_try_finally): Save and restore eh_seq around the expansion
4953         of the try-finally.
4955 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4957         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
4958         statements before splitting block.
4960 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4962         * doc/sourcebuild.texi (Testsuites): Fix markup.
4963         Use pathnames relative to gcc/testsuite.
4964         (Test Directives): Move description of how timeout is determined.
4965         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
4966         (C Tests): Correct gcc.misc-tests directory.
4967         Framework tests now live in gcc.test-framework.
4969 2010-03-16  Richard Guenther  <rguenther@suse.de>
4971         PR middle-end/43379
4972         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
4973         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
4975 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4976             Alexandre Oliva  <aoliva@redhat.com>
4978         PR tree-optimization/42917
4979         * lambda-code.c (remove_iv): Skip debug statements.
4980         (lambda_loopnest_to_gcc_loopnest): Likewise.
4981         (not_interesting_stmt): Debug statements are not interesting.
4983 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
4985         PR debug/43051
4986         PR debug/43092
4987         * cselib.c (cselib_preserve_constants,
4988         cfa_base_preserved_val): New static variables.
4989         (preserve_only_constants): New function.
4990         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
4991         clear its REG_VALUES.  If cselib_preserve_constants, don't
4992         empty the whole hash table, but preserve there VALUEs with constants,
4993         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
4994         (cselib_preserve_cfa_base_value): New function.
4995         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
4996         (cselib_init): Change argument to int bitfield.  Set
4997         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
4998         is in it.
4999         (cselib_finish): Clear cselib_preserve_constants and
5000         cfa_base_preserved_val.
5001         * cselib.h (enum cselib_record_what): New enum.
5002         (cselib_init): Change argument to int.
5003         (cselib_preserve_cfa_base_value): New prototype.
5004         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
5005         * dse.c (dse_step1): Likewise.
5006         * cfgcleanup.c (thread_jump): Likewise.
5007         * sched-deps.c (sched_analyze): Likewise.
5008         * gcse.c (local_cprop_pass): Likewise.
5009         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
5010         If FN is non-NULL, call the callback always and whenever it returns
5011         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
5012         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
5013         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
5014         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
5015         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
5016         * var-tracking.c: Include recog.h.
5017         (bb_stack_adjust_offset): Remove.
5018         (vt_stack_adjustments): Don't call it, instead just gather the
5019         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
5020         (adjust_stack_reference): Remove.
5021         (compute_cfa_pointer): New function.
5022         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
5023         (struct adjust_mem_data): New type.
5024         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
5025         functions.
5026         (get_address_mode): New function.
5027         (replace_expr_with_values): Use it.
5028         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
5029         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
5030         (adjust_sets): Remove.
5031         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
5032         Use get_address_mode.
5033         (get_adjusted_src): Remove.
5034         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
5035         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
5036         (add_with_sets): Don't call adjust_sets.
5037         (fp_setter, vt_init_cfa_base): New functions.
5038         (vt_initialize): Change return type to bool.  Move most of pool etc.
5039         initialization to the beginning of the function from end.  Pass
5040         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
5041         If !frame_pointer_needed, call vt_stack_adjustment before mos
5042         vector is filled, call vt_init_cfa_base if argp/framep has been
5043         eliminated to sp.  If frame_pointer_needed and argp/framep has
5044         been eliminated to hard frame pointer, set
5045         hard_frame_pointer_adjustment and call vt_init_cfa_base after
5046         encountering fp setter in the prologue.  For MO_ADJUST, call
5047         log_op_type before pusing the op into mos vector, not afterwards.
5048         Call adjust_insn before cselib_process_insn/add_with_sets,
5049         call cancel_changes (0) afterwards.
5050         (variable_tracking_main_1): Adjust for vt_initialize calling
5051         vt_stack_adjustments and returning whether it succeeded or not.
5053 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
5055         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
5056         debug statements.
5058 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
5060         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
5061         has been set.
5062         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
5063         drap_reg has not been set.
5065 2010-03-15  Michael Matz  <matz@suse.de>
5067         PR middle-end/43300
5068         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
5069         use it to expand block copies.
5070         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5071         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
5072         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
5074 2010-03-15  Richard Guenther  <rguenther@suse.de>
5076         PR tree-optimization/43367
5077         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
5078         elimination check.
5080 2010-03-15  Richard Guenther  <rguenther@suse.de>
5082         PR tree-optimization/43317
5083         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
5085 2010-03-15  Martin Jambor  <mjambor@suse.cz>
5087         PR tree-optimization/43141
5088         * tree-sra.c (create_abstract_origin): New function.
5089         (modify_function): Call create_abstract_origin.
5091 2010-03-15  Chris Demetriou  <cgd@google.com>
5093         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
5094         wasn't copied.
5096 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5098         PR middle-end/43354
5099         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
5100         call insert_out_of_ssa_copy for default definitions.
5102 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5104         * graphite-clast-to-gimple.c (my_long_long): Defined.
5105         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
5106         * graphite-sese-to-poly.c (my_long_long): Defined.
5107         (scop_ivs_can_be_represented): Use it.
5109 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5111         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
5112         graphite-max-bbs-per-function, and loop-block-tile-size.
5113         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
5114         with "maximum".
5115         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
5117 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5119         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
5120         forward declaration.
5121         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
5122         (add_upper_bounds_from_estimated_nit): New.
5123         (build_loop_iteration_domains): Use it.
5125 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5127         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
5129 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5131         PR middle-end/43306
5132         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
5133         should be an INTEGER_CST.  Also handle CASE_CONVERT.
5135 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5137         * graphite.c (graphite_initialize): To bound the number of bbs per
5138         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
5139         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
5140         * doc/invoke.texi: Document it.
5142 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5144         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
5145         * graphite-sese-to-poly.h (build_poly_scop): Same.
5147 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5149         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
5150         the number of parameters in the scop.  Use as an upper bound
5151         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
5152         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
5153         * doc/invoke.texi: Document it.
5155 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
5157         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
5158         * doc/c-tree.texi: Remove.
5159         * doc/generic.texi: Merge c-tree.texi here.
5160         * doc/gccint.texi (Trees): Remove menu entry.
5161         (c-tree.texi): Remove @include.
5162         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
5163         * doc/languages.texi (Reading RTL): Ditto.
5165 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
5167         PR target/42869
5168         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
5170 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5172         PR middle-end/42431
5173         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
5174         code added to work around reload clobbering CONST insns.
5176 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
5178         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
5179         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
5180         (cselib_preserve_only_values): Remove retain argument, don't
5181         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
5182         * cselib.h (cselib_preserve_only_values): Remove retain argument.
5183         * var-tracking.c (micro_operation): Move insn field before union.
5184         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
5185         (struct variable_tracking_info_def): Remove n_mos field, change
5186         mos into a vector of micro_operations.
5187         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
5188         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
5189         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
5190         changing into a vector.
5191         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
5192         come before all other uops generated by add_stores.
5193         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
5194         argument removal.
5195         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
5196         a vector.  Run just one pass over the bbs instead of separate counting
5197         and computation phase.
5198         (vt_finalize): Free VTI (bb)->mos vector instead of array.
5200         PR debug/43329
5201         * tree-inline.c (remap_decls): Put old_var rather than origin_var
5202         into *nonlocalized_list vector.
5203         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
5204         even if origin is non-NULL.
5205         (gen_variable_die): Likewise.
5206         (process_scope_var): Don't change origin.
5207         (gen_decl_die): Likewise.
5208         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
5209         before adding new edges instead of after it, fix moving over
5210         debug stmts.
5212 2010-03-11  David S. Miller  <davem@davemloft.net>
5214         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
5215         of four.
5216         * configure: Rebuild.
5218 2010-03-11  Martin Jambor  <mjambor@suse.cz>
5220         PR tree-optimization/43257
5221         * tree.c (assign_assembler_name_if_neeeded): New function.
5222         (free_lang_data_in_cgraph): Assembler name assignment moved to the
5223         above new function.
5224         * tree.h (assign_assembler_name_if_neeeded): Declare.
5225         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
5226         the function if needed.
5228 2010-03-11  Chris Demetriou  <cgd@google.com>
5230         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
5231         include/stdint-gcc.h, and include/stdint.h world-readable.
5233 2010-03-11  Richard Guenther  <rguenther@suse.de>
5235         PR tree-optimization/43255
5236         * tree-vrp.c (process_assert_insertions_for): Do not insert
5237         asserts for trivial conditions.
5239 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5241         PR tree-optimization/43280
5242         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
5243         generation.  Move calculation of size out of the if branch.
5244         (find_bswap): Modify compare number generation.
5246 2010-03-11  Richard Guenther  <rguenther@suse.de>
5248         PR lto/43200
5249         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
5250         (input_gimple_stmt): Fixup handled component types during
5251         operand read.  Also fix up decls in ADDR_EXPRs.
5253 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
5255         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
5256         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
5258 2010-03-10  Jan Hubicka  <jh@suse.cz>
5260         PR c/43288
5261         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
5262         * varasm.c (get_variable_section): Don't do that here...
5263         (make_decl_rtl): ... and here.
5264         (do_assemble_alias): Produce decl RTL.
5265         (assemble_alias): Likewise.
5267 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5269         PR debug/43290
5270         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
5271         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
5272         of fde->vdrap_reg.
5273         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
5274         (based_loc_descr): Only express drap or vdrap regno based expressions
5275         using DW_OP_fbreg when not optimizing.
5276         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
5277         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
5278         REG_CFA_SET_VDRAP note.
5280 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
5282         PR tree-optimization/43236
5283         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
5284         error in calculation of base address in reverse iteration case.
5285         (generate_builtin): Take number of latch executions if the statement
5286         is in the latch.
5288 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
5290         PR middle-end/42859
5291         * tree-eh.c: Include pointer-set.h.
5292         (lower_eh_dispatch): Filter out duplicate case labels and
5293         remove the unneeded edge when the label is unused.  Return
5294         true when some edges are removed.
5295         (execute_lower_eh_dispatch): When any lowering resulted in
5296         removing an edge, also delete unreachable blocks.
5298 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5300         PR bootstrap/43287
5301         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5302         UNSPEC_MACHOPIC_OFFSET.
5304 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
5306         PR target/43294
5307         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
5308         (m68k_delegitimize_address): New function.
5310 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
5312         PR debug/43299
5313         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
5315         PR debug/43299
5316         * var-tracking.c (adjust_sets): New function.
5317         (count_with_sets, add_with_sets): Use it.
5318         (get_adjusted_src): New inline function.
5319         (add_stores): Use it.
5321         PR debug/43304
5322         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
5323         call cselib_dummy_expand_value_rtx_cb instead of
5324         cselib_expand_value_rtx_cb.
5326         PR debug/43293
5327         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
5328         * config/i386/i386.c: Include debug.h and dwarf2out.h.
5329         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
5330         and .cfi_endproc around the pic thunks.
5331         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
5332         all queued unwind info register saves are saved before the call.
5333         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
5334         considered as sp-=4 for unwind info and the pop as sp+=4 which
5335         also clobbers dest, but doesn't actually restore it.
5337         PR debug/43290
5338         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
5339         RTX_FRAME_RELATED_P.
5341 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5343         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
5344         whitespaces in output template.
5346 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5348         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
5349         out array boundary.
5351 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5353         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
5354         builtins.exp in a separate job.
5356 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5358         * graphite-sese-to-poly.c (add_param_constraints): Use
5359         lower_bound_in_type and upper_bound_in_type.
5361 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5363         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
5364         instead of unsigned_type_node.
5366 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5367             Reza Yazdani  <reza.yazdani@amd.com>
5369         PR middle-end/43065
5370         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
5371         on pointer type parameters.
5373 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5375         PR middle-end/42644
5376         PR middle-end/42130
5377         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
5378         handle conversions from pointer to integers.
5379         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
5380         induction variable, to be able to work with code generated by CLooG.
5381         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
5382         (build_poly_scop): Bail out if we cannot codegen a loop.
5384 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5386         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
5387         code generation with gloog_error.
5389 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5391         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
5392         Call fold_convert on all the returned values.
5393         (expand_scalar_variables_expr): Pass to
5394         expand_scalar_variables_ssa_name the type of the resulting expression.
5396 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5398         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
5399         ppl_min_for_le_pointset.
5400         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
5401         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
5403 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5405         * graphite-dependences.c (map_into_dep_poly): Removed.
5406         (dependence_polyhedron_1): Use combine_context_id_scat.
5408 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5410         * graphite-poly.h (struct poly_scattering): Add layout documentation.
5411         (struct poly_bb): Same.
5412         (combine_context_id_scat): New.
5414 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5416         PR middle-end/42326
5417         * sese.c (name_defined_in_loop_p): Return false for default
5418         definitions.
5420 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5422         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
5423         and clean up the logic.
5425 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5427         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
5428         early return.
5430 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5432         * var-tracking.c (remove_cselib_value_chains): Define only for
5433         ENABLE_CHECKING.
5434         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
5435         delete_slot_part, emit_notes_for_differences_1): Don't call
5436         remove_cselib_value_chains here.
5437         (set_slot_part, emit_notes_for_differences_2): Don't call
5438         add_cselib_value_chains here.
5439         (preserved_values): New vector.
5440         (preserve_value): New function.
5441         (add_uses, add_stores, vt_add_function_parameters): Use it
5442         instead of cselib_preserve_value.
5443         (changed_values_stack): New vector.
5444         (check_changed_vars_0): New function.
5445         (check_changed_vars_1, check_changed_vars_2): Use it.
5446         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
5447         changed_values_stack VALUEs.
5448         (vt_emit_notes): For all preserved_values call
5449         add_cselib_value_chains.  If ENABLE_CHECKING call
5450         remove_cselib_value_chains before verifying value_chains is empty.
5451         Initialize and free changed_values_stack.
5452         (vt_initialize): Initialize preserved_values.
5453         (vt_finalize): Free preserved_values.
5455 2010-03-08  Richard Guenther  <rguenther@suse.de>
5457         PR tree-optimization/43269
5458         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
5459         region detection.
5461 2010-03-08  Martin Jambor  <mjambor@suse.cz>
5463         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
5464         (ipa_is_param_called): Removed.
5465         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
5466         (ipa_print_node_params): Do not print the called flag.
5467         (ipa_write_node_info): Do not stream the called flag.
5468         (ipa_read_node_info): Likewise.
5470 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
5472         PR debug/43176
5473         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
5474         * cselib.c (struct expand_value_data): Add dummy field.
5475         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
5476         dummy to false.
5477         (cselib_dummy_expand_value_rtx_cb): New function.
5478         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
5479         any rtl.
5480         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
5481         * var-tracking.c: Include pointer-set.h.
5482         (variable): Change n_var_parts to char from int.  Add
5483         cur_loc_changed and in_changed_variables fields.
5484         (variable_canonicalize): Remove.
5485         (shared_var_p): New inline function.
5486         (unshare_variable): Maintain cur_loc_changed and
5487         in_changed_variables fields.  If var was in changed_variables,
5488         replace it there with new_var.  Just copy cur_loc instead of
5489         resetting it to something else.
5490         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
5491         (dataflow_set_union): Don't call variable_canonicalize.
5492         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
5493         of their DEBUG_EXPR_TREE_DECLs.
5494         (canonicalize_loc_order_check): Verify that cur_loc is NULL
5495         and in_changed_variables and cur_loc_changed is false.
5496         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
5497         and cur_loc_changed.  Don't update cur_loc here.
5498         (variable_merge_over_src): Don't call variable_canonicalize.
5499         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
5500         removing loc that is equal to cur_loc, clear cur_loc,
5501         set cur_loc_changed and ensure variable_was_changed is called.
5502         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
5503         compare pointers in cur_loc check, if it is equal to loc,
5504         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
5505         (variable_different_p): Remove compare_current_location argument,
5506         don't compare cur_loc.
5507         (dataflow_set_different_1): Adjust variable_different_p caller.
5508         (variable_was_changed): If dv had some var in changed_variables
5509         already, reset in_changed_variables flag for it and propagate
5510         cur_loc_changed over to the new variable.  On empty var
5511         always set cur_loc_changed.  Set in_changed_variables on whatever
5512         var is added to changed_variables.
5513         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
5514         Use shared_var_p.  When removing loc that is equal to cur_loc,
5515         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
5516         end, don't set it to something else, just call variable_was_changed.
5517         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
5518         loc being removed, clear cur_loc and set cur_loc_changed.
5519         Set cur_loc_changed if all locations have been removed.
5520         (struct expand_loc_callback_data): New type.
5521         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
5522         allocated.  Always create SUBREGs if simplify_subreg failed.
5523         Prefer to use cur_loc, when that fails and still in
5524         changed_variables (and seen first time) recompute it.  Set
5525         cur_loc_changed of variables which had to change cur_loc and
5526         compute elcd->cur_loc_changed if any of the subexpressions used
5527         had to change cur_loc.
5528         (vt_expand_loc): Adjust to pass arguments in
5529         expand_loc_callback_data structure.
5530         (vt_expand_loc_dummy): New function.
5531         (emitted_notes): New variable.
5532         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
5533         that weren't used for any other decl in current
5534         emit_notes_for_changes call call vt_expand_loc_dummy to update
5535         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
5536         first loc_chain location if NULL before.  Always use just
5537         cur_loc instead of first loc_chain location.  When cur_loc_changed
5538         is false, when not --enable-checking=rtl just don't emit any note.
5539         When rtl checking, compute the note and assert it is the same
5540         as previous note.  Clear cur_loc_changed and in_changed_variables
5541         at the end before removing from changed_variables.
5542         (check_changed_vars_3): New function.
5543         (emit_notes_for_changes): Traverse changed_vars to call
5544         check_changed_vars_3 on each changed var.
5545         (emit_notes_for_differences_1): Clear cur_loc_changed and
5546         in_changed_variables.  Recompute cur_loc of new_var.
5547         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
5548         (vt_emit_notes): Initialize and destroy emitted_notes.
5550 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
5552         PR rtl-optimization/42220
5553         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
5554         Use verify_reg_tracked to determine if we should use OP_OUT rather
5555         than OP_INOUT.
5556         (build_def_use): If we see an in-out operand for a register that we
5557         know nothing about, treat is an output if possible, fail the block if
5558         not.
5560 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5562         PR debug/42897
5563         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
5564         permanently.
5566 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5568         PR debug/42897
5569         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
5570         uses of relevant DEFs that are dead outside the loop too.
5572 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
5574         * var-tracking.c (dataflow_set_merge): Swap src and src2.
5575         Reverted:
5576         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
5577         PR debug/41371
5578         * var-tracking.c (values_to_unmark): New variable.
5579         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
5580         values_to_unmark vector.  Moved body to...
5581         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
5582         instead queue it into values_to_unmark vector.
5583         (vt_find_locations): Free values_to_unmark vector.
5585 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5587         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
5588         (site.exp): Export them when plugins are enabled.
5590 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
5592         PR middle-end/42326
5593         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
5594         that contain scevs.
5595         (chrec_fold_multiply): Same.
5597 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
5599         PR c/43248
5600         * c-decl.c (build_compound_literal): Return early if init is
5601         an error_mark_node.
5603 2010-03-04  Martin Jambor  <mjambor@suse.cz>
5605         PR tree-optimization/43164
5606         PR tree-optimization/43191
5607         * tree-sra.c (type_consists_of_records_p): Reject records with
5608         zero-size bit-fields at the end.
5610 2010-03-04  Mike Stump  <mikestump@comcast.net>
5612         * Makefile.in (TAGS): Remove *.y.
5614 2010-03-04  Richard Guenther  <rguenther@suse.de>
5616         PR tree-optimization/40761
5617         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
5618         in reverse order.
5619         (my_rev_post_order_compute): New function.
5620         (init_pre): Call it.
5622 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5624         PR middle-end/43209
5625         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
5626         decrease the cost of an IV candidate when the cost is infinite.
5628 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5630         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
5631         Use '3DNow!' for the extension of that name, ensure normal space
5632         after the string.
5633         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
5635 2010-03-03  Jeff Law  <law@redhat.com>
5637         * PR middle-end/32693
5638         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
5639         than gen_rtx_SUBREG.
5640         (extract_bit_field_1): Likewise.
5642 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
5644         * doc/sourcebuild.texi (Test directives): Document that arguments
5645         include-opts and exclude-opts are now optional for dg-skip-if,
5646         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
5648 2010-03-03  Jason Merrill  <jason@redhat.com>
5650         PR c++/12909
5651         * cgraph.h (varpool_node): Add extra_name field.
5652         * varpool.c (varpool_extra_name_alias): New.
5653         (varpool_assemble_decl): Emit extra name aliases.
5654         (varpool_mark_needed_node): Look past an extra name alias.
5655         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
5656         * lto-streamer-in.c (lto_input_tree): Read it.
5657         * lto-streamer-out.c (output_unreferenced_globals): Write it.
5659 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5661         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
5662         (sparc*-*-solaris2*): ...this.
5664 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
5666         PR debug/43229
5667         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
5668         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
5669         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
5670         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
5672         PR debug/43237
5673         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
5674         fallthrough to default handling, just with want_address 0 instead of 2.
5675         For single element lists, add_AT_loc directly, otherwise create an
5676         artificial variable DIE and stick location list to it.
5678         PR debug/43177
5679         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
5680         (VAL_EXPR_HAS_REVERSE): Define.
5681         (reverse_op): New function.
5682         (add_stores): For reversible operations add an extra MO_VAL_USE.
5684 2010-03-02  Jason Merrill  <jason@redhat.com>
5686         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
5688 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
5690         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
5691         (sparc64-*-linux*): Likewise.
5692         (sparc64-*-solaris2*): Include assembler files before linker ones.
5693         (sparc-*-solaris2*): Simplify and reorder to match previous case.
5694         * config/sparc/gas.h: Delete.
5695         * config/sparc/sol2-64.h: Add copyright notice.
5696         * config/sparc/sol2-gas-bi.h: Likewise.
5697         * config/sparc/sol2-gld.h: Likewise.
5698         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
5699         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
5700         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
5701         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
5702         (sparc_elf_asm_named_section): Rename into...
5703         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
5705 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
5707         * config/alpha/alpha.c (override_options): Fix -mtune error message.
5709 2010-03-02  Jeff Law  <law@redhat.com>
5711         PR middle-end/42431
5712         * reload1.c (rtx_p, substitute_stack): Declare.
5713         (substitute): Record addresses of changed rtxs.
5714         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
5715         Restore the original rtx when complete.
5716         (reload): Free subsitute_stack when complete.
5718 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
5720         * doc/gccint.texi (menu): Add Testsuites as a chapter.
5721         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
5722         new chapter.
5723         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
5724         LTO Testing, gcov Testing, profopt Testing, compat Testing,
5725         Torture Tests): Change from subsection to section.
5727 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
5728             Steven Bosscher  <steven@gcc.gnu.org>
5730         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
5731         instead of bb.
5733 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
5735         PR middle-end/42640
5736         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
5737         the assignment from the new induction variable to the assignment
5738         of the value from the original loop PHI function.
5740 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
5741             Daniel Jacobowitz  <dan@codesourcery.com>
5743         * doc/sourcebuild.texi (Test directives): Clarify options to
5744         dg-skip-if.
5746 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5748         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
5749         Disable cfi directives unless GCC and gas agree on using read-only
5750         .eh_frame sections for 64-bit.
5751         * configure: Regenerate.
5753 2010-03-01  Richard Guenther  <rguenther@suse.de>
5755         PR tree-optimization/43220
5756         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
5757         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
5759 2010-03-01  Richard Guenther  <rguenther@suse.de>
5760             Martin Jambor  <mjambor@suse.cz>
5762         PR middle-end/41250
5763         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
5764         gimplified parameters.
5766 2010-03-01  Christian Bruel  <christian.bruel@st.com>
5768         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
5770 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
5772         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
5774 2010-03-01  Richard Guenther  <rguenther@suse.de>
5776         PR middle-end/43213
5777         * expr.c (expand_assignment): Use the alias-oracle to tell
5778         if the rhs aliases the result decl.
5780 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5782         PR pch/14940
5783         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
5784         to sol_gt_pch_get_address.
5785         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
5786         64-bit, SPARC and x86.
5787         (sol_gt_pch_get_address): New function.
5789 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
5791         * toplev.h (inform_n, error_n): Declare.
5792         * diagnostic.c (inform_n, error_n): New function.
5794 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
5796         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
5797         has no rtl yet when processing local_decls, queue it and recheck
5798         if deferred stack allocation hasn't assigned it rtl.
5800 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5802         * config/sh/sh.c (unspec_bbr_uid): New.
5803         (gen_block_redirect): Use it instead of INSN_UID.
5804         (gen_far_branch): Likewise.
5806 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
5808         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
5809         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
5811 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5813         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
5814         (Warning Options): -Wno-conversion-null is valid for
5815         Objective-C++ as well.
5816         * doc/tm.texi (Named Address Spaces): Likewise.
5817         * doc/plugins.texi (Plugins): Replace TABs with spaces.
5818         * doc/tree-ssa.texi (Tree SSA): Likewise.
5820 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5822         PR bootstrap/43202
5823         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
5824         by default.  Don't set the default arch for
5825         i[34567]86-*-darwin*|x86_64-*-darwin*.
5827 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5829         PR bootstrap/43202
5830         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
5831         default.  Set the default 32bit/64bit archs with $with_arch
5832         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
5834 2010-02-27  Richard Guenther  <rguenther@suse.de>
5836         PR tree-optimization/43186
5837         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
5838         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
5839         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
5840         unroller iterations.
5842 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5844         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
5845         required and i[34567]86-*-* targets don't support 64bit ISA.
5847 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
5849         PR ada/43096
5850         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
5851         the same alias set.
5853 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
5855         * config.gcc: Set the default arch at least to Prescott for
5856         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
5857         if SSE math is enabled.
5859 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5861         * diagnostic.c (diagnostic_initialize): Update.
5862         (diagnostic_report_diagnostic): Test inhibit_notes_p for
5863         informative notes.
5864         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
5865         (diagnostic_inhibit_notes): New.
5866         * toplev.c (process_options): inhibit notes with -fcompare-debug.
5868 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5870         PR c/20631
5871         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
5872         * doc/standards.texi: Likewise.
5873         * doc/extend.texi: Likewise.
5874         * doc/trouble.texi: Likewise.
5875         * doc/cppopts.texi: Likewise.
5876         * doc/install.texi: Likewise.
5877         * c.opt (std=c90,std=gnu90): New options.
5878         * c-opts.c (c_common_handle_option): Handle them.
5880 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5882         PR c/24577
5883         * c-decl.c (undeclared_variable): Use an informative note.
5885 2010-02-26  Richard Guenther  <rguenther@suse.de>
5887         PR tree-optimization/43186
5888         * gimple.h (gimple_fold): Remove.
5889         * gimple.c (gimple_fold): Remove.  Inline into single user ...
5890         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
5891         Try harder for conditions.
5893 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
5895         PR debug/43190
5896         * function.c (used_types_insert): Don't skip through named pointer
5897         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
5898         and it is different from the main variant's type.
5900 2010-02-26  Nick Clifton  <nickc@redhat.com>
5902         * config/rx/rx.md (sminsi3): Remove bogus alternative.
5904 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
5906         * config.gcc: Support --with-fpmath=sse for x86.
5908         * config/i386/ssemath.h: New.
5910         * doc/install.texi (--with-fpmath=sse): Documented.
5912 2010-02-26  Richard Guenther  <rguenther@suse.de>
5914         PR tree-optimization/43188
5915         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
5916         vector types of over-aligned element type.
5918 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
5920         PR target/43175
5921         * config/i386/i386.c (expand_vec_perm_blend): Use correct
5922         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
5924 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
5926         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
5928 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
5930         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
5931         * var-tracking.c: Include diagnostic.h.
5932         (debug_dv): New function.
5933         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
5935         PR debug/43160
5936         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
5937         (add_value_chain, add_value_chains, remove_value_chain,
5938         remove_value_chains): Handle DEBUG_EXPRs.
5939         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
5941         PR debug/43161
5942         * regcprop.c (struct queued_debug_insn_change): New type.
5943         (struct value_data_entry): Add debug_insn_changes field.
5944         (struct value_data): Add n_debug_insn_changes field.
5945         (debug_insn_changes_pool): New variable.
5946         (free_debug_insn_changes, apply_debug_insn_changes,
5947         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
5948         (kill_value_one_regno): Call free_debug_insn_changes if needed.
5949         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
5950         fields.
5951         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
5952         changes for them.
5953         (copyprop_hardreg_forward_1): Don't call apply_change_group for
5954         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
5955         changes, call cprop_find_used_regs via note_stores.
5956         (copyprop_hardreg_forward): When copying vd from predecessor
5957         which has any queued DEBUG_INSN changes, make sure the pointers are
5958         cleared.  At the end call df_analyze and then if there are any
5959         DEBUG_INSN changes queued at the end of some basic block for still
5960         live registers, apply them.
5961         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
5963 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
5965         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
5966         (arm*-*-*): Ditto.
5968 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
5970         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
5971         targets.  Set the default with_cpu/with_arch from arch/cpu.
5972         Allow x86-64 and native for with_cpu/with_arch.
5974 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
5976         * ebitmap.c: Change calls to verify_popcount with calls to
5977         sbitmap_verify_popcount.
5978         (ebitmap_clear_bit): Fixed map->cacheindex test and
5979         map>cache update when bit clearing results in an empty
5980         element.
5982 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
5984         PR target/43154
5985         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
5986         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
5987         and support both V2DF and V2DI modes.
5988         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
5989         support both V2DF and V2DI modes.
5990         (general): Delete trailing whitespace from a few patterns.
5992         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5993         V2DF/V2DI interleave high/low builtins.
5995         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
5996         new VSX builtins.
5998         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
5999         interleave high/low functions.
6001 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6003         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
6004         #pragma extern_prefix.
6006 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
6008         PR debug/43166
6009         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
6010         BLKmode, assert op0 is a MEM and just adjust its mode.
6012         PR debug/43165
6013         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
6014         if bitpos isn't multiple of mode's bitsize.
6016 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6018         * c.opt (-ftemplate-depth=): New.
6019         (-ftemplate-depth-): Deprecate.
6020         * optc-gen.awk: Handle -ftemplate-depth=.
6021         * opth-gen.awk: Likewise.
6022         * c-opts.c (c_common_handle_option): Likewise.
6023         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
6025 2010-02-24  Jason Merrill  <jason@redhat.com>
6027         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
6029 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6031         * cfg.c (alloc_aux_for_block): Remove inline.
6032         (alloc_aux_for_edge): Likewise.
6034 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6036         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
6038 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6040         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
6041         * config/i386/sol2-gas.h: New file.
6042         * config.gcc (i[34567]86-*-solaris2*): Use it.
6044 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6046         PR c/43128
6047         * c-typeck.c (ep_convert_and_check): New.
6048         (build_conditional_expr): Use it.
6049         (build_binary_op): Likewise.
6051 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
6053         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
6055         PR debug/43150
6056         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
6057         bounds even for -O+.
6058         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
6059         expr needs to have DECL_NAME set.
6061 2010-02-24  Nick Clifton  <nickc@redhat.com>
6063         * config/mep/mep.c: Include gimple.h.
6064         (mep_function_uses_sp): Delete unused function.
6065         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
6066         parameters.  Use unsigned integers to count args.  Return a
6067         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
6069 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6071         PR target/43107
6072         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
6073         greater or equal to nelt instead of 2 * nelt.
6074         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
6075         with nelt - 1.
6077 2010-02-23  Jason Merrill  <jason@redhat.com>
6079         PR debug/42800
6080         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
6081         in cfun->local_decls even if they have register types.
6083         PR c++/42837
6084         * stor-layout.c (place_field): Don't warn about unnecessary
6085         DECL_PACKED if the type is packed.
6087 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6089         PR target/43139
6090         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
6091         GOTOFF relocs, even when the base reg isn't pic pointer.
6093 2010-02-23  Michael Matz  <matz@suse.de>
6095         PR debug/43077
6096         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
6097         (expand_gimple_basic_block): Generate and use debug temps if there
6098         are debug uses left after the last real use of TERed ssa names.
6099         Unlink debug immediate uses when they are expanded.
6101 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6103         PR 43123
6104         * config/i386/i386.c (override_options): Reorganise to provide
6105         better error messages.
6107 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6109         PR middle-end/43083
6110         * graphite-scop-detection.c (create_single_exit_edge): Move
6111         the call to find_single_exit_edge to....
6112         (create_sese_edges): ...here.  Don't handle multiple edges
6113         exiting the function.
6114         (build_graphite_scops): Don't handle multiple edges
6115         exiting the function.
6117 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6119         PR middle-end/43097
6120         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
6121         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
6123 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6125         PR middle-end/43026
6126         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
6128 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6130         PR c++/43126
6131         * c-typeck.c (convert_arguments): Print declaration location.
6132         * c-common.c (validate_nargs): Rename as
6133         builtin_function_validate_nargs.
6134         (check_builtin_function_arguments): Update.
6136 2010-02-22  Richard Guenther  <rguenther@suse.de>
6138         PR lto/43045
6139         * tree-inline.c (declare_return_variable): Use the type of
6140         the call stmt lhs if available.
6142 2010-02-22  Duncan Sands  <baldrick@free.fr>
6144         * passes.c (register_pass): Always consider all pass lists when
6145         ref_pass_instance_number is zero.
6147 2010-02-22  Richard Guenther  <rguenther@suse.de>
6149         PR tree-optimization/42749
6150         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
6151         parameter.  Do arithmetic in the original type.
6152         (update_accumulator_with_ops): Likewise.
6153         (adjust_accumulator_values): Adjust.
6155 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6157         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
6158         (QI to BLKmode splitter): New splitter.
6160 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
6162         * config/i386/i386.c (initial_ix86_tune_features): Turn on
6163         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
6165 2010-02-22  Richard Guenther  <rguenther@suse.de>
6167         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
6169 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
6171         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
6172         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
6173         ($(T)crti.o, $(T)crtn.o): Remove rules.
6175 2010-02-21  Tobias Burnus  <burnus@net-b.de>
6177         PR fortran/35259
6178         * doc/invoke.texi (-fassociative-math): Document that this
6179         option is automatically enabled for Fortran.
6181 2010-02-20  David S. Miller  <davem@davemloft.net>
6183         * configure.ac: Test if linker and assembler properly support
6184         GOTDATA_OP relocations.
6185         * configure: Rebuild.
6186         * config.in: Likewise.
6187         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
6188         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
6189         (movsi_high_pic): Likewise.
6190         (movdi_lo_sum_pic): Likewise.
6191         (movdi_high_pic): Likewise.
6192         (movsi_pic_gotdata_op): New pattern.
6193         (movdi_pic_gotdata_op): Likewise.
6194         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
6195         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
6197 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
6199         PR target/43067
6200         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
6201         attribute to ssemul.
6202         (xop_mulv2div2di3_high): Ditto.
6204 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6206         PR c++/35669
6207         * c.opt (Wconversion-null): New option.
6208         * doc/invoke.texi (Wconversion-null): Document.
6210 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6212         * common.opt (Wlarger-than-): Add Undocumented.
6214 2010-02-19  Mike Stump  <mikestump@comcast.net>
6216         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
6218 2010-02-19  Jason Merrill  <jason@redhat.com>
6220         PR target/40332
6221         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
6222         * configure: Likewise.
6224 2010-02-20  Alan Modra  <amodra@gmail.com>
6226         PR middle-end/42344
6227         * cgraph.h (cgraph_make_decl_local): Declare.
6228         * cgraph.c (cgraph_make_decl_local): New function.
6229         (cgraph_make_node_local): Use it.
6230         * cgraphunit.c (cgraph_function_versioning): Likewise.
6231         * ipa.c (function_and_variable_visibility): Likewise.
6233 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6235         PR bootstrap/43121
6236         * except.c (sjlj_emit_function_enter): Don't call
6237         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
6238         directly.
6239         * rtl.h (add_reg_br_prob_note): Remove prototype.
6241 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6243         PR 41779
6244         * c-common.c (conversion_warning): Remove widening conversions
6245         before checking the conversion of integers to reals.
6247 2010-02-19  Mike Stump  <mikestump@comcast.net>
6249         PR middle-end/43125
6250         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
6252         PR objc/43061
6253         * cgraphunit.c (process_function_and_variable_attributes): Check
6254         DECL_PRESERVE_P instead of looking up attribute "used".
6255         * ipa-pure-const.c (check_decl): Likewise.
6256         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
6257         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
6258         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
6259         instead of attribute "used".
6260         * config/sol2-c.c (solaris_pragma_init): Likewise.
6261         (solaris_pragma_fini): Likewise.
6263 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6265         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
6266         Use XCNEW instead of xcalloc.
6267         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
6268         XNEW instead of xmalloc.
6269         (get_fields): Use XNEWVEC instead of xmalloc.
6271         PR debug/43084
6272         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
6273         populate vars array.
6274         (create_new_general_access): For debug stmts just reset value.
6275         (get_stmt_accesses): For accesses within debug stmts just record them
6276         using add_access_to_acc_sites instead of preventing the peeling or
6277         counting them as accesses.
6279         PR middle-end/42233
6280         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
6282 2010-02-19  Richard Guenther  <rguenther@suse.de>
6284         PR tree-optimization/42916
6285         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
6286         instructions.
6288 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
6290         * configure.ac: Replace all uses of changequote in macro arguments
6291         with proper quoting.
6293 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6295         PR middle-end/42233
6296         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
6298 2010-02-19  Richard Guenther  <rguenther@suse.de>
6300         PR tree-optimization/42944
6301         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
6302         test for aliasing with errno.
6304 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6306         PR middle-end/42233
6307         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
6308         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
6309         * dojump.c: Include output.h.
6310         (inv): New inline function.
6311         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
6312         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
6313         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
6314         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
6315         argument, pass it down to other calls.
6316         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
6317         add REG_BR_PROB note to the conditional jump.
6318         * cfgexpand.c (add_reg_br_prob_note): Removed.
6319         (expand_gimple_cond): Don't call it, add the probability
6320         as last argument to jumpif_1/jumpifnot_1.
6321         * Makefile.in (dojump.o): Depend on output.h.
6322         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
6323         callers.
6324         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
6325         * stmt.c (do_jump_if_equal): Likewise.
6326         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
6327         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6328         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
6329         Likewise.
6330         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
6331         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
6332         jumpifnot_1 callers.
6333         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
6334         callers.
6335         (store_expr): Adjust jumpifnot caller.
6336         (store_constructor): Adjust jumpif caller.
6338         PR middle-end/42233
6339         * gimplify.c (gimple_boolify): For __builtin_expect call
6340         gimple_boolify also on its first argument.
6342 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
6344         * configure.ac (gnu-unique-object): Wrap regexps using [] in
6345         changequote block.
6346         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
6347         * configure: Regenerated.
6349 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6351         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
6352         lang_hooks.types_compatible_p instead of comptypes.
6354 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
6356         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
6357         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
6358         if __prefer_thumb__ is defined.
6360 2010-02-18  Martin Jambor  <mjambor@suse.cz>
6362         PR tree-optimization/43066
6363         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
6364         array with zero-sized element type.
6366 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
6368         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
6369         rtx, allocate struct var_loc_node here and return it to the
6370         caller, and only if it is actually needed.
6371         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
6372         move it earlier and return immediately if it returns NULL.
6374 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
6376         * config/sparc/gas.h: New file.  Restore
6377         TARGET_ASM_NAMED_SECTION to its ELF default.
6378         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
6379         check !HAVE_GNU_AS.
6380         * config/sparc/sparc.c (sparc_elf_asm_named_section):
6381         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
6382         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
6383         after sparc/sysv4.h.
6385 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
6387         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
6389 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
6391         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
6392         patterns from predicated pattern.
6394 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
6396         PR target/43103
6397         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
6398         for insn mnemonic suffix.
6400 2010-02-17  Richard Guenther  <rguenther@suse.de>
6402         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
6403         to loop PHI nodes.
6405 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
6407         PR debug/42918
6408         * caller-save.c (save_call_clobbered_regs): If BB ends with
6409         a DEBUG_INSN, move any notes in between last real insn and the last
6410         DEBUG_INSN after the last DEBUG_INSN.
6412 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
6414         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
6415         Fix return type.  Fix argument type.  Explain meaning of return value.
6417 2010-02-16  Richard Guenther  <rguenther@suse.de>
6419         PR tree-optimization/41043
6420         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
6421         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
6422         statements ...
6423         (vrp_visit_phi_node): ... but only for loop PHI nodes.
6425 2010-02-16  Ira Rosen  <irar@il.ibm.com>
6427         PR tree-optimization/43074
6428         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
6429         * tree-vect-loop.c (vect_analyze_loop_operations): Add
6430         vectorizable cycles in hybrid SLP check.
6431         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
6433 2010-02-16  Richard Guenther  <rguenther@suse.de>
6435         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
6436         (true_dependence): If memrefs_conflict_p computes must-alias
6437         trust it.  Move TBAA check after offset-based disambiguation.
6438         (canon_true_dependence): Likewise.
6440 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
6442         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
6443         * doc/invoke.texi: Document it.
6444         * var-tracking.c: Include toplev.h and params.h.
6445         (vt_find_locations): Return bool indicating success.  Compute
6446         hash sizes unconditionally.  Check new parameter, report.
6447         (variable_tracking_main_1): Check vt_find_locations results and
6448         retry.  Renamed from...
6449         (variable_tracking_main): ... this.  New wrapper to preserve
6450         flag_var_tracking_assignments.
6451         * Makefile.in (var-tracking.o): Adjust dependencies.
6453 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
6454             Jakub Jelinek <jakub@redhat.com>
6456         PR target/42854
6457         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
6458         if weak_import attribute is present.
6459         * config/darwin.c (machopic_select_section): Likewise.
6461 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
6463         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
6464         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
6465         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
6466         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
6468         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
6469         types.
6471         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6472         Fix argument types.
6474         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
6475         Rewrite text to refer to the names.
6477 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
6479         * config/i386/i386-builtin-types.def
6480         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
6481         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
6482         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
6483         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
6484         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
6485         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
6486         IX86_BUILTIN_VPERMIL2PS256.
6487         (MULTI_ARG_4_DF2_DI_I): Defined.
6488         (MULTI_ARG_4_DF2_DI_I1): Defined.
6489         (MULTI_ARG_4_SF2_SI_I): Defined.
6490         (MULTI_ARG_4_SF2_SI_I1): Defined.
6491         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
6492         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
6493         __builtin_ia32_vpermil2ps256.
6494         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6495         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6496         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
6497         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6498         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6499         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
6500         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
6501         CODE_FOR_xop_vpermil2v8sf3.
6502         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
6503         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
6504         * config/i386/xopintrin.h (_mm_permute2_pd): New.
6505         (_mm256_permute2_pd): New.
6506         (_mm_permute2_ps): New.
6507         (_mm256_permute2_ps): New.
6509 2010-02-15  Nick Clifton  <nickc@redhat.com>
6511         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
6512         boolean parameters.  Use emit_jump_insn when emitting a pop
6513         instruction containing a return insn.
6514         (push): Use 'true' rather than '1' as second parameter to F.
6515         (h8300_expand_prologue): Likewise.
6516         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
6517         (h8300_expand_epilogue): Likewise.
6519 2010-02-15  Richard Guenther  <rguenther@suse.de>
6521         PR middle-end/43068
6522         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
6523         if that is zero.
6525 2010-02-15  Nick Clifton  <nickc@redhat.com>
6527         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
6528         delta.
6530 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
6532         * intl.c (fake_ngettext): New function.
6533         * intl.h (fake_ngettext): Declare.
6534         (ngettext): Define macro.
6535         * collect2.c (notice_translated): New function.
6536         (main): Use notice_translated and ngettext.
6537         * collect2.h (notice_translated): Declare.
6539 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
6541         * reorg.c (delete_computation): Comment fixes.
6542         * caller-save.c (setup_save_areas): Idem.
6543         * sel-sched-dump.c (dump_lv_set): Idem.
6544         * rtl.def: Idem.
6546 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6548         * config/s390/s390.c (s390_sched_init): New function.
6549         (TARGET_SCHED_INIT): Target hook defined.
6551 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
6552             Jack Howarth  <howarth@bromo.med.uc.edu>
6553             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6555         PR target/42982
6556         Partial revert of unintended change in fix for PR41605.
6557         * config/darwin.h: Fix typo.
6558         * config/darwin9.h: Same.
6560 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6562         * c-pch.c (pch_init): Clear v.
6564 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6566         PR middle-end/42930
6567         * graphite-scop-detection.c (graphite_can_represent_scev): Call
6568         graphite_can_represent_init for MULT_EXPR.
6570 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6572         PR middle-end/42914
6573         PR middle-end/42530
6574         * graphite-sese-to-poly.c (remove_phi): New.
6575         (translate_scalar_reduction_to_array): Call remove_phi.
6577 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6579         PR middle-end/42771
6580         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
6581         * graphite-clast-to-gimple.h (gloog): Update declaration.
6582         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
6583         * graphite-poly.h (struct poly_bb): Add missing comments.
6584         (struct scop): Add poly_scop_p field.
6585         (POLY_SCOP_P): New.
6586         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
6587         * graphite.c (graphite_transform_loops): Build the polyhedral
6588         representation for each scop before code generation.
6589         * sese.c (rename_variables_in_operand): Removed.
6590         (rename_variables_in_expr): Return the renamed expression.
6591         (rename_sese_parameters): New.
6592         * sese.h (rename_sese_parameters): Declared.
6594 2010-02-11  Richard Guenther  <rguenther@suse.de>
6596         PR tree-optimization/42998
6597         * tree-ssa-pre.c (create_expression_by_pieces): Treat
6598         POINTER_PLUS_EXPR properly.
6600 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6601             Changpeng Fang  <changpeng.fang@amd.com>
6603         PR middle-end/40886
6604         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
6605         the cost of an IV candidate when the IV is used in a test against zero.
6607         * gcc.dg/tree-ssa/ivopts-3.c: New.
6609 2010-02-11  Richard Guenther  <rguenther@suse.de>
6611         PR lto/41664
6612         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
6613         pointer-vs-decl case by swapping refs.  Handle some cases
6614         of pointer-vs-decl disambiguations more conservatively.
6615         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
6616         to false after expanding.
6618 2010-02-11  Richard Guenther  <rguenther@suse.de>
6620         PR driver/43021
6621         * gcc.c (process_command): Handle LTO file@offset case more
6622         appropriately.
6624 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6626         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
6627         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
6628         of DEBUG_INSNs.
6629         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
6631         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
6632         if MEM's mode size isn't DWARF2_ADDR_SIZE.
6633         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
6634         Optimize eq/ne comparisons when both arguments are known to be
6635         zero-extended.
6636         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
6637         Don't mask operands unnecessarily if they are known to be already
6638         zero-extended.
6640 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
6642         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
6643         instead of loop.
6645 2010-02-10  Richard Guenther  <rguenther@suse.de>
6647         PR tree-optimization/43017
6648         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
6649         for wrapping signed arithmetic.
6651 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6653         PR debug/43010
6654         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
6655         if no debug info should be emitted for it.
6657 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6659         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
6660         note when flag_exceptions is set.
6662 2010-02-10  Duncan Sands  <baldrick@free.fr>
6664         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
6666 2010-02-10  Richard Guenther  <rguenther@suse.de>
6668         PR c/43007
6669         * tree.c (get_unwidened): Handle constants.
6670         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
6672 2010-02-10  Martin Jambor  <mjambor@suse.cz>
6674         PR lto/42985
6675         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
6676         check for variable argument counts independently.
6678 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6680         PR target/42841
6681         * config/sh/sh.c (find_barrier): Increase length for non delayed
6682         conditional branches.
6684 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6686         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
6688 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6690         * builtins.c (set_builtin_user_assembler_name): Also handle
6691         ffs if int is smaller than word.
6693 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
6695         PR middle-end/42973
6696         * ira-conflicts.c (get_dup): Remove.
6697         (process_reg_shuffles): Add new parameter.  Use it as an
6698         additional guard for copy generation.
6699         (add_insn_allocno_copies): Rewrite.
6701 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
6703         * common.opt (fsched2-use-traces): Preserved for backward
6704         compatibility.
6705         * doc/invoke.texi: Remove the documentation about option
6706         -fsched2-use-traces.
6707         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
6708         flag_sched2_use_traces.
6709         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
6710         the backward compatibility flag section.
6712 2010-02-09  Richard Guenther  <rguenther@suse.de>
6714         PR tree-optimization/43008
6715         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
6716         make HEAP variables initialized from global memory if they
6717         are not known builtin functions.
6718         (find_func_aliases): Adjust.
6720 2010-02-09  Richard Guenther  <rguenther@suse.de>
6722         PR tree-optimization/43000
6723         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
6724         arithmetic manually.
6726 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
6728         PR tree-optimization/42931
6729         * tree-loop-linear.c (try_interchange_loops): Don't call
6730         double_int_mul if estimated_loop_iterations failed.
6732 2010-02-08  Martin Jambor  <mjambor@suse.cz>
6734         PR middle-end/42898
6735         * tree-sra.c (build_accesses_from_assign): Do not mark in
6736         should_scalarize_away_bitmap if stmt has volatile ops.
6737         (sra_modify_assign): Do not process assigns piecemeal if if stmt
6738         has volatile ops.
6740 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
6742         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
6744 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
6746         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
6747         before the pattern.
6749 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
6751         PR middle-end/42946
6752         * df-core.c (df_finish_pass): Change type of saved_flags to int.
6754 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6756         PR middle-end/42988
6757         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
6758         to unknown_dependence.
6759         (graphite_legal_transform_dr): Handle the unknown_dependence.
6760         (graphite_carried_dependence_level_k): Same.
6762 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6764         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
6766 2010-02-07  Richard Guenther  <rguenther@suse.de>
6768         PR middle-end/42991
6769         * expr.c (get_inner_reference): Always initialize *pbitsize.
6771 2010-02-07  Richard Guenther  <rguenther@suse.de>
6773         PR middle-end/42956
6774         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
6775         new ARRAY_REFs on variable size element or minimal index arrays.
6776         Complete.
6777         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
6778         gimple_fold_indirect_ref.
6780 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
6782         PR target/42957
6783         * arm.c (arm_override_options): Just return if the user has specified
6784         an invalid fpu name.
6786 2010-02-03  Jason Merrill  <jason@redhat.com>
6788         PR c++/42870
6789         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
6790         i386_pe_maybe_record_exported_symbol.
6792 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
6794         PR target/42924
6795         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6796         (pa_delegitimize_address): New function.
6798 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
6800         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
6801         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
6803 2010-02-05  Richard Guenther  <rguenther@suse.de>
6805         PR lto/42762
6806         * lto-streamer-in.c (get_resolution): Deal with references
6807         to undefined functions.
6809 2010-02-05  Richard Guenther  <rguenther@suse.de>
6811         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
6812         (fold_const_aggregate_ref): Likewise.
6813         (ccp_fold_stmt): Substitute loads.
6814         (maybe_fold_reference): Verify types before substituting.
6815         Unshare properly.
6816         (fold_gimple_assign): Unshare properly.
6817         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
6819 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
6821         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
6822         for rs6000_gen_cell_microcode.
6824 2010-02-04  Richard Guenther  <rguenther@suse.de>
6826         PR rtl-optimization/42952
6827         * dse.c (const_or_frame_p): Remove MEM handling.
6829 2010-02-04  Nick Clifton  <nickc@redhat.com>
6831         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
6832         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
6833         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
6834         (mn10300_asm_output_mi_thunk): New function.
6835         (mn10300_can_output_mu_thunk): New function.
6836         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
6837         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
6838         (FUNCTION_ARG): Delete incorrect comment.
6840 2010-02-03  Jason Merrill  <jason@redhat.com>
6842         PR c++/40138
6843         * fold-const.c (operand_equal_p): Handle erroneous types.
6845 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6847         * config/h8300/h8300.md (can_delay): Fix attibute condition.
6849 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
6851         PR rtl-optimization/42941
6852         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
6853         of xmalloc.
6855 2010-02-03  Jason Merrill  <jason@redhat.com>
6857         PR c++/35652
6858         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
6860 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
6862         PR debug/42896
6863         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
6864         (cselib_reset_table): Renamed from...
6865         (cselib_reset_table_with_next_value): ... this.
6866         (cselib_get_next_uid): Renamed from...
6867         (cselib_get_next_unknown_value): ... this.
6868         * cselib.c (next_uid): Renamed from...
6869         (next_unknown_value): ... this.
6870         (cselib_clear_table): Adjust.
6871         (cselib_reset_table): Adjust.  Renamed from...
6872         (cselib_reset_table_with_next_value): ... this.
6873         (cselib_get_next_uid): Adjust.  Renamed from...
6874         (cselib_get_next_unknown_value): ... this.
6875         (get_value_hash): Use hash.
6876         (cselib_hash_rtx): Likewise.
6877         (new_cselib_val): Adjust.  Set and dump uid.
6878         (cselib_lookup_mem): Pass next_uid as hash.
6879         (cselib_subst_to_values): Likewise.
6880         (cselib_log_lookup): Dump uid.
6881         (cselib_lookup): Pass next_uid as hash.  Adjust.
6882         (cselib_process_insn): Adjust.
6883         (cselib_init): Initialize next_uid.
6884         (cselib_finish): Adjust.
6885         (dump_cselib_table): Likewise.
6886         * dse.c (canon_address): Dump value uid.
6887         * print-rtl.c (print_rtx): Print value uid.
6888         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
6889         (dvuid): New type.
6890         (dv_uid): New function, sort of renamed from...
6891         (dv_htab_hash): ... this, reimplemented in terms of it and...
6892         (dv_uid2hash): ... this.  New.
6893         (variable_htab_eq): Drop excess assertions.
6894         (tie_break_pointers): Removed.
6895         (canon_value_cmp): Compare uids.
6896         (variable_post_merge_New_vals): Print uids.
6897         (vt_add_function_parameters): Adjust.
6898         (vt_initialize): Reset table.  Adjust.
6900 2010-02-03  Richard Guenther  <rguenther@suse.de>
6902         PR tree-optimization/42944
6903         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
6904         (call_may_clobber_ref_p_1): Likewise.  Properly handle
6905         malloc and calloc clobbering errno.
6907 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
6909         * doc/invoke.texi: Fix name of sched1 dump.
6911         * opts.c (decode_options): Set flag_tree_switch_conversion
6912         only conditionally on optimize >= 2.
6914         * gcse.c: Assorted comment fixes in pass description.
6916 2010-02-03  Anthony Green  <green@moxielogic.com>
6918         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
6919         nop padding in order to maintain alignment of storage location of
6920         target function address.
6921         (moxie_trampoline_init): Store target function address at newly
6922         aligned location.
6923         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
6924         to 32.
6925         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
6927 2010-02-03  Richard Guenther  <rguenther@suse.de>
6929         PR middle-end/42927
6930         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
6932 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6934         * config.gcc: Reenable check for obsolete targets.
6935         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
6936         mips-sgi-irix6.[0-4]*.
6938 2010-02-02  Nick Clifton  <nickc@redhat.com>
6940         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
6941         constant size of 4 as being the same as 0.
6942         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
6943         can take values in the range 0..4.
6945 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
6947         PR java/41991
6948         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
6949         as _darwin10_Unwind_FindEnclosingFunction().
6950         * libgcc-libsystem.ver: New.
6952 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
6954         PR target/41399
6955         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
6956         implicitly set registers.
6958 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
6960         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
6961         (arm_override_options): Allow automatic selection of the thread
6962         pointer register if thumb2.
6963         (legitimize_pic_address): Improve code sequences for Thumb2.
6964         (arm_call_tls_get_addr): Likewise.
6965         (legitimize_tls_address): Likewise.
6966         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
6967         (pic_load_addr_32bit): ... this.  New named pattern.
6968         * thumb2.md (pic_load_addr_thumb2): Delete.
6969         (pic_load_dot_plus_four): Delete.
6970         (tls_load_dot_plus_four): New named pattern.
6972 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6974         PR libgomp/29986
6975         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
6976         Document fix for TLS bug.
6978 2010-01-31  Richard Guenther  <rguenther@suse.de>
6980         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
6981         conservatively correct.
6983 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6985         PR target/42850
6986         Revert:
6987         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6989         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
6991 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6993         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
6995 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
6997         * config.gcc: Adjust order of makefile fragments for mingw targets.
6999 2010-01-31  Richard Guenther  <rguenther@suse.de>
7001         PR middle-end/42898
7002         * gimplify.c (gimplify_init_constructor): For volatile LHS
7003         initialize a temporary.
7005 2010-01-31  Matthias Klose  <doko@ubuntu.com>
7007         * configure.ac: Fix __stack_chk_fail check for cross builds configured
7008         --with-headers
7009         * configure: Regenerate.
7011 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
7013         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
7014         the same alias set and their sizes different constantness.
7015         (aliasing_component_refs_p): Revert 2009-10-24 change.
7017 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7019         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
7020         unused.
7022 2010-01-29  Richard Guenther  <rguenther@suse.de>
7024         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
7025         Assert we successfully updated the call.
7027 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
7029         PR rtl-optimization/42889
7030         * df.h (df_set_bb_dirty_nonlr): New prototype.
7031         * df-core.c (df_set_bb_dirty_nonlr): New function.
7032         * df-scan.c (df_insn_rescan): Call it instead of
7033         df_set_bb_dirty for DEBUG_INSNs.
7035 2010-01-29  Richard Guenther  <rguenther@suse.de>
7037         PR middle-end/37448
7038         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
7039         quadratic behavior in most cases.
7041 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
7043         PR target/42891
7044         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
7045         in the call to gen_x86_movsicc_0_m1.
7047 2010-01-28  Richard Guenther  <rguenther@suse.de>
7049         PR tree-optimization/42871
7050         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
7052 2010-01-28  Richard Guenther  <rguenther@suse.de>
7054         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
7055         into call arguments.
7057 2010-01-28  Richard Guenther  <rguenther@suse.de>
7059         PR middle-end/42883
7060         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
7061         the forwarder if the destination is an EH landing pad.
7063 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
7065         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
7066         block list passed to gimple_duplicate_sese_tail.
7067         (parallelize_loops): Avoid parallelization when the function
7068         has_nonlocal_label.
7069         Avoid parallelization when the preheader is IRREDUCIBLE.
7070         Try to optimize when estimated_loop_iterations_int is unresolved.
7071         Add the loop's location to the dump file.
7072         * tree-cfg.c (add_phi_args_after_redirect): Remove.
7073         (gimple_duplicate_sese_tail): Remove the check for the latch.
7074         Redirect nexits to the exit block.
7075         Remove handling of the incoming edges to the latch.
7076         Redirect the backedge from the copied latch to the exit bb.
7078 2010-01-28  Michael Matz  <matz@suse.de>
7080         PR target/42881
7081         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
7082         Wrap force_reg into a sequence, emit it before user.
7084 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
7086         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
7087         (arm_rev): New.
7088         (arm_legacy_rev): Likewise.
7089         (thumb_legacy_rev): Likewise.
7091 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7093         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
7094         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
7095         on MEM's address failed, try avoid_constant_pool_reference and
7096         recurse if it returned something different.
7097         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
7098         address, try avoid_constant_pool_reference and recurse if it
7099         returned something different.
7100         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
7101         address and avoid_constant_pool_reference returned something
7102         different, don't set have_address.
7104 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
7106         PR debug/42861
7107         * var-tracking.c (val_store): Add modified argument, obey it.
7108         Adjust callers.
7109         (count_uses): Move down logging of main.
7110         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
7111         don't need resolution.
7112         (emit_notes_in_bb): Likewise.
7114 2010-01-27  Richard Guenther  <rguenther@suse.de>
7116         PR middle-end/42878
7117         * tree-inline.c (remap_decl): Delay remapping of SSA name
7118         default definitions until we need them.
7120 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7122         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7123         (rs6000_delegitimize_address): New function.
7125         * config/s390/s390.c (s390_delegitimize_address): Call
7126         delegitimize_mem_from_attrs.
7128         PR middle-end/42874
7129         * tree-inline.c (cannot_copy_type_1): Removed.
7130         (copy_forbidden): Don't forbid copying of functions containing
7131         records/unions with variable length fields.
7133 2010-01-27  Christian Bruel  <christian.bruel@st.com>
7135         Revert:
7136         PR target/42841
7137         * config/sh/sh.c (find_barrier): Increase length for non delayed
7138         conditional branches.
7140 2010-01-27  Matthias Klose  <doko@ubuntu.com>
7142         * configure.ac (gnu-unique-object): Fix ldd version check.
7143         * configure: Regenerate.
7145 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7147         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
7148         HAVE_GNU_AS value.
7149         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
7150         Test for HAVE_GNU_AS value.
7152 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7154         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
7155         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
7156         INT64_TYPE): Define.
7157         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
7158         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7159         INT_LEAST64_TYPE): Define.
7160         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
7161         UINT_LEAST64_TYPE): Define.
7162         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
7163         INT_FAST64_TYPE): Define.
7164         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7165         UINT_FAST64_TYPE): Define.
7166         (INTMAX_TYPE, UINTMAX_TYPE): Define.
7167         (INTPTR_TYPE, UINTPTR_TYPE): Define.
7168         (SIG_ATOMIC_TYPE): Define.
7170 2010-01-26  Richard Guenther  <rguenther@suse.de>
7172         * df-scan.c (df_scan_set_bb_info): Remove assert.
7173         (df_insn_rescan_debug_internal): Merge asserts.
7174         (df_install_ref): Likewise.
7175         (df_mark_reg): Use bitmap_set_range.
7176         (df_hard_reg_used_p): Remove assert.
7177         (df_hard_reg_used_count): Likewise.
7179 2010-01-26  Richard Guenther  <rguenther@suse.de>
7181         PR rtl-optimization/42685
7182         * web.c (web_main): Ignore DEBUG_INSNs.
7184 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
7186         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
7188         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
7189         Fix types of fndecl and arglist parameters.
7191 2010-01-26  Richard Guenther  <rguenther@suse.de>
7193         PR middle-end/42806
7194         * tree-eh.c (unsplit_eh): Skip debug insns.
7196 2010-01-26  Richard Guenther  <rguenther@suse.de>
7198         PR tree-optimization/42250
7199         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
7201 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
7203         PR fortran/42866
7204         * omp-low.c (expand_omp_sections): Only use single_pred if
7205         l2_bb is single_pred_p.
7207 2010-01-25  Christian Bruel  <christian.bruel@st.com>
7209         PR target/42841
7210         * config/sh/sh.c (find_barrier): Increase length for non delayed
7211         conditional branches.
7212         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
7214 2010-01-24  David S. Miller  <davem@davemloft.net>
7216         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
7217         define if not using GAS.
7218         * config/sparc/sparc.c (sparc_elf_asm_named_section):
7219         Likewise.  Delete SECTION_MERGE code, which is only applicable
7220         when using GAS.
7222 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
7224         PR c++/42748
7225         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
7226         mangling of va_list in system headers.
7228 2010-01-23  Toon Moene  <toon@moene.org>
7230         * tree-predcom.c (combine_chains): Return NULL, not false.
7232 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
7234         * tree-loop-distribution.c (distribute_loop): Fix declaration and
7235         initialization of variable res to agree with return type.
7237 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
7239         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
7240         * tree-sra.c: Add include of expr.h.
7242 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
7244         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
7245         insert the debug stmt on the single non-EH edge from the stmt.
7247 2010-01-22  Richard Henderson  <rth@redhat.com>
7249         PR tree-opt/42833
7250         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
7251         the RHS until after generate_subtree_copies has insertted its
7252         code before the current statement.
7254 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
7256         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
7258         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
7260 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7262         PR tree-optimization/42585
7263         * tree-sra.c (struct access): New field grp_total_scalarization.
7264         (dump_access): Dump the new field.
7265         (should_scalarize_away_bitmap): New variable.
7266         (cannot_scalarize_away_bitmap): Likewise.
7267         (sra_initialize): Allocate new bitmaps.
7268         (sra_deinitialize): Free new bitmaps.
7269         (create_access_1): New function.
7270         (create_access): Parts moved to create_access_1.
7271         (type_consists_of_records_p): New function.
7272         (completely_scalarize_record): Likewise.
7273         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
7274         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
7275         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
7276         access.
7277         (analyze_all_variable_accesses): Completely scalarize small eligible
7278         records.
7280 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7282         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
7284 2010-01-21  Andrew Haley  <aph@redhat.com>
7286         * gcc.c (process_command): Move lang_specific_driver before
7287         setting cc_libexec_prefix.
7289 2010-01-21  Richard Guenther  <rguenther@suse.de>
7291         PR middle-end/19988
7292         * fold-const.c (negate_expr_p): Pretend only negative
7293         real constants are easily negatable.
7295 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
7296             Jason Merrill  <jason@redhat.com>
7298         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
7299         (TYPE_TRANSPARENT_AGGR): this, for union and record.
7300         * calls.c (initialize argument_information): Handle it.
7301         * c-common.c (handle_transparent_union_attribute): Use new name.
7302         * c-decl.c (finish_struct): Ditto.
7303         * c-typeck.c (type_lists_compatible_p): Ditto.
7304         (convert_for_assignment): Use new name and also handle record.
7305         * function.c (aggregate_value_p): Handle it.
7306         (pass_by_reference): Ditto.
7307         (assign_parm_data_types): Ditto.
7308         * print-tree.c (print_node): Ditto.
7309         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
7310         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
7311         * tree.c (first_field): New fn.
7313 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
7315         PR target/42818
7316         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
7317         even when linking statically, for now.
7319 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7321         PR debug/42715
7322         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
7323         without a cselib val.
7324         (count_uses): Accept MO_VAL_SET with no val on stores.
7325         (add_stores): Likewise.
7327 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7329         * var-tracking.c (check_value_val): Add a compile time assertion.
7330         (dv_is_decl_p): Simplify.
7331         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
7332         gcc_assert if ENABLE_CHECKING.
7334 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7336         PR debug/42782
7337         * var-tracking.c: Include tree-flow.h.
7338         (mem_dies_at_call): New.
7339         (dataflow_set_preserve_mem_locs): Use it.
7340         (dataflow_set_remove_mem_locs): Likewise.
7341         (dump_var): Renamed from dump_variable.  Adjust all callers.
7342         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
7343         * Makefile.in (var-tracking.o): Adjust deps.
7345 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
7347         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
7349 2010-01-20  Richard Guenther  <rguenther@suse.de>
7351         PR tree-optimization/42717
7352         * tree-ssa-dce.c (get_live_post_dom): Remove.
7353         (forward_edge_to_pdom): Take an arbitrary edge to copy
7354         degenerate PHI args from.
7355         (remove_dead_stmt): Use the first post-dominator even if it
7356         does not contain live statements as redirection destination.
7358 2010-01-20  Richard Guenther  <rguenther@suse.de>
7360         * tree-inline.c (estimate_num_insns): Handle EH builtins.
7362 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7364         * sel-sched.c (create_speculation_check): Remove set but not used
7365         variable twin.
7366         (try_transformation_cache): Remove set but not used variable ds.
7367         (calculate_privileged_insns): Remove set but not used variables
7368         cur_insn and min_spec_insn.
7369         (find_best_expr): Remove set but not used variable avail_n.
7370         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
7371         variable e.
7372         * cgraphunit.c (assemble_thunk): Remove set but not used variable
7373         false_label.
7374         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
7375         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
7376         new_scop_exit_edge.
7378 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
7380         PR bootstrap/42786
7381         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
7382         cpu types.  Add support for *-sse3 cpu types.
7383         (x86_64-*-*): Ditto.
7385 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7387         PR middle-end/42803
7388         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
7389         argument, call initializer_constant_valid_p_1 instead of
7390         initializer_constant_valid_p, pass CACHE to it, return NULL
7391         immediately if first call returns NULL.
7392         (initializer_constant_valid_p_1): New function.
7393         (initializer_constant_valid_p): Use it.
7395 2010-01-20  Thomas Quinot  <quinot@adacore.com>
7397         * tree.def (PLACEHOLDER_EXPR): Fix comment.
7399 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7401         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
7402         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
7403         (loc_list_from_tree): Don't handle unsigned division.  Handle
7404         signed modulo using DW_OP_{over,over,div,mul,minus}.
7405         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
7406         modulo instead of signed.
7408 2010-01-20  DJ Delorie  <dj@redhat.com>
7410         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
7411         (Fpa): Pass it
7412         (h8300_emit_stack_adjustment): Propogate it.
7413         (push): Pass it.
7414         (h8300_expand_prologue): Likewise.
7415         (h8300_expand_epilogue): Likewise.
7417 2010-01-19  Michael Matz  <matz@suse.de>
7419         PR tree-optimization/41783
7420         * tree-data-ref.c (toplevel): Include flags.h.
7421         (dump_data_dependence_relation):  Also dump the inputs if the
7422         result will be unknown.
7423         (split_constant_offset_1): Look through some conversions.
7424         * tree-predcom.c (determine_roots_comp): Restart a new chain if
7425         the offset from last element is too large.
7426         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
7427         (reassociate_to_the_same_stmt): Handle vector registers.
7428         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
7429         (e.g. conversions).
7430         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
7431         wide_prolog_niters argument, emit widening instructions.
7432         (vect_do_peeling_for_alignment): Adjust caller, use widened
7433         variant of the iteration cound.
7434         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
7436 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7438         PR target/38697
7439         * config/arm/neon-testgen.m (emit_automatics): New parameter
7440         features. Adjust for Fixed_return_reg feature.
7441         (test_intrinsic): Call emit_automatics with new feature.
7442         * config/arm/neon.ml: Update copyright years.
7443         (features): New Fixed_return_reg feature.
7444         (ops): Update feature for Vget_low.
7446 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
7448         PR tree-optimization/42719
7449         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
7450         stmt uses.
7452         PR debug/42728
7453         * fwprop.c (all_uses_available_at): Return false if def_set dest
7454         is a REG that is used in def_insn.
7456 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
7458         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
7460         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
7461         Add argument names.
7463         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
7465         * target.h (struct gcc_target) <secondary_reload>: Change type
7466         of last argument to secondary_reload_info *.
7468 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
7470         PR target/42774
7471         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
7472         memory references with unaligned offsets.  Remove CQImode handling.
7473         (unaligned_memory_operand): Return 1 for memory references with
7474         unaligned offsets.  Remove CQImode handling.
7476 2010-01-18  Richard Guenther  <rguenther@suse.de>
7478         PR middle-end/39954
7479         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
7480         builtin calls.
7482 2010-01-18  Richard Guenther  <rguenther@suse.de>
7484         PR tree-optimization/42781
7485         * tree-ssa-structalias.c (find_what_var_points_to): Skip
7486         restrict processing only if the original variable was artificial.
7488 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
7490         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
7491         find number of popped argument bytes.
7493         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
7494         Fix the text that describes the return value for invalid insns.
7496         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
7498         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
7499         Clarify what 'cost of the -dependence' is.  Fix quoting.
7501         * toplev.c (default_get_pch_validity): Rename argument to "sz".
7502         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
7504 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
7506         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7507         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
7509 2010-01-17  Richard Guenther  <rguenther@suse.de>
7511         PR middle-end/42248
7512         * function.c (split_complex_args): Take a VEC to modify.
7513         (assign_parms_augmented_arg_list): Build a VEC instead of
7514         a chain of PARM_DECLs.
7515         (assign_parms_unsplit_complex): Take a VEC of arguments.
7516         Do not fixup unmodified parms.
7517         (assign_parms): Deal with the VEC.
7518         (gimplify_parameters): Likewise.
7520 2010-01-17  Richard Guenther  <rguenther@suse.de>
7522         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
7523         node existence check.
7524         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
7525         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
7526         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
7527         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
7528         (gimple_execute_on_growing_pred): Likewise.
7530 2010-01-17  Richard Guenther  <rguenther@suse.de>
7532         PR tree-optimization/42773
7533         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
7534         (compute_antic_aux): Likewise.
7535         (compute_partial_antic_aux): Likewise.
7537 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
7539         PR debug/42767
7540         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
7541         and US_TRUNCATE.
7543 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
7545         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
7546         appearance.
7548         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
7549         Fix markup for strict argument.
7551         (TARGET_SCHED_REORDER2): Fix argument types.
7553         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
7554         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
7556         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
7557         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
7559         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
7560         Add argument name.
7562         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
7563         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
7564         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
7565         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
7566         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
7568         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
7570         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
7572         (TARGET_ASM_RELOC_RW_MASK): Add return type.
7573         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
7575         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
7577         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
7578         Use prototype.
7580         (TARGET_ASM_NAMED_SECTION): Fix argument list.
7582         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
7583         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
7585         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
7587         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
7589         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
7590         referring to it.  Fix language.
7592         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
7594         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
7596         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
7598         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
7600         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
7601         '@var{stream}.  Remove stray 'and'.
7603         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
7605         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
7607         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
7609         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
7610         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
7612         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
7613         Fix description of return value.
7614         Rename argument "sz" to "len."
7616         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
7617         Clarify meaning of 'true' return value.
7619         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
7621         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
7622         rep_mode versus mode_rep.
7624         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
7626         (TARGET_BUILTIN_DECL): Fix name.
7628         (TARGET_COMMUTATIVE_P): Fix type of first argument.
7630         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
7632         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
7634         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
7636         (TARGET_RELAXED_ORDERING): Use @deftypevr.
7638         (TARGET_GET_DRAP_RTX): Note that this is a hook.
7639         Clarify language.
7641         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
7642         Rename argument tm_fn to md_fn.
7644         (TARGET_OPTION_PRINT): Fix argument list.
7646 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
7648         PR target/42664
7649         * config/i386/i386.c (ix86_fixup_binary_operands):
7650         Revert FMA4 fixup of operands.
7652 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7654         PR gcc/42525
7655         * Makefile.in (write_entries_to_file, install-plugin):
7656         Use \012 instead of \n with tr.
7658 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
7660         * configure.ac (HAVE_AS_REF): New C macro.
7661         * configure: Regenerate.
7662         * config.in: Likewise.
7663         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
7664         if HAVE_AS_REF.
7665         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
7666         if HAVE_AS_REF.
7668 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
7670         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
7672         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
7674         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
7676         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
7678         (TARGET_IN_SMALL_DATA_P): Fix argument type.
7680         (TARGET_BINDS_LOCAL_P): Fix argument type.
7682         (TARGET_ASM_FILE_END): Use prototype.
7684         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
7686         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
7688         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
7690         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
7692         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
7693         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
7695         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
7696         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
7698         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
7699         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
7700         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
7701         (TARGET_ADDR_SPACE_CONVERT): Likewise.
7703         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
7705         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
7707         (TARGET_INIT_BUILTINS): Use prototype.
7709         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
7710         Put 'const char *' in braces.  Fix parameter types.
7711         (TARGET_INVALID_CONVERSION): Fix parameter types.
7712         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
7713         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
7715         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
7716         Fix argument type.
7718         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
7720         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
7722 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
7724         * doc/tm.texi (TARGET_HELP): Fix return type.
7726         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
7727         in braces.  Fix argument types.
7729         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
7731         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
7733         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
7735         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
7736         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
7738         (TARGET_MANGLE_TYPE): Fix argument types.
7740         (TARGET_IRA_COVER_CLASSES): Use prototype.
7742         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
7744         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
7746         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
7748         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
7750         (TARGET_CALLEE_COPIES): Fix argument types.
7752         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
7754         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
7756         (TARGET_FUNCTION_VALUE): Fix argument types.
7758         (TARGET_RETURN_IN_MSB): Fix argument type.
7760         (TARGET_RETURN_IN_MEMORY): Fix argument types.
7762         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
7764         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
7766         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
7767         agree with return type.
7769         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
7771 2010-01-15  Jing Yu  <jingyu@google.com>
7773         PR rtl-optimization/42691
7774         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
7775         a pseudo to a constant and are merged, and adjust comments.
7777 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
7779         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
7781 2010-01-15  Richard Guenther  <rguenther@suse.de>
7783         PR middle-end/42739
7784         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
7785         labels of computed or non-local gotos to the destination.
7786         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
7787         landing pad label is the first label.
7789 2010-01-15  Richard Guenther  <rguenther@suse.de>
7791         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
7793 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7795         PR target/42747
7796         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
7797         to allow generation of the xssqrtdp instruction on power7.
7798         (sqrtdf2_fpr): Ditto.
7800 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7802         PR middle-end/42674
7803         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
7804         functions with noreturn attribute.
7806         PR c++/42608
7807         * varasm.c (declare_weak): Add weak attribute to decl if it
7808         doesn't have one already.
7809         (assemble_external): Only add decls to weak_decls if they also
7810         have weak attribute.
7812 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
7814         * var-tracking.c (var_reg_delete): Don't delete the association
7815         between REGs and values or one-part variables if the register
7816         isn't clobbered.
7818 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7820         PR debug/42657
7821         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
7822         because its first operand is a non-localized variable.
7824 2010-01-14  Martin Jambor  <mjambor@suse.cz>
7826         PR tree-optimization/42706
7827         * tree-sra.c (encountered_recursive_call): New variable.
7828         (encountered_unchangable_recursive_call): Likewise.
7829         (sra_initialize): Initialize both new variables.
7830         (callsite_has_enough_arguments_p): New function.
7831         (scan_function): Call decl and flags check only for IPA-SRA, check
7832         whether there is a recursive call and whether it has enough arguments.
7833         (all_callers_have_enough_arguments_p): New function.
7834         (convert_callers): Look for recursive calls only when
7835         encountered_recursive_call is set.
7836         (ipa_early_sra): Bail out either if
7837         !all_callers_have_enough_arguments_p or
7838         encountered_unchangable_recursive_call.
7840 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7842         * sel-sched.c: Add 2010 to copyright years.
7843         * sel-sched-ir.c: Likewise.
7844         * sel-sched-ir.h: Likewise.
7846 2010-01-14  Martin Jambor  <mjambor@suse.cz>
7848         PR tree-optimization/42714
7849         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
7850         constructors specially.
7852 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7854         * config/i386/drivers-i386.c (detect_caches_intel):
7855         Add l2sizekb parameter and fill in.
7856         (host_detect_local_cpu): Add l2sizekb, fill in.
7857         Add Atom small cache heuristic.
7859 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7861         * config/i386/drivers-i386.c (detect_caches_cpuid4):
7862         Add level3 parameter and fill in.
7863         (detect_caches_intel): Handle level3 cache.
7865 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7867         * config/i386/drivers-i386.c (host_detect_local_cpu):
7868         Fix core duo detection.
7870 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7872         * config/i386/drivers-i386.c (host_detect_local_cpu):
7873         Fix Atom detection.
7875 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7877         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
7878         (rs6000_variable_issue_1): this.  Use...
7879         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
7881 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7883         * sel-sched-ir.c (sel_restore_other_notes): Rename to
7884         sel_restore_notes.  Update all callers.  Call reemit_notes
7885         for all insns.
7887 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7889         PR rtl-optimization/42246
7890         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
7891         loops.
7893 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7895         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
7896         all successors is the same as number of successors in current region.
7898 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7900         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
7901         to rename is not separable.  Otherwise check that its LHS is not NULL.
7903 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7905         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
7907 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7909         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
7910         available registers when failed to discover LHS register class.
7911         Fix indentation.  Update comment.
7913 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7914             Alexander Monakov  <amonakov@ispras.ru>
7916         PR rtl-optimization/42389
7917         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
7918         to can_issue_more.
7919         (advance_state_on_fence): Likewise.
7920         (sel_target_adjust_priority): Print debug output only when
7921         sched_verbose >= 4, not 2.
7922         (get_expr_cost): Do not issue all unique insns on the next cycle.
7923         (fill_insns): Initialize can_issue_more from the value saved
7924         with the fence.
7925         * sel-sched-ir.c (flist_add): New parameter issue_more.
7926         Init FENCE_ISSUE_MORE with it.
7927         (merge_fences): Likewise.
7928         (init_fences): Update call to flist_add.
7929         (add_to_fences, add_clean_fence_to_fences)
7930         (add_dirty_fence_to_fences): Likewise.
7931         (move_fence_to_fences): Update call to merge_fences.
7932         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
7933         sched groups.
7934         * sel-sched-ir.h (struct _fence): New field issue_more.
7935         (FENCE_ISSUE_MORE): New accessor macro.
7937 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7939         PR rtl-optimization/42388
7940         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
7941         that have no predecessors nor successors.  Do not call move_bb_info
7942         for empty blocks outside of current region.
7944 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7946         PR rtl-optimization/42294
7947         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
7948         * sel-sched.c (move_exprs_to_boundary): Transitively add all
7949         originators' originators.
7951 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7953         PR rtl-optimization/39453
7954         PR rtl-optimization/42246
7955         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
7956         for pipelining_p.
7957         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
7959 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7960             Alexander Monakov  <amonakov@ispras.ru>
7962         PR middle-end/42245
7963         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
7964         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
7965         argument.  Update all callers.
7966         (tidy_control_flow): ... and here.  Recompute topological order
7967         of basic blocks in region if necessary.
7968         (sel_redirect_edge_and_branch): Change return type.  Return true
7969         if topological order might have been invalidated.
7970         (purge_empty_blocks): Export and move from...
7971         * sel-sched.c (purge_empty_blocks): ... here.
7972         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
7973         (maybe_tidy_empty_bb): Delete prototype.
7974         (purge_empty_blocks): Declare.
7976 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
7978         PR rtl-optimization/42249
7979         * sel-sched.c (try_replace_dest_reg): When chosen register
7980         and original register is the same, do not bail out early, but
7981         still check all original insns for validity of replacing destination
7982         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
7983         in this case.
7985 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7987         PR c/42721
7988         Port from no-undefined-overflow branch:
7989         2009-03-09  Richard Guenther  <rguenther@suse.de>
7991         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
7993 2010-01-14  Richard Guenther  <rguenther@suse.de>
7995         PR lto/42665
7996         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
7998 2010-01-14  Ira Rosen  <irar@il.ibm.com>
8000         PR tree-optimization/42709
8001         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
8002         as scalar type in creation of constant vector operand.
8004 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8006         PR testsuite/42414
8007         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
8008         (check-parallel-%): Match `testsuite' directory component only
8009         at the end.
8011 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
8013         PR translation/39521
8014         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
8015         strings with _().
8017 2010-01-13  Richard Guenther  <rguenther@suse.de>
8019         PR tree-optimization/42730
8020         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
8021         offset zero.
8023 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
8025         PR target/pr42542
8026         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
8027         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
8028         them signed.
8030 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8032         * config/bfin/libgcc-bfin.ver: Regenerate based on current
8033         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
8034         ___umulsi3_highpart.
8036         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
8037         rather than schedule_insns if the pass is enabled.
8039 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8041         PR tree-optimization/42704
8042         * tree-sra.c (sra_modify_assign): Do not delete assignments to
8043         SSA_NAMEs.
8045 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8047         PR tree-optimization/42703
8048         * tree-sra.c (analyze_access_subtree): Check that we can build a
8049         reference to the original data within the aggregate.
8051 2010-01-13  Richard Guenther  <rguenther@suse.de>
8053         PR tree-optimization/42705
8054         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
8056 2010-01-13  Richard Guenther  <rguenther@suse.de>
8058         PR middle-end/42716
8059         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
8061 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8063         PR debug/41371
8064         * var-tracking.c (values_to_unmark): New variable.
8065         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8066         values_to_unmark vector.  Moved body to...
8067         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8068         instead queue it into values_to_unmark vector.
8069         (vt_find_locations): Free values_to_unmark vector.
8071 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
8073         * config/s390/s390.c (override_options): Set
8074         default of max-pending-list-length to 256
8076 2010-01-13  Richard Guenther  <rguenther@suse.de>
8078         PR lto/42678
8079         * tree-pass.h (PROP_gimple_lcx): New.
8080         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
8081         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
8082         before the final cleanup_eh.
8083         (dump_properties): Dump PROP_gimple_lcx.
8084         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
8085         (tree_lower_complex_O0): Remove.
8086         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
8087         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
8088         tree_lower_complex, schedule TODO_update_ssa.
8089         * lto-streamer-out.c (output_function): Stream the functions
8090         properties.
8091         * lto-streamer-in.c (input_function): Likewise.
8092         (lto_read_body): Do not override them here.
8094 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
8096         PR c/42708
8097         * c-typeck.c (build_c_cast): Fold value cast to union type before
8098         wrapping it in a CONSTRUCTOR.
8100 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8102         PR rtl-optimization/42699
8103         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
8104         involved.
8106 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8108         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8109         SUBTARGET_WARN_UNUSED_SPEC): Move ...
8110         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8111         SUBTARGET_WARN_UNUSED_SPEC): ... here
8112         * config/mips/iris5.h (LIBGCC_SPEC): Define.
8114 2010-01-12  Julian Brown  <julian@codesourcery.com>
8116         * config/arm/neon-schedgen.ml (Utils): Don't try to
8117         open missing module.
8118         (find_with_result): New.
8120 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8122         PR debug/42662
8123         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
8124         sharing when canonicalizing ({lt,ge}u (plus a b) b).
8126         PR tree-optimization/42645
8127         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
8128         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
8129         decl_map, set processing_debug_stmt to -1 and return name without
8130         any remapping.
8132 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
8134         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
8135         binutils version, and reword target configuration description.
8137 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8139         * config/avr/avr.h (LINKER_NAME): Remove.
8141 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
8143         PR target/42416
8144         * config/rs6000/rs6000.c (rs6000_override_options): On targets
8145         that support VSX, warn for -mno-altivec if vsx is not disabled,
8146         and disable vsx.
8148 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
8149             Shujing Zhao  <pearly.zhao@oracle.com>
8151         PR translation/42469
8152         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
8153         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
8154         character between option name and help text.
8155         * c.opt (imultilib): Likewise.
8157 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
8159         * lto-streamer-out.c (output_unreferenced_globals): Output static
8160         variables.
8162 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
8164         PR rtl-optimization/42621
8165         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
8166         optimizing for size.
8167         (duplicate_computed_gotos): Remove now-redundant check.
8169 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
8171         PR target/37454
8172         * configure.ac: Save and restore LDFLAGS and LIBS
8173         * configure: Regenerate.
8175 2010-01-10  Richard Guenther  <rguenther@suse.de>
8177         PR middle-end/42667
8178         * builtins.c (fold_builtin_strlen): Add type argument and
8179         convert the resulting length to it.
8180         (fold_builtin_1): Adjust.
8182 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8184         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
8185         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
8186         1 insn.
8187         (num_insns_constant_wide): Adjust for that change.
8189 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8191         PR debug/42631
8192         * web.c (union_defs): Add used argument, to combine uses of
8193         uninitialized regs.
8194         (entry_register): Adjust type and tests of used argument.
8195         (web_main): Widen used for new use.  Pass it to union_defs.
8196         * df.h (union_defs): Adjust prototype.
8198 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8200         PR debug/42630
8201         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
8202         uses in new incoming argument.  Free body.
8203         (reset_debug_uses_in_loop): New.
8204         (analyze_insn_to_expand_var): Call the latter if the former found
8205         anything.  Fix whitespace.  Reject invalid dest overlaps before
8206         going through all insns in the loop.
8208 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8210         PR debug/42629
8211         * haifa-sched.c (dying_use_p): Debug insns don't count.
8213 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8215         PR middle-end/42363
8216         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
8217         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
8218         (verify_gimple_call): Reject LHS in noreturn calls.
8220 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8222         PR debug/42604
8223         PR debug/42395
8224         * tree-vect-loop-manip.c (adjust_info): New type.
8225         (adjust_vec): New pointer to vector.
8226         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
8227         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
8228         (slpeel_update_phis_for_duplicate_loop): Use them.
8229         (slpeel_update_phi_nodes_for_guard1): Likewise.
8230         (slpeel_update_phi_nodes_for_guard2): Likewise.
8231         (slpeel_tree_peel_loop_to_edge): Likewise.
8232         (vect_update_ivs_after_vectorizer): Likewise.
8234 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8236         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
8237         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
8239 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8241         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
8242         bogus uninitialized warning.
8244 2010-01-09  Richard Guenther  <rguenther@suse.de>
8246         PR middle-end/42512
8247         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
8248         the evolution is compatible with the initial condition.
8250 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8252         * gcc.c (process_command): Update copyright notice dates.
8253         * gcov.c (print_version): Likewise.
8254         * gcov-dump.c (print_version): Likewise.
8255         * mips-tfile.c (main): Likewise.
8256         * mips-tdump.c (main): Likewise.
8258 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8260         PR target/41885
8261         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
8262         (rotlhi3): Delete.
8263         (rotlhi3_8): Delete.
8264         (rotlsi3): Delete.
8265         (rotlsi3_8): Delete.
8266         (rotlsi3_16): Delete.
8267         (rotlsi3_24): Delete.
8268         (rotl<mode>3): New.
8269         (*rotw<mode>3): New.
8270         (*rotb<mode>3): New.
8271         * config/avr/avr.c (avr_rotate_bytes): New function.
8272         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
8274 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
8276         PR target/37454
8277         * configure.ac: Modify -rdynamic check.
8278         * configure: Regenerate.
8280 2010-01-08  DJ Delorie  <dj@redhat.com>
8282         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
8283         register popping order.
8285 2010-01-08  Richard Guenther  <rguenther@suse.de>
8287         PR lto/42528
8288         * c.opt (fsigned-char): Also let LTO handle this option.
8289         (funsigned-char): Likewise.
8291 2010-01-07  Richard Guenther  <rguenther@suse.de>
8293         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
8294         (gimple_op): Likewise.
8295         (gimple_op_ptr): Likewise.
8296         (gimple_assign_set_lhs): Remove gcc_assert.
8297         (gimple_assign_set_rhs1): Likewise.
8298         (gimple_assign_set_rhs2): Likewise.
8299         (gimple_call_set_lhs): Likewise.
8300         (gimple_call_set_fn): Likewise.
8301         (gimple_call_set_fndecl): Likewise.
8302         (gimple_call_fndecl): Likewise.
8303         (gimple_call_return_type): Likewise.
8304         (gimple_call_set_chain): Likewise.
8305         (gimple_call_num_args): Likewise.
8306         (gimple_call_set_arg): Likewise.
8307         (gimple_cond_set_code): Likewise.
8308         (gimple_cond_set_lhs): Likewise.
8309         (gimple_cond_set_rhs): Likewise.
8310         (gimple_cond_set_true_label): Likewise.
8311         (gimple_cond_set_false_label): Likewise.
8312         (gimple_label_set_label): Likewise.
8313         (gimple_goto_set_dest): Likewise.
8314         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
8315         (gimple_debug_bind_get_value): Likewise.
8316         (gimple_debug_bind_get_value_ptr): Likewise.
8317         (gimple_debug_bind_set_var): Likewise.
8318         (gimple_debug_bind_set_value): Likewise.
8319         (gimple_debug_bind_reset_value): Likewise.
8320         (gimple_debug_bind_has_value_p): Likewise.
8321         (gimple_return_retval_ptr): Remove gcc_assert.
8322         (gimple_return_retval): Likewise.
8323         (gimple_return_set_retval): Likewise.
8324         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
8325         (safe_referenced_var_iterator): Remove.
8326         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
8327         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
8328         (fill_referenced_var_vec): Remove.
8329         (first_readonly_imm_use): Remove redundant gcc_assert.
8330         (phi_arg_index_from_use): Combine gcc_asserts.
8331         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
8332         (first_imm_use_stmt): Remove redundant gcc_assert.
8333         * tree-cfg.c (verify_gimple_call): Verify function and chain
8334         operands.  Verify arguments.
8335         (verify_types_in_gimple_stmt): Verify condition code and labels.
8337 2010-01-07  Richard Guenther  <rguenther@suse.de>
8339         PR tree-optimization/42641
8340         * sese.c (rename_map_elt_info): Use the SSA name version, do
8341         not hash pointers.
8343 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
8345         PR tree-optimization/42625
8346         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
8347         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
8349 2010-01-07  Duncan Sands  <baldrick@free.fr>
8351         * Makefile.in (PLUGIN_HEADERS): Add version.h.
8353 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
8355         PR target/42511
8356         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
8357         note itself is not function_invariant_p.
8359 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
8361         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
8362         Do not add the DF_NOTE problem.
8363         * store-motion.c (execute_rtl_store_motion): Likewise.
8365 2010-01-07  Martin Jambor  <mjambor@suse.cz>
8367         PR tree-optimization/42157
8368         * tree-sra.c (compare_access_positions): Stabilize sort if both
8369         accesses have integer types, return zero immediately if they are the
8370         same.
8372 2010-01-06  Richard Henderson  <rth@redhat.com>
8374         PR middle-end/41883
8375         * haifa-sched.c (add_to_note_list): Merge into ...
8376         (concat_note_lists): ... here, and ...
8377         (unlink_other_notes, rm_other_notes): Merge into...
8378         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
8379         NOTE_INSN_EPILOGUE_BEG.
8381 2010-01-06  Richard Guenther  <rguenther@suse.de>
8383         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
8384         not inline regular functions into always-inline functions.
8386 2010-01-06  Nick Clifton  <nickc@redhat.com>
8388         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
8389         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
8390         used together.
8391         (OVERRIDE_OPTIONS): Delete.
8392         (OPTIMIZATION_OPTIONS): Define.
8393         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
8394         * config/rx/rx.c (rx_handle_option): Issue an error message if
8395         -mcpu=rx200 and -fpu are used together.
8396         (rx_set_optimization_options): New function.  Issue an error
8397         message if an optimization attribute attempts to reset the FPU/
8398         math optimization pairing.
8399         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
8400         * config/rx/rx.opt: Set the default to 32-bit doubles.
8401         * config/rx/t-rx: Add multilibs for -nofpu option.
8402         * doc/invoke.texi: Update documentation of RX options.
8404 2010-01-06  Richard Guenther  <rguenther@suse.de>
8406         * tree-ssa-pre.c (name_to_id): New global.
8407         (alloc_expression_id): Simplify SSA name handling.
8408         (lookup_expression_id): Likewise.
8409         (init_pre): Zero name_to_id.
8410         (fini_pre): Free it.
8412 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
8414         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
8416 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
8418         PR target/42542
8419         * config/i386/sse.md (smaxv2di3): New.
8420         (umaxv2di3): Likewise.
8421         (sminv2di3): Likewise.
8422         (uminv2di3): Likewise.
8424 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
8426         PR target/42564
8427         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
8428         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
8429         (legitimize_tls_address): Likewise.
8430         (sparc_tls_referenced_p): Likewise.
8431         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
8432         and adjust calls to legitimize_pic_address.
8433         (legitimate_constant_p) Use sparc_tls_referenced_p.
8434         (legitimate_pic_operand_p): Likewise.
8435         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
8436         (sparc_tls_symbol_ref_1): Delete.
8437         (sparc_tls_referenced_p): Make static, recognize specific patterns.
8438         (legitimize_tls_address): Make static, handle CONST patterns.
8439         (legitimize_pic_address): Make static, remove unused parameter and
8440         adjust recursive calls.
8441         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
8442         and adjust call to legitimize_pic_address.
8443         (sparc_output_mi_thunk): Likewise.
8445 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
8446             H.J. Lu  <hongjiu.lu@intel.com>
8448         PR target/42542
8449         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
8450         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
8451         operands to make them signed.
8453         Revert:
8454         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8456         PR target/42542
8457         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8458         GTU to GT for V4SI and V2DI.
8460         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8461         (umin<mode>3): Removed.
8462         (uminv8hi3): New.
8463         (uminv4si3): Likewise.
8465 2010-01-05  Martin Jambor  <mjambor@suse.cz>
8467         PR tree-optimization/42462
8468         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
8469         current_function_decl to helper functions and macros.
8471 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8473         PR bootstrap/41771
8474         * flags.h: Don't include real.h.
8475         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
8476         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
8477         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
8478         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
8479         * dominance.c: Update copyright.
8480         * gimple.c (walk_gimple_op): Remove inline.
8481         * tree-ssa-reassoc.c: Include real.h.
8482         * Makefile.in (FLAGS_H): Remove $(REAL_H).
8483         (tree-ssa-reassoc.o): Depend on $(REAL_H).
8485 2010-01-05  Nick Clifton  <nickc@redhat.com>
8487         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
8488         register to push into the stack frame when the accumulator has to
8489         be saved during interrupts.
8491 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
8493         * doc/invoke.texi: Remove the documentation about option
8494         -Wunreachable-code.
8495         * common.opt (Wunreachable-code):  Preserved for backward
8496         compatibility.
8497         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
8498         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
8499         the backward compatibility flag section.
8501 2010-01-05  Richard Guenther  <rguenther@suse.de>
8503         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
8505 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
8507         PR other/42611
8508         * cfgexpand.c (expand_one_var): Diagnose too large variables.
8510         PR tree-optimization/42508
8511         * tree-sra.c (convert_callers): Check for recursive call
8512         by comparing cgraph nodes instead of decls.
8513         (modify_function): Call ipa_modify_formal_parameters also
8514         on all same_body aliases.
8516         * cgraphunit.c (cgraph_materialize_all_clones): Compare
8517         cgraph nodes when checking for same_body aliases.
8519 2010-01-05  Richard Guenther  <rguenther@suse.de>
8521         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
8522         allocation and lookup.
8523         (get_or_alloc_expr_for_constant): Likewise.
8524         (phi_translate): Sink allocation.
8526 2010-01-04  Richard Guenther  <rguenther@suse.de>
8528         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
8529         a new entry only if needed.
8530         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
8531         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
8532         hashtable lookup.
8533         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
8534         the result array.
8535         (phi_translate): Handle CONSTANTs early.
8537 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8539         PR tree-optimization/42398
8540         * tree-sra.c (struct access): Removed flag grp_different_types.
8541         (dump_access): Do not dump the removed flag.
8542         (sort_and_splice_var_accesses): Do not set the removed flag.
8543         (sra_modify_expr): Check for type compatibility directly.
8545 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8547         PR tree-optimization/42366
8548         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
8549         edges with variable number of parameters.
8550         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
8551         flag instead of asserting it.
8552         (ipa_read_node_info): Read uses_analysis_done flag.
8554 2010-01-04  Richard Guenther  <rguenther@suse.de>
8556         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
8557         iterative_hash_* as intended.
8558         (vn_reference_compute_hash): Likewise.  Simplify hashing
8559         SSA names.
8560         (vn_reference_lookup_2): Likewise.
8561         (vn_nary_op_compute_hash): Likewise.
8562         (vn_phi_compute_hash): Likewise.
8563         (expressions_equal_p): Remove strange code.
8564         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
8565         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
8566         (bitmap_insert_into_set_1): Take value-id as parameter.
8567         (add_to_value): Pass it.
8568         (bitmap_insert_into_set): Likewise.
8569         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
8571 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
8573         PR driver/42442
8574         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
8575         (do_self_spec): For switches with SWITCH_IGNORE set set also
8576         SWITCH_IGNORE_PERMANENTLY.
8577         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
8578         of SWITCH_IGNORE.
8580 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
8582         * lto-streamer-out.c (output_unreferenced_globals): Output the full
8583         tree of an unreferenced global var.
8585 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8587         PR target/42542
8588         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8589         GTU to GT for V4SI and V2DI.
8591         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8592         (umin<mode>3): Removed.
8593         (uminv8hi3): New.
8594         (uminv4si3): Likewise.
8596 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8598         PR lto/42581
8599         * collect2.c (main): Turn on trace in collect2 if -v is passed
8600         to gcc with LTO.
8602 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
8604         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
8605         description of expression operand.
8607 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
8609         * configure.ac: Add install-html to target_list for Make-hooks.
8610         * configure: Regenerate.
8611         * fortran/Make-lang.in (F95_HTMLFILES): New.
8612         (fortran.html): Use it.
8613         (fortran.install-html): New.
8614         * Makefile.in (install-html): Add lang.install-html.
8615         * java/Make-lang.in (JAVA_HTMLFILES): New.
8616         (java.html): Use it.
8617         (java.install-html): New.
8618         * objc/Make-lang.in (objc.install-html): New.
8619         * objcp/Make-lang.in (obj-c++.install-html): New.
8620         * cp/Make-lang.in (c++.install-html): New.
8621         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
8622         * lto/Make-lang.in (lto.install-html): New.
8624 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8626         PR lto/42520
8627         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
8629 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8631         PR rtl-optimization/41862
8632         * store-motion.c (store_killed_in_insn, compute_store_table,
8633         remove_reachable_equiv_notes, replace_store_insn,
8634         build_store_vectors): Ignore all DEBUG_INSNs.
8636 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8638         PR lto/41564
8639         * common.opt: Add dumpdir.
8641         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
8642         isn't specified.
8643         (option_map): Add --dumpdir.
8645         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
8647         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
8649         * opts.c (decode_options): Try dump_dir_name first if
8650         dump_base_name isn't an absolute path.
8651         (common_handle_option): Handle OPT_dumpdir.
8653         * toplev.c (dump_dir_name): New.
8654         (print_switch_values): Also ignore -dumpdir.
8656         * toplev.h (dump_dir_name): New.
8658 2010-01-03  Richard Guenther  <rguenther@suse.de>
8660         PR tree-optimization/42589
8661         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
8662         double-word expansion of bswap32.
8664 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8666         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
8667         with BLOCK_FOR_INSN.
8668         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
8669         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
8670         noce_process_if_block): Likewise.
8671         * gcse.c (compute_local_properties, insert_expr_in_table,
8672         insert_set_in_table, canon_list_insert, find_avail_set,
8673         pre_insert_copy_insn): Likewise.
8675         * basic-block.h (BLOCK_NUM): Move from here...
8676         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
8678 2010-01-03  Richard Guenther  <rguenther@suse.de>
8680         PR tree-optimization/42438
8681         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
8682         contains_may_not_return_call flag.
8683         (BB_MAY_NOTRETURN): New.
8684         (valid_in_sets): Trapping nary operations are not valid
8685         in blocks that may not return.
8686         (insert_into_preds_of_block): Remove check for trapping expressions.
8687         (compute_avail): Compute also BB_MAY_NOTRETURN.
8689 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
8691         * doc/invoke.texi: Add 2010 to copyright years.
8693 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
8695         * config/sparc/sparc.c: Fix formatting nits.
8697 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
8698             Alexander Monakov  <amonakov@ispras.ru>
8700         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
8702 2010-01-02  Richard Guenther  <rguenther@suse.de>
8704         PR middle-end/42577
8705         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
8706         (simplify_switch_using_ranges): Mark to be removed edges
8707         as non-executable.
8709 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8711         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
8713         * collect2.c (scan_libraries): Add missing argument in call to
8714         scan_prog_file.
8716 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
8718         PR target/42448
8719         * config/alpha/predicates.md (aligned_memory_operand): Return false
8720         for CQImode.
8721         (unaligned_memory_operand): Return true for CQImode.
8722         * config/alpha/alpha.c (get_aligned_mem): Assert that location
8723         doesn not cross aligned SImode word boundary.
8725 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
8727         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
8728         Remove.
8729         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
8730         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
8732 2010-01-02  Richard Guenther  <rguenther@suse.de>
8734         PR lto/41597
8735         * toplev.c (compile_file): Emit LTO marker properly.  Change
8736         it to __gnu_lto_v1.
8737         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
8739 2010-01-01  Richard Guenther  <rguenther@suse.de>
8741         PR debug/42455
8742         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
8744 2010-01-01  Richard Guenther  <rguenther@suse.de>
8746         PR c/42570
8747         * c-decl.c (grokdeclarator): For zero-size arrays force
8748         structural equality checks as layout_type does.
8750 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8752         * builtins.c: Update copyright to 2010.
8754 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8756         PR lto/42531
8757         * lto-streamer-out.c (produce_asm): Revert the last change.
8758         (copy_function): Likewise.
8760         * lto-streamer.c (lto_get_section_name): Skip any leading
8761         asterisk in name.
8763 2010-01-01  Richard Guenther  <rguenther@suse.de>
8765         PR middle-end/42559
8766         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
8767         for LABEL_DECLs.
8770 Copyright (C) 2010 Free Software Foundation, Inc.
8772 Copying and distribution of this file, with or without modification,
8773 are permitted in any medium without royalty provided the copyright
8774 notice and this notice are preserved.