dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-10-01  Richard Guenther  <rguenther@suse.de>
2
3         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
4         (gen_decl_die): Likewise.
5
6 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7
8         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9         to the function code for SPU MD builtins.
10         (spu_expand_builtin): Update.
11         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
12
13 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14
15         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
16         sjlj_except_unwind_info.
17
18 2010-10-01  Tristan Gingold  <gingold@adacore.com>
19
20         * configure.ac: Define the nop insn for avr*-*-*
21         * configure: Regenerate.
22
23 2010-10-01  Alan Modra  <amodra@gmail.com>
24
25         PR target/45807
26         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
27         extend toc_restore_insn.
28
29 2010-09-30  Richard Guenther  <rguenther@suse.de>
30
31         PR tree-optimization/43959
32         * function.c (gimplify_parameters): Use create_tmp_reg instead of
33         create_tmp_var.
34
35 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
36
37         * config/sh/sh.c (sh_expand_prologue): Set
38         current_function_static_stack_size.
39
40 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41
42         * configure.ac: Check for Solaris 8 ld with .hidden support.
43         * configure: Regenerate.
44
45 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
46
47         PR middle-end/45758
48         * graphite.c (graphite_initialize): Call scev_reset.
49
50 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
51
52         * sese.h (scev_analyzable_p): Return false for real or floating
53         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
54
55 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
56
57         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
58         and ps.
59         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
60         domain.
61         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
62         Do not allocate ub_expr, it is passed in initialized.
63
64 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
65
66         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
67         (build_cloog_prog): Dump CLooG input file when
68         flag_graphite_dump_cloog is set.  This is disabled on trunk.
69         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
70
71 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
72
73         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
74         verify_dominators for CDI_POST_DOMINATORS.
75         * sese.h: Remove comment about CDI_POST_DOMINATORS.
76         (recompute_all_dominators): Remove call to free_dominance_info
77         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
78         for CDI_POST_DOMINATORS.
79
80 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
81
82         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
83         over pbb_dim_iter_domain.
84
85 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
86
87         * graphite-flattening.c: Fix comments.
88
89 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
90
91         * Makefile.in (OBJS-common): Add graphite-flattening.o.
92         (graphite-flattening.o): New rule.
93         * common.opt (floop-flatten): New flag.
94         * doc/invoke.texi (-floop-flatten): Documented.
95         * graphite-flattening.c: New.
96         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
97         * graphite-poly.h (flatten_all_loops): Declared.
98         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
99         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
100         is set, also set flag_graphite.
101
102 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
103
104         * graphite-poly.c (cloog_checksum): New.
105         * graphite-poly.h (cloog_checksum): Declared.
106
107 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
108
109         * graphite-poly.c (pbb_number_of_iterations): Removed.
110         (pbb_number_of_iterations_at_time): Correctly compute the number
111         of iterations in the transformed loop.
112         * graphite-poly.h (pbb_number_of_iterations): Removed.
113
114 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
115
116         * graphite-poly.h (lst_update_scattering_seq): Removed.
117         (lst_update_scattering): Correctly handle outermost loop dewey
118         renumbering.
119
120 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
121
122         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
123         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
124         * graphite-poly.h (lst_niter_for_loop): New.
125
126 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
127
128         * graphite-poly.c (apply_poly_transforms): Do not abort when the
129         transform read from disk is not legal.  Call fatal_error instead.
130
131 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
132
133         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
134         (print_scop_header): Removed.  Inlined in the only call place...
135         (print_scop): ... here.
136
137 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
138
139         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
140
141 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
142
143         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
144
145 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
146
147         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
148         (dot_deps_stmt): Same.
149         * graphite-poly.c (dot_lst): Same.
150
151 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
152
153         * graphite-blocking.c (scop_do_strip_mine): Do not call
154         graphite_legal_transform.
155         (scop_do_block): Same.
156
157 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
158
159         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
160         description.
161
162 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
163
164         * tree-scalar-evolution.c (instantiate_array_ref): New.
165         (instantiate_scev_r): Also handle ARRAY_REFs.
166
167 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
168
169         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
170         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
171         RESULT_DECL, and FIELD_DECL.  Return false for an
172         SSA_NAME_IS_DEFAULT_DEF.
173         (compute_scalar_evolution_in_loop): Do not further analyze the
174         scalar evolution when no_evolution_in_loop_p returns true.
175
176 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
177
178         * tree-chrec.h (evolution_function_is_affine_p): Do not check
179         whether CHREC_LEFT is invariant.  A function is affine when
180         CHREC_RIGHT is invariant.
181
182 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
183
184         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
185         is_gimple_reg.
186         (rewrite_degenerate_phi): Same.
187         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
188
189 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
190
191         * graphite-scop-detection.c (graphite_can_represent_scev,
192         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
193         graphite_can_represent_loop): Remove outermost_loop.
194
195 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
196
197         PR middle-end/45229
198         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
199         handle GIMPLE_CALLs with no LHS.
200
201 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
202
203         * graphite-poly.c (init_graphite_out_file): New.
204         (init_graphite_in_file): New.
205         (apply_poly_transforms): Updated to enable reading and writing of
206         multiple scop files.
207
208 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
209
210         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
211         redundant checks.
212
213 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
214
215         * graphite-clast-to-gimple.c (precision_for_value): Adjust
216         computation of precision by 1.
217
218 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
219
220         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
221         (openscop_read_polyhedron_matrix): New.
222         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
223         (openscop_read_N_int): Same.
224         * graphite-poly.c (openscop_read_N_int): New.
225         (openscop_read_one_int): New.
226         (openscop_read_N_string): New.
227         (openscop_read_one_string): New.
228         (openscop_read_powerset_matrix): New.
229         (graphite_read_transforms): Remove.
230         (graphite_read_scatt): New.
231         (graphite_read_scop_file): New.
232         (apply_poly_transforms): Updated to call graphite_read_scop_file.
233
234 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
235
236         * graphite-poly.c: Change include order.
237
238 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
239
240         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
241         (cloog_matrix_nrows): New.
242
243 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
244
245         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
246         from matrix lines.
247         * graphite-poly.c (openscop_print_scattering_function_1): Same.
248         (print_scattering_function_1): Same.
249         (openscop_print_pbb_domain): Same.
250         (openscop_print_scop_context): Same.
251         (print_scop_context): Same.
252
253 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
254
255         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
256         (openscop_print_pdr_polyhedron): Print pph.
257
258 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
259
260         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
261         priority signed types.
262
263 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
264
265         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
266         to lang_hooks.types.type_for_size.  Call build_nonstandard_integer_type.
267
268 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
269
270         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
271         (openscop_print_polyhedron_matrix): New.
272         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
273         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
274         (openscop_print_pdr_powerset): New.
275         (openscop_print_powerset_matrix): New.
276         (openscop_print_scattering_function_1): New.
277         (print_scattering_function): Add support for scattering names and
278         OpenScop format.
279         (graphite_write_transforms): Remove.
280         (print_pdr_access_layout): Updated to support OpenScop format.
281         (print_pdr): Same.
282         (openscop_print_pbb_domain): New.
283         (print_pbb_body): Added a parameter to allow indicating that pbb_body is
284         not provided.
285         (print_pbb): Updated to call the new print_pbb_body.
286         (openscop_print_scop_context): New.
287         (print_scop_header): New.
288         (print_scop): Updated to call print_scop_header.
289         * graphite-poly.h: Document OpenScop format.
290
291 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
292
293         * config/cris/m32c.c (cris_memory_move_cost): New.
294         (cris_register_move_cost): Make static. Change arguments type from
295         enum reg_class to reg_class_t.
296         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
297         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
298         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
299
300 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
301
302         PR target/45843
303         * config/i386/i386.c (ix86_gimplify_va_arg): Use
304         INTVAL (XEXP (slot, 1)) as prev_size.
305
306 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
307
308         PR target/45837
309         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
310         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
311         defined.
312         * config/rs6000/option-defaults.h (toplevel): Change #if
313         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
314         global option changes.
315
316 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
317
318         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
319
320         PR tree-optimization/31261
321         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
322         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
323
324 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
325
326         PR bootstrap/45796
327         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
328         special-casing for generators and turn into ...
329         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
330         rule, for better error messages in case of toplevel dependency
331         errors.
332         (genprog): Add hooks, rename to ...
333         (genprogerr): ... this, and let genprog also contain check,
334         checksum, condmd.
335         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
336         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
337         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
338
339 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
340             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
341
342         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
343         for GMP, MPFR and MPC.
344
345 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
346
347         * config/sparc/sparc.opt (mimpure-text): Move ...
348         * config/sol2.opt: ... here.
349         Correct description.
350         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
351         * doc/invoke.texi (Option Summary, SPARC Options): Move
352         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
353         (Option Summary, Solaris 2 Options): ... here.
354         (Submodel Options, Solaris 2 Options): New menu entry.
355         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
356         (Solaris 2 Options): ... here.
357
358 2010-09-30  Michael Eager  <eager@eagercon.com>
359
360         * extend.texi (interrupt_handler): Add MicroBlaze to list.
361         (save_volatiles): Describe option for MicroBlaze.
362         * invoke.texi: Add MicroBlaze Options.
363         * contrib.texi: Add acknowledgment. 
364         * md.texi: Add MicroBlaze d and z constraints.
365         * install.texi: Add microblaze-*-elf.
366         * configure.ac: Add microblaze-*-* to target list.
367         * configure: Regenerate.
368         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
369         * config/microblaze/microblaze-protos.h: New.
370         * config/microblaze/crti.s: New.
371         * config/microblaze/predicates.md: New.
372         * config/microblaze/linux.h: New.
373         * config/microblaze/microblaze.md: New.
374         * config/microblaze/constraints.md: New.
375         * config/microblaze/crtn.s: New.
376         * config/microblaze/microblaze.opt: New.
377         * config/microblaze/microblaze-c.c: New.
378         * config/microblaze/t-microblaze: New.
379         * config/microblaze/microblaze.c: New.
380         * config/microblaze/microblaze.h: New.
381
382 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
383
384         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
385         parse @optional/@required and set the flags as appropriate.
386
387 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
388
389         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
390
391 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
392
393         * opt-functions.awk (static_var): Update comment.
394         (var_ref): Return offsetof expression or -1, not variable address.
395         * optc-gen.awk: Generate structure field initializers instead of
396         static variables.  Expect -1 for missing variables instead of null
397         pointer.  Add gcc_options parameters to generated functions.
398         * opth-gen.awk: Generate structure fields for static variables.
399         Add gcc_options parameters to generated functions.
400         * common.opt (optimize, optimize_size): Add variables.
401         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
402         &global_options to cl_target_option_restore.
403         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
404         &global_options to cl_optimization_restore, cl_target_option_save
405         and cl_target_option_restore.
406         (ix86_set_current_function): Pass &global_options to
407         cl_target_option_restore.
408         * config/pdp11/pdp11.h (optimize): Remove.
409         * config/rs6000/rs6000.h (optimize): Remove.
410         * config/sh/sh.h (optimize): Remove.
411         * config/xtensa/xtensa.h (optimize): Remove.
412         * coretypes.h (struct gcc_options): Declare.
413         * diagnostic.c (diagnostic_initialize): Initialize
414         context->option_state.
415         (diagnostic_report_diagnostic): Pass option_state to
416         option_enabled hook.
417         * diagnostic.h (diagnostic_context.option_enabled): Add void *
418         parameter.
419         (diagnostic_context.option_state): New field.
420         * final.c (final_start_function, final, final_scan_insn): Rename
421         optimize parameter to optimize_p.
422         * flags.h (optimize, optimize_size): Remove.
423         * function.c (invoke_set_current_function_hook): Pass
424         &global_options to cl_optimization_restore.
425         * gcc.c (driver_handle_option): Take gcc_options parameter.
426         Assert that it is &global_options.
427         (process_command): Pass &global_options to read_cmdline_option.
428         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
429         option_enabled.
430         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
431         &global_options to set_option.
432         * opts-common.c (handle_option, handle_generated_option,
433         read_cmdline_option, set_option): Take explicit gcc_options
434         parameters.  Use option_flag_var.
435         (option_flag_var): New.
436         * opts.c (common_handle_option, lang_handle_option,
437         target_handle_option): Take gcc_options parameter.  Assert that it
438         is &global_options.
439         (read_cmdline_options): Pass &global_options to
440         read_cmdline_option.
441         (print_filtered_help): Use option_flag_var.  Pass &global_options
442         to option_enabled.
443         (common_handle_option): Use option_flag_var.
444         (option_enabled): Take opts parameter.  Use option_flag_var.
445         (get_option_state): Take gcc_options parameter.  Use
446         option_flag_var.  Pass gcc_options parameter to option_enabled.
447         (enable_warning_as_error): Pass &global_options to
448         handle_generated_option.
449         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
450         (cl_option_handler_func.handler): Take gcc_options parameter.
451         (option_enabled, get_option_state, set_option, handle_option,
452         handle_generated_option, read_cmdline_option): Take gcc_options
453         parameters.
454         * toplev.c (optimize, optimize_size): Remove.
455         (print_switch_values): Pass &global_options to option_enabled.
456         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
457         to get_option_state.
458         (general_init): Initialize global_dc->option_state.
459         * tree.c (build_optimization_node): Pass &global_options to
460         cl_optimization_save.
461         (build_target_option_node): Pass &global_options to
462         cl_target_option_save.
463
464 2010-09-30  Martin Jambor  <mjambor@suse.cz>
465
466         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
467         zero sized bit-fields.
468
469 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
470
471         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
472         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
473         (c_parser_external_declaration): Use RID_AT_CLASS
474         instead of RID_CLASS.
475         (c_parser_objc_class_declaration): Same change.
476         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
477         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
478         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
479         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
480         and RID_AT_PUBLIC instead of RID_PUBLIC.
481         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
482         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
483         
484 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
485
486         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
487         Add links to current providers of packages for Solaris and IRIX.
488
489 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
490
491         Merge from 'apple/trunk' branch on FSF servers.
492         * c-parser.c: Applied change originally in c-parse.in.
493         
494         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
495
496         Radar 4281748
497         * c-decl.c (start_decl): Check for redeclaration of class name.
498         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
499
500 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
501
502         * config/ia64/ia64.c (ia64_builtin_decl): New.
503         (TARGET_BUILTIN_DECL): Define.
504         (ia64_builtins): New.
505         (ia64_init_builtins): Save decls in ia64_builtins.
506
507 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
508
509         PR target/40457
510         * postreload.c (move2add_use_add2_insn): Use full_costs for
511         comparison.
512         (move2add_use_add3_insn): Likewise.
513         (reload_cse_move2add): Likewise.
514         * rtlanal.c (get_full_rtx_cost): New function.
515         * rtl.h (struct full_rtx_costs): New.
516         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
517         costs_add_n_insns): New inline functions.
518         (get_full_rtx_cost): Declare.
519
520         PR c/45054
521         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
522         invariants.  Check for reg_equiv_invariant.
523         (reload): Assert that spilled_pseudos is empty when returning.
524
525 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
526
527         * config/i386/mingw32.h (TARGET_64BIT): replaced by
528         TARGET_64BIT_DEFAULT in #if check.
529
530 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
531
532         * varasm.c (assemble_alias): Add error message for
533         unsupported ifunc.
534
535 2010-09-29  Mike Stump  <mikestump@comcast.net>
536
537         * config/darwin.h (flag_mkernel): Remove.
538         (flag_apple_kext): Likewise.
539
540 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
541             Jack Howarth <howarth@bromo.med.uc.edu>
542
543         * config/darwin.opt (undefined): Add.
544
545 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
546
547         * configure.ac: Add --enable-indirect-function option.
548         * config.gcc: Add default_gnu_indirect_function.
549         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
550         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
551         * varasm.c (do_assemble_alias): Adjust for macto name change.
552         * configure: Rebuilt.
553         * doc/install.texi: Document --enable-indirect-function.
554
555 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
556
557         * doc/options.texi (Variable, Var, Init): Update documentation
558         without reference to VarExists.
559         (VarExists): Remove.
560         * common.opt, config/i386/i386.opt, config/linux.opt,
561         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
562         Don't use VarExists.
563
564 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
565
566         * optc-gen.awk: Generate global_options initializer instead of
567         individual variables.  Add x_ prefix to names of structure
568         members.
569         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
570         names of structure members.
571         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
572         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
573         * doc/tm.texi: Regenerate.
574         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
575         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
576         * c-parser.c (disable_extension_diagnostics,
577         restore_extension_diagnostics): Update names of cpp_options
578         members.
579         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
580         * common.opt (fcompare-debug-second): Don't use Var.
581         * config/alpha/alpha.h (target_flags): Remove.
582         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
583         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
584         * config/bfin/bfin.h (target_flags): Remove.
585         * config/cris/cris.h (target_flags): Remove.
586         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
587         cl_target_option members.
588         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
589         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
590         ix86_can_inline_p): Update names of cl_target_option members.
591         * config/i386/i386.h (ix86_isa_flags): Remove.
592         * config/lm32/lm32.h (target_flags): Remove.
593         * config/mcore/mcore.h (mcore_stack_increment): Remove.
594         * config/mcore/mcore.md (addsi3): Remove extern declaration of
595         flag_omit_frame_pointer.
596         * config/mep/mep.h (target_flags): Remove.
597         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
598         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
599         * config/mmix/mmix.h (target_flags): Remove.
600         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
601         flag_expensive_optimizations): Remove.
602         * config/s390/s390.h (flag_pic): Remove.
603         * config/score/score-conv.h (target_flags): Remove.
604         * config/sh/sh.h (sh_fixed_range_str): Remove.
605         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
606         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
607         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
608         * diagnostic.c (diagnostic_initialize): Update names of
609         diagnostic_context members.
610         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
611         warn_system_headers.
612         (diagnostic_report_warnings_p): Update for new names.
613         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
614         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
615         HARD_FRAME_POINTER_IS_ARG_POINTER.
616         * flags.h (flag_compare_debug): Declare.
617         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
618         * opts.c (flag_compare_debug): Define.
619         (common_handle_option): Update names of diagnostic_context
620         members.  Handle -fcompare-debug-second.
621         (fast_math_flags_struct_set_p): Update names of cl_optimization
622         members.
623         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
624         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
625         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
626         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
627         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
628         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
629         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
630         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
631         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
632
633 2010-09-29  Hariharan Sandanagobalane <hariharan@picochip.com>
634
635         * config/picochip/picochip.c (picochip_output_internal_label):
636           This function can now be called for debug CFI labels, which can come in
637           the middle of a vliw instruction. Postpone until end of vliw.
638
639 2010-09-29  Richard Guenther  <rguenther@suse.de>
640
641         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
642         (DECL_FILE_SCOPE_P): Use it.
643         (TYPE_FILE_SCOPE_P): New macro.
644
645 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
646
647         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
648         a CPP_NAME which is a reserved word, clearly separate cases for
649         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
650
651 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
652
653         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
654         token->value with the canonical spelling.  Do exactly like C and
655         C++ and leave it as it is.
656
657 2010-09-28  Richard Henderson  <rth@redhat.com>
658
659         * config/alpha/alpha.c (alpha_builtins): New.
660         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
661         (alpha_builtin_function): New.
662         (alpha_add_builtins, alpha_init_builtins): Use it.
663
664 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
665
666         * doc/standards.texi (Standards): Expanded the section on
667         Objective-C and Objective-C++.
668
669 2010-09-28  DJ Delorie  <dj@redhat.com>
670
671         PR target/45800
672         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
673         volatile MEMs.
674
675 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
676
677         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
678         attributes on methods.
679          (c_parser_objc_method_definition): Handle attributes.
680         (c_parser_objc_methodproto): Likewise.
681         (c_parser_objc_maybe_method_attributes): New.
682         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
683         missing definition, similar to that in ObjC++.
684
685 2010-09-28  Richard Henderson  <rth@redhat.com>
686
687         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
688         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
689         (CONFIG_SJLJ_EXCEPTIONS): Remove.
690         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
691         (STACK_CHECK_PROTECT): Likewise.
692         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
693         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
694         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
695         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
696         (dwarf2out_assembly_start): Likewise.
697         * except.c (init_eh): Use targetm.except_unwind_info.
698         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
699         (output_one_function_exception_table): Likewise.
700         * final.c: Unconditionally include dwarf2out.h.
701         (final_start_function): Unconditionally call dwarf2out routines.
702         (final_end_function, final_scan_insn): Likewise.
703         * function.c (expand_function_end): Use targetm.except_unwind_info.
704         * opts.c (decode_options): Use targetm.except_unwind_info.
705         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
706         * target.def (debug_unwind_info, except_unwind_info): New.
707         * target.h (enum unwind_info_type): New.
708         * targhooks.c (default_debug_unwind_info): New.
709         (default_except_unwind_info): New.
710         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
711         * targhooks.h: Declare them.
712         * tree-tailcall.c: Include "target.h"
713         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
714         * Makefile.in (tree-tailcall.o): Update.
715         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
716         (lhd_gcc_personality): Likewise.
717
718         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
719         (TARGET_EXCEPT_UNWIND_INFO): New.
720         (DWARF2_UNWIND_INFO): Update.
721         (TARGET_DEBUG_UNWIND_INFO): New.
722         * doc/tm.texi: Rebuild.
723
724         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
725         targetm.except_unwind_info.
726
727         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
728         (arm_except_unwind_info): New.
729         (arm_compute_func_type): Use it.
730         (arm_expand_prologue, thumb_pushpop): Likewise.
731         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
732         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
733         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
734         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
735         (DWARF2_UNWIND_INFO): Remove.
736         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
737         (ARM_EABI_UNWIND_TABLES): Remove.
738
739         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
740         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
741         (ia64_except_unwind_info): New.
742         (ia64_output_function_prologue): Use it.
743         (ia64_add_bundle_selector_before): Likewise.
744         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
745         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
746         (TARGET_UNWIND_INFO): Remove.
747
748         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
749         
750 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
751
752         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
753         (c_parser_objc_protocol_definition): Likewise.
754         (c_parser_external_declaration): Provide dummy attribute arguments.
755         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
756         (c_parser_objc_class_definition): Handle attributes.
757         (c_parser_objc_protocol_definition): Likewise.
758
759 2010-09-28  Tobias Burnus  <burnus@net-b.de>
760
761         PR fortran/40569
762         PR fortran/40568
763         * toplev.h (save_decoded_options, save_decoded_options_count):
764         New global variables.
765         * toplev.c (save_decoded_options, save_decoded_options_count):
766         export variables.
767
768 2010-09-28  Ian Lance Taylor  <iant@google.com>
769
770         * config/i386/i386.c (ix86_supports_split_stack): Test
771         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than
772         dwarf2out_do_cfi_asm.
773
774 2010-09-28  Ian Lance Taylor  <iant@google.com>
775
776         PR target/45815
777         * opts.c (decode_options): Don't test whether the target supports
778         split stack if flag_split_stack == 0.
779
780 2010-09-28  Jan Hubicka  <jh@suse.cz>
781
782         * builtin-attrs.def (ATTR_LEAF): New attribute.
783         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
784         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
785         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
786         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
787         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
788         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
789         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
790         * sync-builtins.def: Annotate all builtins by leaf.
791         * omp-builtins.def: Annotate all builtins by leaf.
792         * builtins.def: Annotate relevant builtins with leaf attribute.
793         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
794         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
795         leaf.
796
797 2010-09-28  Jan Hubicka  <jh@suse.cz>
798
799         * tree-ssa-ccp.c (fold_ctor_reference): New function.
800         (fold_const_aggregate_ref): Use it.
801         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
802         into external static.
803
804 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
805
806         PR target/44452
807         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
808         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
809         (ix86_solaris_return_in_memory): Remove.
810         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
811         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
812         (TARGET_SUBTARGET_DEFAULT): Redefine.
813         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
814         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
815         (TARGET_SUBTARGET_DEFAULT): Redefine.
816         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
817         -mvect8-ret-in-mem.
818         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
819
820 2010-09-29  Alan Modra  <amodra@gmail.com>
821
822         PR target/45807
823         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
824         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
825         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
826         Delete.
827         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
828         (rs6000_emit_prologue): Don't just create frame save info for r2,
829         actually save r2.
830
831 2010-09-28  Richard Henderson  <rth@redhat.com>
832
833         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
834         when 8 bytes are requested.
835
836 2010-09-28  Tristan Gingold  <gingold@adacore.com>
837
838         * config/avr/avr.c (expand_prologue): Set
839         current_function_static_stack_size.
840
841 2010-09-28  Tristan Gingold  <gingold@adacore.com>
842
843         * config/alpha/alpha.md: Change the initial condition of the
844         probing loop.
845
846 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
847
848         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
849         Split from *avx_<maxmin:code><mode>3.
850         (*avx_<smaxmin:code><mode>3): Ditto.
851         * config/i386/i386.md (maxmin): Remove code iterator.
852
853 2010-09-27  Ian Lance Taylor  <iant@google.com>
854
855         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
856         requires assembler support for CFI directives.
857
858 2010-09-27  Richard Henderson  <rth@redhat.com>
859
860         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
861
862 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
863
864         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
865         that AFTER is not in the range FROM..TO, inclusive.
866
867 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
868             Bernd Schmidt  <bernds@codesourcery.com>
869
870         PR rtl-optimization/45792
871         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
872         If not all insns are to be merged, for each edge, stash the
873         next candidate after the to-be-merged insns before doing the
874         merge, and use them for the retry at the new insertion point.
875         Handle CC0 targets when retrying.
876
877 2010-09-27  Ian Lance Taylor  <iant@google.com>
878
879         * common.opt (fsplit-stack): New option.
880         * opts.c (decode_options): Set flag_split_stack to final value.
881         * target.def (supports_split_stack): New hook.
882         * gcc.c (STACK_SPLIT_SPEC): Define.
883         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
884         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
885         (Code Gen Options): Document -fsplit-stack.
886         * doc/extend.texi (Function Attributes): Mention no_split_stack.
887         (Function Attributes): Document no_split_stack.
888         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
889         TARGET_SUPPORTS_SPLIT_STACK.
890         * doc/tm.texi: Rebuild.
891         * function.c (thread_prologue_and_epilogue_insns): If
892         flag_split_stack, add split stack prologue.
893         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
894         * varasm.c (saw_no_split_stack): New static variable.
895         (assemble_start_function): Set saw_no_split_stack if the function
896         has the no_split_stack attribute.
897         (file_end_indicate_split_stack): New function.
898         * output.h (file_end_indicate_split_stack): Declare.
899         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
900         and function.
901         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
902         routines.
903         * config/i386/i386.c (ix86_option_override_internal): Don't set
904         expand_builtin_va_start to NULL if -fsplit-stack.
905         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
906         -fsplit-stack.
907         (ix86_va_start): If -fsplit-stack, get overflow pointer from
908         scratch register set by prologue.
909         (ix86_code_end): If -fsplit-stack, call
910         file_end_indicate_split_stack.
911         (ix86_supports_split_stack): New static function.
912         (SPLIT_STACK_AVAILABLE): Define.
913         (split_stack_prologue_scratch_regno): New static function.
914         (split_stack_fn): New static variable.
915         (ix86_expand_split_stack_prologue): New function.
916         (ix86_live_on_entry): New static function.
917         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
918         (output_pic_addr_const): Likewise.
919         (i386_asm_output_addr_const_extra): Likewise.
920         (ix86_expand_call): Change return type to rtx.  Return the new
921         call instruction.
922         (TARGET_SUPPORTS_SPLIT_STACK): Define.
923         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
924         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
925         (split_stack_prologue, split_stack_return): New insns.
926         (split_stack_space_check): New insn.
927         * config/i386/i386.h (struct machine_function): Add
928         split_stack_varargs_pointer field.
929         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
930         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
931         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
932         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
933         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
934         Declare.
935         (ix86_expand_call): Update declaration.
936
937 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
938
939         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
940         code.  Added byref, which was missing in the list of codes.
941         Explain that enumeration values are encoded as the integer type
942         that the compiler uses to store them.  Explain and make examples
943         of how 'const' interacts with pointers, and the complication of
944         the encoding of 'const char *'.
945         (Legacy type encoding): New subsection, explaining that GCC emits
946         incorrect type encodings for the NeXT runtime for compatibility
947         reasons.
948         (@@encode): New subsection, explaining @encode and particularly
949         that protocol qualifiers are not recognized inside an @encode()
950         expression.
951         (Method signatures): New subsection, explaining how method
952         signatures are encoded.
953
954 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
955
956         Merge from 'apple/trunk' branch on FSF servers.  Removed small
957         change in build_conditional_expr that had been added when fixing
958         PR objc/27377 and which did the same check in a less complete way.
959
960         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
961
962         Radar 4229905
963         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
964         looking for objective-c common pointer types.
965         
966         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
967
968         Radar 4154928
969         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
970         use their ObjC common type.
971
972 2010-09-27  Richard Guenther  <rguenther@suse.de>
973
974         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
975
976 2010-09-27  Jie Zhang  <jie@codesourcery.com>
977
978         * print-tree.c (print_node): Print in-constant-pool.
979
980 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
981
982         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
983         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
984         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
985         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
986
987 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
988
989         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
990         from pro_epilogue_adjust_stack_<mode>_{1,2}.
991         (pro_epilogue_adjust_stack_<mode>_add): Rename from
992         pro_epilogue_adjust_stack_<mode>_3.
993         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
994         renamed pro_epilogue_adjust_stack_{si,di}_add.
995         (ix86_expand_prologue): Use indirect functions.  Update for renamed
996         pro_epilogue_adjust_stack_{si,di}_sub.
997
998 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
999
1000         * config/i386/i386.md (movmsk_df): New insn.
1001         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
1002         sequence for TARGET_SSE_MATH.
1003
1004 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
1005
1006         * config/mips/mips.c (mips_builtin_decls): Declare.
1007         (mips_init_builtins): Store function declarations in
1008         mips_builtin_decls.
1009         (mips_builtin_decl): New function.
1010         (TARGET_BUILTIN_DECL): Define.
1011
1012 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
1013             Richard Henderson  <rth@redhat.com>
1014
1015         * config/i386/cygwin.asm: Include auto-host.h.
1016         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
1017         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
1018         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
1019         alignment code from the 64-bit path.  Use gas local labels.
1020         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
1021         from _di_2.  Remove the useless constant integer argument.
1022         (pro_epilogue_adjust_stack_<mode>_3): New.
1023         (allocate_stack_worker_probe_<mode>): Macroize from
1024         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
1025         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
1026         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
1027         (__chkstk_ms): New function.
1028         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
1029         * gcc/config/i386/t-interix: Likewise.
1030         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
1031         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1032         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
1033         * configure, config.in: Rebuild.
1034
1035 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1036
1037         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
1038         statements because of the return slot optimization.
1039
1040 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
1041
1042         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
1043         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
1044         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1045         (class_likely_spilled_p): Rename to...
1046         (avr_class_likely_spilled_p): ...this. Make static. Change argument
1047         type to reg_class_t.
1048
1049 2010-09-24  Jan Hubicka  <jh@suse.cz>
1050
1051         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
1052         (lto_symtab_resolve_symbols): Set it.
1053         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
1054         store resolution field in cgraph/varpool.
1055         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
1056         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
1057         (cgraph_dump_node): Drop used_from_object_file.
1058         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
1059         (cgraph_function_body_availability): Use decl_replaceable_p.
1060         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
1061         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
1062         cgraph_used_from_object_file_p.
1063         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
1064         cgraph_used_from_object_file_p.
1065         (resolution_used_from_other_file_p): New functoin.
1066         (cgraph_used_from_object_file_p): New predicate.
1067         * cgraph.h: Include plugin-api.h
1068         (struct cgraph_local_info): Remove used_from_object_file.
1069         (struct cgraph_node): Add resolution field.
1070         (struct varpool_node): Likewise; remove used_from_object_file;
1071         reove const_value_known.
1072         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
1073         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
1074         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1075         varpool_used_from_object_file_p): Declare.
1076         (varpool_get_node, varpool_extra_name_alias): Update prototype.
1077         * tree.h (DECL_REPLACEABLE_P): Remove.
1078         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
1079         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
1080         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1081         input_overwrite_node, input_node, input_varpool_node): Stream
1082         resolution.
1083         * expr.c (expand_expr_real_1): Use const_value_known_p
1084         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
1085         const_value_known.
1086         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
1087         (function_and_variable_visibility): Set resolution for local vars
1088         and functions; use varpool_used_from_object_file_p.
1089         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
1090         static functions.
1091         (default_binds_local_p_1): Use resolutoin info.
1092         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
1093         * varpool.c (varpool_get_node): Constify.
1094         (const_value_known_p): Do not use vnode->const_value_known;
1095         use decl_replaceable_p.
1096         (varpool_finalize_decl): Do not set const_value_known.
1097         (cgraph_variable_initializer_availability): Use decl_replaceable_p
1098         (varpool_extra_name_alias): Return new node.
1099         (varpool_used_from_object_file_p): New function.
1100
1101 2010-09-24  Richard Henderson  <rth@redhat.com>
1102
1103         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
1104         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
1105         (do_spill): Use REG_CFA_OFFSET.
1106         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
1107         as appropriate.
1108         (ia64_expand_epilogue): Likewise.
1109         (process_set): Split into ...
1110         (process_cfa_adjust_cfa): this,
1111         (process_cfa_register): this,
1112         (process_cfa_offset): and this new function.
1113         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
1114         instead of REG_FRAME_RELATED_EXPR.
1115
1116 2010-09-24  Olivier Hainque  <hainque@adacore.com>
1117
1118         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
1119
1120 2010-09-24  Jan Hubicka  <jh@suse.cz>
1121
1122         * doc/extend.texi: (attribute leaf): Document.
1123         * tree.c (local_define_builtin): Handle ECF_LEAF.
1124         (build_common_builtin_nodes): Set ECF_LEAF where needed.
1125         * tree.h (ECF_LEAF): New.
1126         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
1127         overwrittable and unavailable functions.
1128         (ipa_init): Put all_module_statics into optimization_summary_obstack.
1129         (copy_global_bitmap): Do not copy all_module_statics.
1130         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
1131         (propagate): Handle overwritable and unavailable leaf functions;
1132         initialize global info for overwritable and unavailable leaf functions;
1133         do not free all module statics.
1134         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
1135         local statics.
1136         * calls.c (flags_from_decl_or_type): Handle leaf.
1137         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
1138         abnormal gotos.
1139
1140 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
1141
1142         * gengtype.c: Reindented.
1143         * gengtype.h: Reindented.
1144         * gengtype-parse.c: Reindented.
1145
1146 2010-09-24  Jan Hubicka  <jh@suse.cz>
1147
1148         PR tree-optimization/45738
1149         PR tree-optimization/45741
1150         * expr.c (string_constant): Allow CONST_DECL too;
1151         check that DECL_INITIAL is set.
1152         * varpool.c (const_value_known_p): Only look into VAR_DECL
1153         and CONST_DECL.
1154
1155 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
1156
1157         * common.opt (undef): New.
1158
1159 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
1160
1161         PR middle-end/45234
1162         * rtl.h (enum global_rtl_index): Add
1163         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
1164         (LAST_VIRTUAL_POINTER_REGISTER): Define.
1165         (virtual_preferred_stack_boundary_rtx,
1166         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
1167         (LAST_VIRTUAL_REGISTER): Increase by one.
1168         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
1169         instead of LAST_VIRTUAL_REGISTER.
1170         * function.c (instantiate_new_reg): Handle
1171         virtual_preferred_stack_boundary_rtx.
1172         * emit-rtl.c (init_virtual_regs): Handle
1173         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1174         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
1175         * explow.c (round_push): If crtl->preferred_stack_boundary
1176         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
1177         virtual_preferred_stack_boundary_rtx alignment instead of
1178         crtl->preferred_stack_boundary alignment.
1179         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
1180         macros.  Never decrease crtl->preferred_stack_boundary,
1181         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
1182         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
1183         stack_pointer_delta in dynamic allocation, even when size
1184         is constant.
1185         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
1186         macro.
1187         * print-rtl.c (print_rtx): Handle
1188         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1189         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
1190         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
1191         * config/frv/frv.c (frv_emit_movsi): Likewise.
1192         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
1193         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
1194         Likewise.
1195
1196         Revert:
1197         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1198
1199         PR middle-end/45234
1200         * calls.c (expand_call): Make sure that all variable sized
1201         adjustments are multiple of preferred stack boundary after
1202         stack alignment.
1203
1204 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
1205             Dominique Dhumieres  <dominiq@lps.ens.fr>
1206
1207         PR bootstrap/45751
1208         * gcc/config/darwin-driver.c (darwin_default_min_version):
1209         Adjust size passed to memcpy in two places.
1210
1211 2010-09-24  Richard Guenther  <rguenther@suse.de>
1212
1213         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
1214         Make sure to not call set_type_context with error_mark_node.
1215         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
1216
1217 2010-09-24  Richard Guenther  <rguenther@suse.de>
1218
1219         * Makefile.in (OBJS-onestep): Remove.
1220         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
1221         (libbackend.a): Remove onestep support.
1222         (libbackend.o): Remove.
1223         * configure.ac (--enable-intermodule): Remove.
1224         * configure: Regenerate.
1225
1226 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
1227
1228         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
1229         reaching the end of a block if it occurs at a DEBUG_INSN.
1230
1231 2010-09-09  Tristan Gingold  <gingold@adacore.com>
1232
1233         PR target/44242
1234         * config/vms/vms-crt0-64.c: Removed.
1235         * config/vms/vms-crt0.c: Removed.
1236         * config/vms/vms-psxcrt0-64.c: Removed.
1237         * config/vms/vms-psxcrt0.c: Removed.
1238         * config/vms/vms-ucrt0.c: New file.
1239         * config/vms/t-vms64: Removed.
1240         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
1241         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
1242         * config.gcc (alpha-dec-vms): Use t-vms.
1243
1244 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1245
1246         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
1247         underfull hbox in DVI output.
1248         (-fobjc-class-cxx-cdtors): Same change.
1249         (-fobjc-exceptions): Tidied up documentation.  Explain what the
1250         option does, but moved the (lenghty) description of the exception
1251         syntax into objc.texi.
1252         (-fobjc-gc): Explain that the option is not useful with the GNU
1253         runtime.
1254         (-fzero-link): Explain that the GNU runtime always works in
1255         "zero-link" mode.
1256         * doc/objc.texi: All sections: simplified @node declarations
1257         removing specification of next, previous, up node.
1258         (Objective-C): Updated introduction.
1259         (Garbage Collection): Updated.  The bohem-gc library is now
1260         included in gcc itself.  Mention that this section only applies to
1261         the GNU Objective-C runtime.
1262         (compatibility_alias): Small tidy up.
1263         (Exceptions): New section mostly containing text previously in the
1264         description of the -fobjc-exception command-line option.
1265         (Synchronization): Same.
1266
1267 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
1268
1269         * config/i386/i386.md (ix86_code_end): Move the initialization of
1270         xops array near the consumer.  Use AX_REG and SP_REG instead of
1271         numerical constants.
1272
1273 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1274
1275         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
1276         method [methodname]' for an Objective-C method instead of the less
1277         satisfactory 'too many arguments to function' (with no method name).
1278
1279 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1280
1281         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
1282         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
1283         (execute_update_addresses_taken): Remove parameter.  Execute the
1284         optimization unconditionally.
1285         * passes.c (execute_function_todo): Call execute_update_addresses_taken
1286         unconditionally if TODO_rebuild_alias is set, else only when optimizing
1287         if TODO_update_address_taken is set.
1288
1289 >>>>>>> .r164755
1290 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
1291
1292         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1293         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
1294         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1295         (arm_output_addr_const_extra): Make static.
1296
1297 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
1298
1299         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
1300         define as unspec_volatile.
1301         ("nops"): Define as unspec_volatile. Use fputs to write to
1302         asm_out_file directly.  Output NOPs on separate lines using while loop.
1303         * config/i386/i386.c (ix86_code_end): Use fputs to write to
1304         asm_out_file directly.  Output NOPs on separate lines using while loop.
1305
1306 2010-09-23  Richard Guenther  <rguenther@suse.de>
1307
1308         PR tree-optimization/45565
1309         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1310         Make sure to adjust the fndecl before replacing the stmt.
1311
1312 2010-09-23  Richard Guenther  <rguenther@suse.de>
1313
1314         PR middle-end/45750
1315         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
1316         gimplifying MEM_REF.
1317
1318 2010-09-23  Alan Modra  <amodra@gmail.com>
1319
1320         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
1321         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
1322
1323 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
1324
1325         PR rtl-optimization/44374
1326         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1327         * df-core.c (df_set_bb_dirty): Set it.
1328         * ifcvt.c (find_memory): Remove function.
1329         (dead_or_predicable): Use can_move_insns_across.
1330         * df.h (can_move_insns_across): Declare function.
1331         * cfgcleanup.c (block_was_dirty): New static variable.
1332         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1333         than df_get_bb_dirty.
1334         (try_head_merge_bb): New static function.
1335         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1336         is set.
1337         * df-problems.c: Include "target.h"
1338         (df_simulate_find_uses): New static function.
1339         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1340         (find_memory, find_memory_store): New static functions.
1341         (can_move_insns_across): New function.
1342         * Makefile.in (df-problems.o): Update dependencies.
1343
1344 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1345
1346         PR java/44095
1347         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
1348         is specified and the suffix of the file isn't ".c".
1349         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1350
1351 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1352
1353         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
1354         * doc/cppopts.texi: Fix markup of index entry.
1355         * doc/extend.texi (Constructing Calls): Fix markup of
1356         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
1357         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
1358         (Vague Linkage, C++ Attributes): Fix markup of index entries and
1359         keywords.
1360         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
1361         avoid long lines.
1362         (C Dialect Options, C++ Dialect Options, Warning Options)
1363         (Debugging Options, Spec Files, Darwin Options)
1364         (i386 and x86-64 Options, MIPS Options)
1365         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
1366         index entries, avoid abbreviations, allow URLs to wrap, avoid
1367         long lines, avoid overlong pages from long @itemx lists.
1368         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
1369         * doc/standards.texi (Standards): Likewise.
1370         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
1371
1372 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1373
1374         * opts-common.c (prune_options): Make static.  Work with decoded
1375         options.
1376         (decode_cmdline_options_to_array): Call prune_options.  Don't
1377         resize option array here.
1378         * opts.h (prune_options): Remove prototype.
1379         * gcc.c (process_command): Take decoded options; don't call
1380         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
1381         (main): Call decode_cmdline_options_to_array here instead of
1382         prune_options.  Update call to process_command.
1383         * config/darwin-driver.c: Include opts.h.
1384         (darwin_default_min_version): Work with decoded options.  Don't
1385         handle -b or -V here.
1386         * config/darwin.h (darwin_default_min_version): Update prototype.
1387         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
1388         darwin_default_min_version.
1389         * config/i386/cygwin.h (mingw_scan): Update prototype.
1390         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
1391         * config/i386/cygwin1.c: Include opts.h.
1392         (mingw_scan): Work with decoded options.
1393         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
1394         * config/t-darwin (darwin-driver.o): Update dependencies.
1395
1396 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1397
1398         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
1399         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
1400         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
1401         -force-link, -force-link=, -language, -language=,
1402         -library-directory, -library-directory=, -no-canonical-prefixes,
1403         -no-standard-libraries, -no-warnings, -optimize, -output,
1404         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
1405         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
1406         -print-file-name=, -print-libgcc-file-name,
1407         -print-multi-directory, -print-multi-lib,
1408         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
1409         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
1410         -profile, -save-temps, -shared, -specs, -specs=, -static,
1411         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
1412         symbolic): New.
1413         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
1414         * gcc.c (A Short Introduction to Adding a Command-Line Option):
1415         Remove comment.
1416         (cc1_options): Correct specs for passing down --help,
1417         --target-help and --help=*.  Add spec for passing down --version.
1418         (struct option_map, option_map, target_option_translations,
1419         translate_options): Remove.
1420         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
1421         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
1422         OPT_fhelp_ and OPT_ftarget_help.
1423         (process_command): Don't call translate_options.  Call
1424         decode_cmdline_options_to_array before checking for
1425         -no-canonical-prefixes using decoded options.
1426         * opts-common.c (tm.h): Update comment on #include.
1427         (find_opt): Allow abbreviations of long options.
1428         (struct option_map, option_map): New.
1429         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
1430         and -mno handling.
1431         (target_option_translations): New.
1432         (decode_cmdline_options_to_array): Handle
1433         TARGET_OPTION_TRANSLATE_TABLE in driver.
1434         * opts.c (common_handle_option): Don't handle OPT_fhelp,
1435         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
1436
1437 2010-09-22  Richard Guenther  <rguenther@suse.de>
1438
1439         * tree-inline.c (optimize_inline_calls): Schedule cleanups
1440         only if we inlined something.  Block compaction and conditional
1441         folding are done by cfg cleanup.  Schedule update-address-taken.
1442         (tree_function_versioning): Remove redundant call to number_blocks.
1443         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
1444         folding is done by cfg cleanup.
1445         * passes.c (init_optimization_passes): Remove update-address-taken
1446         pass after IPA inlining.
1447
1448 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
1449
1450         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
1451         to update conditions. Fix reg_mode[] check.
1452
1453 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
1454
1455         * config/picochip/picochip.md (movhicc): Use expand to check whether
1456         movhicc is available and split it after reload.
1457
1458 2010-09-22  Richard Guenther  <rguenther@suse.de>
1459
1460         * tree-ssanames.c (release_dead_ssa_names): Do not remove
1461         callee edges here.
1462         * passes.c (init_optimization_passes): Remove early CFG cleanup.
1463         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
1464         (pass_cleanup_cfg): Likewise.
1465         (execute_fixup_cfg): Cleanup.
1466         * tree-pass.h (pass_cleanup_cfg): Remove.
1467
1468 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1469
1470         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
1471         builtins if it is true.
1472         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
1473         parameter.
1474
1475 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1476
1477         * tree-sra.c (struct access): New field grp_no_warning.
1478         (create_access_replacement): Set TREE_NO_WARNING according to
1479          grp_no_warning.
1480         (create_artificial_child_access): Use build_ref_for_model and set
1481         grp_no_warning if build_user_friendly_ref_for_offset fails.
1482         (propagate_subaccesses_across_link): Likewise.
1483
1484 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1485
1486         PR target/35664
1487         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
1488         ('f'): Likewise.
1489
1490 2010-09-22  Tristan Gingold  <gingold@adacore.com>
1491
1492         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
1493
1494 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
1495
1496         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
1497         * config/i386/i386.c (decide_alg): Update for rename.
1498
1499 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
1500
1501         PR rtl-optimization/45739
1502         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
1503         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
1504
1505 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
1506
1507         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
1508         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1509         Remove.
1510         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
1511         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1512
1513 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1514
1515         PR objc/23710
1516         * c-parser.c (c_parser_objc_method_definition): Check the return
1517         value of objc_start_method_definition and if false is returned,
1518         parse the method definition but emit no code.
1519
1520 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1521
1522         PR objc/25965
1523         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
1524         call objc_get_interface_ivars ().
1525
1526 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
1527
1528         PR target/45694
1529         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
1530         static chain-register is used for 64-bit.
1531
1532 2010-09-21  Richard Guenther  <rguenther@suse.de>
1533
1534         * dwarf2out.c (is_cu_die): New function.
1535         (add_pubtype): Use it.
1536         (gen_subprogram_die): Likewise.
1537         (gen_struct_or_union_type_die): Likewise.
1538         (dwarf2out_finish): Likewise.
1539         (comp_unit_die): Rename to ...
1540         (single_comp_unit_die): ... this.
1541         (comp_unit_die): New function lazily constructing and
1542         returning single_comp_unit_die.
1543         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
1544         base_type_die, subrange_type_die, modified_type_die,
1545         lower_bound_default, add_bound_info, add_prototyped_attribute,
1546         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
1547         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
1548         force_decl_die, gen_namespace_die, dwarf2out_decl,
1549         dwarf2out_start_source_file, dwarf2out_end_source_file,
1550         prune_unused_types, dwarf2out_finish): Use it.
1551         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
1552         the global list of translation-unit decls.
1553         (dwarf2out_init): Do not create single_comp_unit_die here.
1554         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
1555
1556 2010-09-21  Richard Guenther  <rguenther@suse.de>
1557
1558         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
1559         for bool for C++.
1560
1561 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
1562
1563         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
1564         (qhs_extenddi_cstr): Likewise.
1565         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
1566         them for the source operand.
1567
1568 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
1569
1570         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
1571         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
1572         (ix86_split_ashr): Ditto.
1573         (ix86_split_lshr): Ditto.
1574
1575 2010-09-21  Richard Guenther  <rguenther@suse.de>
1576
1577         PR tree-optimization/45580
1578         * tree-ssa-propagate.c (substitute_and_fold): Always replace
1579         regular uses.
1580         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
1581         virtuals fold the call into a regular indirect one.
1582
1583 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1584
1585         PR rtl-optimization/42775
1586         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
1587         scheduling is enabled.
1588
1589 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1590
1591         PR rtl-optimization/45728
1592         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
1593         gen_lowpart_common first and if that fails, force_reg first
1594         before calling gen_lowpart.
1595
1596         PR middle-end/45678
1597         * cfgexpand.c (expand_one_stack_var_at): Use
1598         crtl->max_used_stack_slot_alignment as max_align, instead
1599         of maximum of that and PREFERRED_STACK_BOUNDARY.
1600         Don't call update_stack_alignment.
1601
1602 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1603
1604         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
1605         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
1606         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
1607         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
1608         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
1609         (build_nonstandard_integer_type): Likewise.
1610         (build_range_type_1): New function, built from...
1611         (build_range_type): ...this.  Call build_range_type_1.
1612         (build_nonshared_range_type): New function.
1613         (build_array_type_1): New function, built from...
1614         (build_array_type: ...this.  Call build_array_type_1.
1615         (build_nonshared_array_type): New function.
1616         * tree.h (build_nonshared_range_type): Declare.
1617         (build_nonshared_array_type): Likewise.
1618
1619 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
1620
1621         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
1622         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1623         (arm_class_likely_spilled_p): New function.
1624
1625 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
1626
1627         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
1628         indirect functions.
1629         (ix86_split_ashl): Ditto.
1630         (ix86_split_ashr): Ditto.
1631         (ix86_split_lshr): Ditto.
1632         (ix86_adjust_counter): Ditto.
1633
1634 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1635
1636         * c-family/c-common.h (constant_string_class): Documented with
1637         comment identical to the one already in c-common.c.
1638
1639 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1640
1641         * dwarf2out.c (any_cfis_emitted): New static variable.
1642         (add_fde_cfi): Set it.
1643         (dwarf2out_frame_debug): Clear it before processing,
1644         if it is set afterwards, flush any queued reg saves.
1645
1646         PR debug/45124
1647         * dwarf2out.c (add_accessibility_attribute): Assume
1648         DW_ACCESS_private as the default for dwarf_version > 2
1649         and DW_TAG_class_type parent.
1650         (gen_inheritance_die): Assume DW_ACCESS_public as the default
1651         for dwarf_version > 2 and parent other than DW_TAG_class_type.
1652
1653 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1654
1655         PR target/45726
1656         * arm.md (arm_movt): Only enable on machines with MOVT.
1657
1658 2010-09-20  Jie Zhang  <jie@codesourcery.com>
1659
1660         * config/arm/arm.c (arm_address_offset_is_imm): New.
1661         (arm_early_store_addr_dep): New.
1662         (arm_early_load_addr_dep): New.
1663         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
1664         (arm_early_load_addr_dep): Declare.
1665         (arm_address_offset_is_imm): Declare.
1666         * config/arm/cortex-m4.md: New file.
1667         * config/arm/cortex-m4-fpu.md: New file.
1668         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
1669         (attr generic_sched): Exclude cortexm4.
1670         (attr generic_vfp): Exclude cortexm4.
1671
1672 2010-09-20  Richard Guenther  <rguenther@suse.de>
1673
1674         PR middle-end/45704
1675         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
1676
1677 2010-09-20  Jan Hubicka  <jh@suse.cz>
1678
1679         PR tree-optimize/45605
1680         * cgraph.h (const_value_known_p): Declare.
1681         (varpool_decide_const_value_known): Remove.
1682         * tree-ssa-ccp.c (get_base_constructor): Use it.
1683         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
1684         * expr.c (string_constant): Likewise.
1685         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
1686         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1687         function_and_variable_visibility): Likewise.
1688         * gimplify.c (gimplify_call_expr): Likewise.
1689         * gimple-fold.c (get_symbol_constant_value): Likewise.
1690         * varpool.c (varpool_decide_const_value_known): Replace by...
1691         (const_value_known_p): ... this one; handle other kinds of DECLs
1692         too and work for automatic vars.
1693         (varpool_finalize_decl): Use const_value_known_p.
1694
1695 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1696
1697         PR target/45726
1698         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
1699
1700 2010-09-20  Richard Guenther  <rguenther@suse.de>
1701
1702         PR tree-optimization/45705
1703         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
1704
1705 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1706
1707         PR rtl-optimization/45695
1708         * combine.c (try_combine): When splitting a two set pattern,
1709         make sure the pattern which will be put into i2 doesn't use REGs
1710         or MEMs set by insns in between i2 and i3.
1711
1712 2010-09-19  Jan Hubicka  <jh@suse.cz>
1713
1714         PR lto/44246
1715         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
1716         processing same node twice.
1717
1718 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
1719
1720         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
1721         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1722         (bfin_class_likely_spilled_p): New function
1723
1724 2010-09-19  Ira Rosen  <irar@il.ibm.com>
1725
1726         PR tree-optimization/45714
1727         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
1728         created in vectorizable_call instead of the original statement in
1729         def stmt updates.
1730
1731 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         * config/i386/i386-protos.h (split_double_mode): New prototype.
1734         (split_di, split_ti): Remove prototypes.
1735         * config/i386/i386.c (split_double_mode): New function.
1736         (split_di, split_ti): Remove.
1737         (ix86_expand_branch): Use split_double_mode.
1738         (ix86_split_to_parts): Ditto.
1739         (ix86_split_ashl): Ditto.
1740         (ix86_split_ashr): Ditto.
1741         (ix86_split_lshr): Ditto.
1742         (ix86_force_to_memory): Ditto.
1743         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
1744
1745 2010-09-18  Jan Hubicka  <jh@suse.cz>
1746
1747         PR tree-optimization/45453
1748         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
1749         virtual functions are reachable.
1750         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
1751         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1752         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
1753         when modifying function.
1754
1755 2010-09-18  Jan Hubicka  <jh@suse.cz>
1756
1757         PR tree-optimization/45605
1758         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
1759         * gimple-fold.c (static_object_in_other_unit_p): New function.
1760         (canonicalize_constructor_val): Use it.
1761         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
1762         returning NULL.
1763         (gimple_fold_obj_type_ref_known_binfo): Use
1764         static_object_in_other_unit_p.
1765
1766 2010-09-18  Richard Guenther  <rguenther@suse.de>
1767
1768         PR tree-optimization/45709
1769         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
1770         insertions until after all PHI nodes of the block are processed.
1771
1772 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
1773
1774         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
1775
1776 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
1777
1778         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
1779
1780 2010-09-18  Richard Guenther  <rguenther@suse.de>
1781
1782         PR tree-optimization/45709
1783         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
1784
1785 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1786
1787         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
1788         (dot_deps_stmt): Same.
1789         * graphite-poly.c (dot_lst): Same.
1790         * graphite-scop-detection.c (dot_all_scops): Same.
1791         (dot_scop): Same.
1792
1793 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1794
1795         Revert:
1796         2009-12-16  Ben Elliston  <bje@au.ibm.com>
1797
1798         * tree-data-ref.c (dot_rdg_1): Added back.
1799         (dot_rdg): Same.  Added "#if 0" around system call.
1800
1801 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1802             Richard Henderson  <rth@redhat.com>
1803
1804         * config/i386/i386.c (initial_ix86_tune_features): Add
1805         X86_TUNE_PAD_SHORT_FUNCTION.
1806         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
1807         (ix86_count_insn): New.
1808         (ix86_pad_short_function): Likewise.
1809         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
1810
1811         * config/i386/i386.h (ix86_tune_indices): Add
1812         X86_TUNE_PAD_SHORT_FUNCTION.
1813         (TARGET_PAD_SHORT_FUNCTION): New.
1814
1815         * config/i386/i386.md (UNSPEC_NOPS): New.
1816         (nops): Likewise.
1817
1818 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1819
1820         PR middle-end/45234
1821         * calls.c (expand_call): Make sure that all variable sized
1822         adjustments are multiple of preferred stack boundary after
1823         stack alignment.
1824
1825 2010-09-17  DJ Delorie  <dj@redhat.com>
1826
1827         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
1828         passed an invalid value, print an error instead of ICEing.
1829         (valid_psw_flag): New.
1830         (rx_expand_builtin): Call it for setpsw/clrpsw.
1831         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
1832
1833         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
1834         (bitclr_in_memory): Likewise.
1835         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
1836
1837 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1838
1839         PR middle-end/45678
1840         * cfgexpand.c (update_stack_alignment): New.
1841         (get_decl_align_unit): Use it.
1842         (expand_one_stack_var_at): Call update_stack_alignment.
1843
1844 2010-09-17  Richard Guenther  <rguenther@suse.de>
1845
1846         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
1847         Properly copy the read string.
1848
1849 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
1850
1851         * doc/options.texi (Variable): Document.
1852         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
1853         generate target_flags declarations explicitly.  Don't define
1854         VarExists variables for the driver.
1855         * common.opt (target_flags): New Variable record.
1856         (flag_dump_unnumbered, flag_dump_unnumbered_links,
1857         flag_var_tracking, flag_var_tracking_assignments,
1858         flag_var_tracking_assignments_toggle): Don't mark variables with
1859         VarExists.
1860         * config/i386/i386.c (ix86_isa_flags): Don't define here.
1861         * config/i386/i386.opt (ix86_isa_flags): Define here.
1862         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
1863         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
1864         VarExists.
1865         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
1866         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
1867         Only define for generator programs.
1868         * rtlanal.c (target_flags): Remove.
1869         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
1870         flag_var_tracking_assignments_toggle): Remove.
1871
1872 2010-09-17  Michael Matz  <matz@suse.de>
1873
1874         PR tree-optimization/43432
1875         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
1876         Accept backwards consecutive accesses.
1877         (vect_create_data_ref_ptr): If step is negative generate
1878         decreasing IVs.
1879         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
1880         (perm_mask_for_reverse, reverse_vec_elements): New functions.
1881         (vectorizable_load): Handle loads with negative steps when easily
1882         possible.
1883
1884 2010-09-03  Jan Hubicka  <jh@suse.cz>
1885
1886         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
1887
1888 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
1889
1890         * config/v850/v850.c (v850_function_value_regno_p): Make static.
1891         Adjust comments. Declare.
1892         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1893         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
1894
1895 2010-09-17  Richard Guenther  <rguenther@suse.de>
1896
1897         * common.opt (combine): Remove.
1898         * gcc.c (default_compilers): Remove specs testing combine.
1899         The C compilers no longer can combine.
1900         (option_map): Remove -combine.
1901         (display_help): Remove -combine.
1902         (driver_handle_option): Remove OPT_combine handling.
1903         (compile_input_file_p): Remove.
1904         (do_spec): Remove code concerning combine.
1905         (main): Likewise.
1906         * doc/invoke.texi: Remove traces of -combine.
1907         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
1908
1909 2010-09-17  Richard Guenther  <rguenther@suse.de>
1910
1911         PR middle-end/45678
1912         * builtins.c (fold_builtin_memory_op): Always properly adjust
1913         alignment of memory accesses.
1914
1915 2010-09-16  Jan Hubicka  <jh@suse.cz>
1916
1917         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
1918         processing clone.
1919
1920 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
1921
1922         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
1923
1924         * config/i386/i386.c (predict_jump): Add prototype.
1925         (flag_opts): Add -m8bit-idiv.
1926         (ix86_split_idivmod): New.
1927
1928         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
1929         Add 2 splitters for SI/DI mode divide.
1930         (divmod<mode>4_1): New pattern.
1931         (udivmod<mode>4_1): Likewise.
1932         (testdi_ccno_1): Likewise.
1933
1934         * config/i386/i386.opt (m8bit-idiv): New.
1935
1936         * doc/invoke.texi: Document -m8bit-idiv.
1937
1938 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
1939
1940         PR bootstrap/45680
1941         * config/i386/i386.c (min_insn_size): Moved out of the
1942         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
1943
1944 2010-09-16  Jan Hubicka  <jh@suse.cz>
1945
1946         * lto-cgraph.c (lto_output_node): Fix handling of clones.
1947         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
1948         unreachable clones with reachable clones.
1949         * tree-inline.c (copy_bb): Fix sanity checking when producing
1950         unreachable clone.
1951
1952 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
1953
1954         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
1955         (TARGET_MEMORY_MOVE_COST): Define.
1956         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
1957
1958 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
1959
1960         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
1961         maybe_tidy_empty_bb.
1962
1963         Revert:
1964         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1965         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1966
1967 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
1968
1969         * target.def (target_option.optimization): New hook.
1970         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
1971         TARGET_OPTION_OPTIMIZATION hook.
1972         * doc/tm.texi: Regenerate.
1973         * hooks.c (hook_void_int_int): New.
1974         * hooks.h (hook_void_int_int): Declare.
1975         * opts.c: Don't include tm_p.h.
1976         (decode_options): Use targetm.target_option.optimization instead
1977         of OPTIMIZATION_OPTIONS.
1978         * system.h (OPTIMIZATION_OPTIONS): Poison.
1979         * config/arm/arm-protos.h (arm_optimization_options): Remove.
1980         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
1981         (arm_optimization_options): Rename to arm_option_optimization.
1982         Make static.
1983         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
1984         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
1985         (cris_option_optimization): New.
1986         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
1987         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
1988         (crx_option_optimization): New.
1989         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
1990         * config/frv/frv-protos.h (frv_optimization_options): Remove.
1991         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
1992         (frv_optimization_options): Rename to frv_option_optimization.
1993         Make static.
1994         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
1995         * config/h8300/h8300.c (h8300_option_optimization): New.
1996         (TARGET_OPTION_OPTIMIZATION): Define.
1997         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
1998         * config/i386/i386-protos.h (optimization_options): Remove.
1999         * config/i386/i386.c (optimization_options): Rename to
2000         ix86_option_optimization.  Make static.
2001         (TARGET_OPTION_OPTIMIZATION): Define.
2002         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
2003         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
2004         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
2005         (ia64_optimization_options): Rename to ia64_option_optimization.
2006         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
2007         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
2008         commented-out definition.
2009         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
2010         instead of OPTIMIZATION_OPTIONS.
2011         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
2012         (m32r_option_optimization): New.
2013         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
2014         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
2015         Remove.
2016         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
2017         (mcore_option_optimization): New.
2018         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
2019         * config/mep/mep-protos.h (mep_optimization_options): Remove.
2020         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
2021         (mep_optimization_options): Rename to mep_option_optimization.
2022         Make static.  Take unused level and size parameters.
2023         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
2024         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
2025         (mmix_option_optimization): New.
2026         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
2027         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
2028         (pdp11_option_optimization): New.
2029         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
2030         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
2031         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
2032         (optimization_options): Rename to rs6000_option_optimization.
2033         Make static.
2034         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
2035         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
2036         * config/rx/rx.c (rx_set_optimization_options): Rename to
2037         rx_option_optimization.  Make static.  Take unused level and size
2038         parameters.
2039         (TARGET_OPTION_OPTIMIZATION): Define.
2040         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
2041         * config/s390/s390-protos.h (optimization_options): Remove.
2042         * config/s390/s390.c (optimization_options): Rename to
2043         s390_option_optimization.  Make static.  Don't mark size parameter
2044         unused.
2045         (TARGET_OPTION_OPTIMIZATION): Define.
2046         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
2047         * config/sh/sh-protos.h (sh_optimization_options): Remove.
2048         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
2049         (sh_optimization_options): Rename to sh_option_optimization.  Make
2050         static.  Don't mark parameters unused.
2051         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
2052         * config/spu/spu-protos.h (spu_optimization_options): Remove.
2053         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
2054         (spu_optimization_options): Rename to spu_option_optimization.
2055         Make static.
2056         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
2057         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
2058         (v850_option_optimization): New.
2059         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
2060         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
2061         (xtensa_option_optimization): New.
2062         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
2063
2064 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
2065
2066         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
2067         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
2068         * doc/tm.texi: Regenerate.
2069         * system.h (OVERRIDE_OPTIONS): Poison.
2070         * target.def (override): Default to hook_void_void.
2071         * targhooks.c (default_target_option_override): Remove.
2072         * genmodes.c, machmode.def: Update comments mentioning
2073         OVERRIDE_OPTIONS.
2074         * config/alpha/alpha-modes.def: Update comment mentioning
2075         alpha_override_options.
2076         * config/alpha/alpha-protos.h (override_options): Remove.
2077         * config/alpha/alpha.c (override_options): Rename to
2078         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
2079         (TARGET_OPTION_OVERRIDE): Define.
2080         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
2081         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
2082         of OVERRIDE_OPTIONS.
2083         * config/arc/arc-protos.h (arc_init): Remove.
2084         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
2085         (arc_init): Rename to arc_option_override.  Make static.
2086         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
2087         (OVERRIDE_OPTIONS): Remove.
2088         * config/arm/arm-protos.h (arm_override_options): Remove.
2089         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
2090         (arm_override_options): Rename to arm_option_override.  Make
2091         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2092         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
2093         * config/arm/arm.md: Update comment referring to arm_override_options.
2094         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2095         instead of OVERRIDE_OPTIONS.
2096         * config/avr/avr-protos.h (avr_override_options): Remove.
2097         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
2098         (avr_override_options): Rename to avr_option_override.  Make static.
2099         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
2100         * config/bfin/bfin-protos.h (override_options): Remove (twice).
2101         * config/bfin/bfin.c (override_options): Rename to
2102         bfin_option_override.  Make static.
2103         (TARGET_OPTION_OVERRIDE): Define.
2104         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
2105         * config/cris/cris-protos.h (cris_override_options): Remove.
2106         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
2107         (cris_override_options): Rename to cris_option_override.  Make static.
2108         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
2109         * config/frv/frv-protos.h (frv_override_options): Remove.
2110         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
2111         (frv_override_options): Rename to frv_option_override.  Make static.
2112         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
2113         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
2114         * config/h8300/h8300.c (h8300_init_once): Rename to
2115         h8300_option_override.  Make static.
2116         (TARGET_OPTION_OVERRIDE): Define.
2117         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
2118         * config/i386/i386-protos.h (override_options): Remove.
2119         * config/i386/i386.c (override_options): Rename to
2120         ix86_option_override_internal.  Make static.  Comments referring
2121         to this function and callers changed.
2122         (ix86_option_override): New.
2123         (TARGET_OPTION_OVERRIDE): Define.
2124         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
2125         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
2126         * config/ia64/ia64.c (ia64_file_start): Update comment referring
2127         to ia64_override_options.
2128         * config/iq2000/iq2000-protos.h (override_options): Remove.
2129         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
2130         (override_options): Rename to iq2000_option_override.  Make static.
2131         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
2132         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
2133         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
2134         (lm32_override_options): Rename to lm32_option_override.  Make static.
2135         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
2136         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
2137         (m32r_option_override): New.
2138         (m32r_init): Update comment.
2139         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
2140         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
2141         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
2142         (m68hc11_override_options): Rename to m68hc11_option_override.
2143         Make static.  Return void.
2144         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
2145         * config/m68k/m68k-protos.h (override_options): Remove.
2146         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
2147         (override_options): Rename to m68k_option_override.  Make static.
2148         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
2149         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
2150         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
2151         (mcore_override_options): Rename to mcore_option_override.  Make
2152         static.
2153         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
2154         * config/mep/mep-protos.h (mep_override_options): Remove.
2155         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
2156         (mep_override_options): Rename to mep_option_override.  Make static.
2157         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
2158         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
2159         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
2160         (mmix_override_options): Rename to mmix_option_override.  Make static.
2161         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
2162         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
2163         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
2164         (mn10300_override_options): Rename to mn10300_option_override.
2165         Make static.
2166         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
2167         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
2168         * config/moxie/moxie.c (moxie_override_options): Rename to
2169         moxie_option_override.  Make static.
2170         (TARGET_OPTION_OVERRIDE): Define.
2171         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
2172         * config/picochip/picochip-protos.h (picochip_override_options):
2173         Remove.  Update comment referring to picochip_override_options.
2174         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
2175         (picochip_override_options): Rename to picochip_option_override.
2176         Make static.  Update comment and definition of
2177         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
2178         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
2179         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2180         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2181         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2182         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2183         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2184         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
2185         instead of OVERRIDE_OPTIONS.
2186         * config/rs6000/rs6000-modes.def: Update comment referring to
2187         rs6000_override_options.
2188         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
2189         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
2190         (rs6000_override_options): Rename to
2191         rs6000_option_override_internal.  Make static.  Commented
2192         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
2193         (rs6000_option_override): New.
2194         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
2195         instead of OVERRIDE_OPTIONS.
2196         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2197         * config/s390/s390-protos.h (override_options): Remove.
2198         * config/s390/s390.c (override_options): Rename to
2199         s390_option_override.  Make static.
2200         (TARGET_OPTION_OVERRIDE): Define.
2201         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
2202         * config/score/score-protos.h (score_override_options): Remove.
2203         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
2204         (score_override_options): Rename to score_option_override.  Make
2205         static.
2206         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
2207         Update comment referring to override_options.
2208         * config/score/score3.c (score3_override_options): Rename to
2209         score3_option_override.
2210         * config/score/score3.h (score3_override_options): Rename to
2211         score3_option_override.
2212         * config/score/score7.c (score7_override_options): Rename to
2213         score7_option_override.
2214         * config/score/score7.h (score7_override_options): Rename to
2215         score7_option_override.
2216         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
2217         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
2218         (sparc_override_options): Rename to sparc_option_override.  Make
2219         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2220         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
2221         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2222         instead of OVERRIDE_OPTIONS.
2223         * config/spu/spu-protos.h (spu_override_options): Remove.
2224         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
2225         (spu_override_options): Rename to spu_option_override.  Make
2226         static.
2227         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
2228         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
2229         OVERRIDE_OPTIONS.
2230         * config/vax/vax-protos.h (override_options): Remove.
2231         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
2232         (override_options): Rename to vax_option_override.  Make static.
2233         Call SUBTARGET_OVERRIDE_OPTIONS.
2234         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
2235         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
2236         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
2237         * config/xtensa/xtensa-protos.h (override_options): Remove.
2238         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
2239         (override_options): Rename to xtensa_option_override.  Make static.
2240         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
2241
2242 2010-09-16  Richard Guenther  <rguenther@suse.de>
2243
2244         PR tree-optimization/45623
2245         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
2246         (get_constraint_for_component_ref): If computing a constraint
2247         for the rhs handle type punning through unions.
2248         (get_constraint_for_address_of): Adjust.
2249         (get_constraint_for_1): Likewise.
2250         (get_constraint_for): Likewise.
2251         (get_constraint_for_rhs): New function.
2252         (do_structure_copy): Adjust.
2253         (make_constraint_to): Likewise.
2254         (handle_const_call): Likewise.
2255         (find_func_aliases): Likewise.
2256         (process_ipa_clobber): Likewise.
2257         (create_variable_info_for): Likewise.
2258
2259 2010-09-16  Ira Rosen  <irar@il.ibm.com>
2260
2261         * tree-vectorizer.c: Fix documentation.
2262         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
2263         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
2264         is_pattern_stmt_p, is_loop_header_bb_p,
2265         stmt_vinfo_set_inside_of_loop_cost,
2266         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
2267         known_alignment_for_access_p): Likewise.
2268         * tree-vect-loop.c: Fix documentation.
2269         (vect_get_cost): Start function name from new line.
2270         * tree-vect-data-refs.c: Fix documentation.
2271         * tree-vect_stmts.c: Likewise.
2272         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
2273         (vectorizable_store): Free vec_oprnds if allocated.
2274         (vectorizable_condition): Initialize several variables to avoid
2275         warnings.
2276         * tree-vect-slp.c: Fix documentation.
2277
2278 2010-09-16  Richard Guenther  <rguenther@suse.de>
2279
2280         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
2281         is TS_TRANSLATION_UNIT_DECL.
2282         (initialize_tree_contains_struct): Adjust.
2283         (all_translation_units): New global vector.
2284         (build_translation_unit_decl): New function.
2285         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
2286         (struct tree_translation_unit_decl): New.
2287         (all_translation_units): Declare.
2288         (union tree_node): Add translation_unit_decl member.
2289         (build_translation_unit_decl): Declare.
2290         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
2291         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
2292         New function.
2293         (pack_value_fields): Call it.
2294         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
2295         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
2296         (lto_output_tree_pointers): Call it.
2297         * lto-streamer-in.c (lto_input_tree_ref): Handle references
2298         to TRANSLATION_UNIT_DECL.
2299         (unpack_ts_translation_unit_decl_value_fields): New function.
2300         (unpack_value_fields): Call it.
2301         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
2302         (lto_input_tree_pointers): Call it.
2303         * lto-streamer.c (check_handled_ts_structures): Adjust.
2304         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
2305         * c-decl.c (all_translation_units): Remove.
2306         (pop_scope): Use build_translation_unit_decl.
2307         (collect_all_refs): Adjust.
2308         (for_each_global_decl): Likewise.
2309         (c_write_global_declarations): Likewise.
2310
2311 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
2312
2313         PR bootstrap/45686
2314         * fold-const.c (fold_checksum_tree): Change slot from const void **
2315         to void **, use CONST_CAST_TREE to store into *slot.
2316
2317 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2318
2319         * config/i386/i386.md: Remove unneeded empty conditions and
2320         preparation statements from expanders.
2321         * config/i386/mmx.md: Ditto.
2322         * config/i386/sse.md: Ditto.
2323
2324 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2325
2326         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
2327
2328 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2329
2330         PR rtl-optimization/45593
2331         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
2332         insns that were in delay slots as stand-alone insns.
2333
2334 2010-09-15  Ian Lance Taylor  <iant@google.com>
2335
2336         * incpath.c (remove_duplicates): If name is not a directory, issue
2337         a warning rather than an error.
2338
2339 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2340
2341         PR middle-end/45644
2342         * tree-sra.c (create_access): Check for bit-fields directly.
2343
2344 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
2345
2346         PR tree-optimization/45633
2347         * tree-cfg.c (verify_gimple_assign_binary): Allow
2348         MINUS_EXPR with lhs and rhs1 pointer vector and
2349         rhs2 sizetype vector.
2350         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
2351         or vector pointer use TER to optimize pointer subtraction.
2352
2353 2010-09-15  Jie Zhang  <jie@codesourcery.com>
2354
2355         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
2356         fcmpd to fcmps.
2357
2358 2010-09-15  Ian Lance Taylor  <iant@google.com>
2359
2360         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
2361
2362 2010-09-15  Ian Lance Taylor  <iant@google.com>
2363
2364         * function.c (get_arg_pointer_save_area): Set
2365         arg_pointer_save_area_init to true.
2366
2367 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2368
2369         * tree-sra.c (generate_subtree_copies): Updated comment.
2370         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
2371         obtained from the statement iterator instead.
2372         (load_assign_lhs_subreplacements): Removed parameters lhs and
2373         right_offset, which is obtained from top_racc instead.  Parameter lacc
2374         is now expected to be the root of the processed tree rather than root's
2375         first child.  Updated all callers.
2376
2377 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
2378
2379         * config/pdp11/pdp11.c (register_move_cost): Rename to
2380         pdp11_register_move_cost.
2381         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
2382         pdp11_register_move_cost.
2383         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
2384         pdp11_register_move_cost instead of register_move_cost.
2385
2386 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
2387
2388         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
2389         pattern for vmovn. Expansion in case of non
2390         -mvectorize-with-neon-quad.
2391         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
2392         non- -mvectorize-with-neon-quad case.
2393         (move_lo_quad_<mode>): New expansion to vmov into low part.
2394         (move_hi_quad_<mode>): New expansion to vmov into high part.
2395         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
2396         (move_lo_quad_v4sf): Likewise.
2397         (move_lo_quad_v8hi): Likewise.
2398         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
2399         low part.
2400         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
2401         high part.
2402         * config/arm/iterators.md (ANY128): New mode iterator.
2403         (V_narrow_pack): New mode attribute.
2404         (V_HALF): Add attribute.
2405         (V_DOUBLE): Add attribute.
2406         (V_mode_nunits): Add attribute.
2407
2408 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2409
2410         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
2411         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2412
2413 2010-09-15  Olivier Hainque  <hainque@adacore.com>
2414             Jose Ruiz  <ruiz@adacore.com>
2415
2416         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
2417         * config/alpha/osf5-unwind.h: New file.
2418
2419 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2420
2421         PR bootstrap/45672
2422         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2423         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2424         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2425
2426 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2427
2428         * c-lang.h (struct lang_type): Add variable_size GTY option.
2429
2430 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2431
2432         PR bootstrap/45672
2433         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2434
2435 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2436
2437         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
2438         result isn't used in memory address.
2439
2440 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2441
2442         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
2443         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
2444         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2445         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2446         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2447         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2448
2449         * target.def: Add units_per_simd_word to vectorize.
2450
2451         * targhooks.c (default_units_per_simd_word): New.
2452         * targhooks.h (default_units_per_simd_word): Likewise.
2453         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
2454         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2455         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
2456         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2457         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2458         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2459         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2460         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2461
2462         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
2463         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
2464
2465         * tree-vect-stmts.c: Don't include "tm_p.h".
2466         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
2467         with targetm.vectorize.units_per_simd_word.
2468
2469         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
2470
2471         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
2472
2473         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
2474         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2475
2476         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
2477         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
2478
2479         * doc/tm.texi: Regenerated.
2480
2481 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2482
2483         * tree-vect-stmts.c: Include "tm_p.h".
2484
2485         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
2486         out of RTX_CODE.
2487
2488 2010-09-14  Martin Jambor  <mjambor@suse.cz>
2489
2490         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
2491         location of generated statement.  Changed all callers.
2492         (build_ref_for_model): New parameter loc which used to set location of
2493         all generated expressions.  Changed all callers.
2494         (generate_subtree_copies): Likewise.
2495         (init_subtree_with_zero): Likewise.
2496         (sra_modify_expr): Set locations of all generated statements and
2497         expressions to the location the original statement.
2498         (handle_unscalarized_data_in_subtree): Likewise.
2499         (load_assign_lhs_subreplacements): Likewise.
2500         (sra_modify_constructor_assign): Likewise.
2501         (sra_modify_assign): Likewise.
2502
2503 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2504
2505         PR target/45277
2506         PR target/45363
2507         PR target/45407
2508         * doc/install.texi (sparc*-*-*): New section.
2509         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2510
2511 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2512
2513         PR middle-end/45567
2514         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
2515         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
2516         (expand_builtin): Adjust caller.
2517         (expand_builtin_unop): Only use subtarget if it has the right mode.
2518
2519 2010-09-14  Tristan Gingold  <gingold@adacore.com>
2520
2521         * configure.ac (plugins): Fix typos.
2522         * configure: Regenerate.
2523
2524 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2525
2526         PR debug/45660
2527         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
2528         gen_type_die for function/method return type.
2529
2530 2010-09-14  Ira Rosen  <irar@il.ibm.com>
2531
2532         PR tree-optimization/45470
2533         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
2534         can throw an exception.
2535         * tree-vect-stmts.c (vectorizable_call): Likewise.
2536
2537 2010-09-14  DJ Delorie  <dj@redhat.com>
2538
2539         PR target/44749
2540         * config/mep/mep-protos.h (mep_save_register_info,
2541         mep_reinit_regs, mep_init_regs): Declare.
2542
2543         * config/mep/mep.c: Move all target definitions to the end of the
2544         file to avoid the need for duplicate declarations.
2545         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
2546         (mep_reorg_erepeat): Remove unused variables.
2547         (mep_expand_builtin): Likewise.
2548
2549         * config/mep/mep-pragma.c: Don't include rtl.h.
2550         (INVALID_REGNUM): New.
2551         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
2552         functions.
2553         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
2554         Avoid enum/integer math.
2555
2556 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
2557
2558         PR target/44749
2559         * config/mep/t-mep (GTM_H): Add insn-constants.h.
2560         * config/mep/mep.c (mep_conditional_register_usage): Take no
2561         parameters.
2562         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
2563         prototype.
2564         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
2565         call to mep_conditional_register_usage.
2566
2567 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2568
2569         PR debug/43937
2570         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
2571         the DECL as well.
2572
2573 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
2574
2575         PR rtl-optimization/45617
2576         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
2577         even if low N bits of X aren't known to be zero.
2578
2579 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2580
2581         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
2582
2583         * config/i386/i386.c (initial_ix86_tune_features): Add
2584         X86_TUNE_VECTORIZE_DOUBLE.
2585         (ix86_units_per_simd_word): New.
2586
2587         * config/i386/i386.h (ix86_tune_indices): Add
2588         X86_TUNE_VECTORIZE_DOUBLE.
2589         (TARGET_VECTORIZE_DOUBLE): New.
2590         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
2591
2592 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
2593
2594         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
2595         (new_temp_expr_table): Allocate call_cnt vector.
2596         (free_temp_expr_table): Free it.
2597         (process_replaceable): Add call_cnt parm and set in vector.
2598         (find_replaceable_in_bb): Skip replacement if def/use span a call.
2599         (debug_ter): Dump call_cnt value, remove stderr uses.
2600
2601 2010-09-13  Jan Hubicka  <jh@suse.cz>
2602
2603         * tree.c (build_zero_cst): New.
2604         * tree.h (build_zero_cst): Declare.
2605         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
2606         (get_base_constructor): Break out from ...
2607         (fold_const_aggregate_ref): Here; handle empty constructors.
2608
2609 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2610
2611         * config/arm/arm.md: (define_attr "conds"): Update comment.
2612         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
2613         conds attribute to clob.
2614         (arm_sync_compare_and_swapsi): Likewise.
2615         (arm_sync_compare_and_swap<mode>): Likewise.
2616         (arm_sync_lock_test_and_setsi): Likewise.
2617         (arm_sync_lock_test_and_set<mode>): Likewise.
2618         (arm_sync_new_<sync_optab>si): Likewise.
2619         (arm_sync_new_nandsi): Likewise.
2620         (arm_sync_new_<sync_optab><mode>): Likewise.
2621         (arm_sync_new_nand<mode>): Likewise.
2622         (arm_sync_old_<sync_optab>si): Likewise.
2623         (arm_sync_old_nandsi): Likewise.
2624         (arm_sync_old_<sync_optab><mode>): Likewise.
2625         (arm_sync_old_nand<mode>): Likewise.
2626
2627 2010-09-13  Olivier Hainque  <hainque@adacore.com>
2628
2629         * fwprop.c (forward_propagate_and_simplify): Only attach a
2630         REG_EQUAL note to an insn if the destination is a register.
2631         * gcse.c (try_replace_reg): Likewise.
2632
2633 2010-09-13  Richard Guenther  <rguenther@suse.de>
2634
2635         PR tree-optimization/45611
2636         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
2637         (copy_ref_info): Likewise.
2638
2639 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
2640
2641         PR debug/45604
2642         PR debug/45419
2643         PR debug/45408
2644         * tree-pretty-print.c (dump_generic_node): Disregard top-level
2645         types of MEM_REF pointer types to the same type.
2646
2647 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
2648
2649         PR rtl-optimization/41087
2650         * ifcvt.c (noce_get_condition): Don't allow conditions with
2651         side-effects.
2652
2653 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
2654
2655         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2656         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
2657         * config/frv/frv.c (frv_register_move_cost): Make static. Change
2658         arguments type to reg_class_t. Add mode argument.
2659         (frv_memory_move_cost): New.
2660         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
2661
2662 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2663
2664         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
2665         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
2666
2667 2010-09-10  Jan Hubicka  <jh@suse.cz>
2668
2669         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
2670
2671 2010-09-10  Richard Guenther  <rguenther@suse.de>
2672
2673         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
2674         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
2675         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
2676         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
2677         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2678
2679 2010-09-10  Richard Guenther  <rguenther@suse.de>
2680
2681         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
2682         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
2683         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
2684         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
2685
2686 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
2687
2688         PR middle-end/45634
2689         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
2690         of string folding is of integral type.
2691
2692 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
2693
2694         * doc/invoke.texi (-x): Fix typo.
2695
2696 2010-09-10  Richard Guenther  <rguenther@suse.de>
2697
2698         PR debug/44115
2699         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
2700         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2701         Output DECL_DEBUG_EXPR.
2702         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
2703         Input DECL_DEBUG_EXPR.
2704
2705 2010-09-10  Richard Guenther  <rguenther@suse.de>
2706
2707         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
2708         (build_index_type): Implement in terms of build_range_type.
2709         (build_range_type): Do not allow NULL_TREE type, improve
2710         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
2711         if we didn't hash.
2712         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
2713         create a distinct copy of the type.
2714
2715 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
2716
2717         * configure: Regenerated.
2718         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
2719
2720 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2721
2722         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
2723         * config/arm/cortex-a9-neon.md: New and partially generated.
2724         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
2725
2726 2010-09-10  Richard Guenther  <rguenther@suse.de>
2727
2728         * tree.h (build_index_2_type): Remove.
2729         * tree.c (build_index_2_type): Remove.
2730
2731 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
2732
2733         PR bootstrap/45630
2734         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
2735         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
2736         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
2737
2738 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2739
2740         PR tree-optimization/44972
2741         * tree-sra.c: Include toplev.h.
2742         (build_ref_for_offset): Entirely reimplemented.
2743         (build_ref_for_model): New function.
2744         (build_user_friendly_ref_for_offset): New function.
2745         (analyze_access_subtree): Removed build_ref_for_offset check.
2746         (propagate_subaccesses_across_link): Likewise.
2747         (create_artificial_child_access): Use
2748         build_user_friendly_ref_for_offset.
2749         (propagate_subaccesses_across_link): Likewise.
2750         (ref_expr_for_all_replacements_p): Removed.
2751         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
2752         (sra_modify_expr): Use build_ref_for_model.
2753         (load_assign_lhs_subreplacements): Likewise.
2754         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
2755         checks for return values of build_ref_for_offset.
2756         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
2757         build_ref_for_offset.
2758         * ipa-prop.h: Include gimple.h
2759         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
2760         (ipa_analyze_indirect_call_uses): Update comment.
2761         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
2762         (IPA_PROP_H): Likewise.
2763
2764 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2765
2766         PR tree-optimization/44972
2767         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
2768         calling build_ref_for_offset.
2769
2770 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2771
2772         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
2773         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
2774         * config/arm/arm-tune.md: Regenerate.
2775         * doc/invoke.texi (ARM Options): Document it.
2776
2777 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
2778
2779         * config/i386/i386.c: Include sched-int.h.
2780         (TARGET_SCHED_DISPATCH): Defined.
2781         (TARGET_SCHED_DISPATCH_DO): Defined.
2782         (DISPATCH_WINDOW_SIZE): Defined.
2783         (MAX_DISPATCH_WINDOWS): Defined.
2784         (MAX_INSN): Defined.
2785         (MAX_IMM): Defined.
2786         (MAX_IMM_SIZE): Defined.
2787         (MAX_IMM_32): Defined.
2788         (MAX_IMM_64): Defined.
2789         (MAX_LOAD): Defined.
2790         (MAX_STORE): Defined.
2791         (BIG): Defined.
2792         (dispatch_group): New.
2793         (num_allowable_groups): New.
2794         (group_name): New.
2795         (sched_insn_info_s): New.
2796         (dispatch_windows_s): New.
2797         (imm_info_s): New.
2798         (dispatch_window_list): New.
2799         (dispatch_window_list1): New.
2800         (get_mem_group): New.
2801         (is_cmp): New.
2802         (dispatch_violation): New.
2803         (is_branch): New.
2804         (is_prefetch): New.
2805         (init_window): New.
2806         (allocate_window): New.
2807         (init_dispatch_sched): New.
2808         (is_end_basic_block): New.
2809         (process_end_window): New.
2810         (allocate_next_window): New.
2811         (find_constant_1): New.
2812         (find_constant): New.
2813         (get_num_immediates): New.
2814         (has_immediate): New.
2815         (get_insn_path): New.
2816         (get_insn_group): New.
2817         (count_num_restricted): New.
2818         (fits_dispatch_window): New.
2819         (add_insn_window): New.
2820         (add_to_dispatch_window): New.
2821         (debug_dispatch_window_file): New.
2822         (debug_dispatch_window): New.
2823         (debug_insn_dispatch_info_file): New.
2824         (debug_ready_dispatch): New.
2825         (do_dispatch): New.
2826         (has_dispatch): New.
2827         * config/i386/i386.h (debug_ready_dispatch): Declared.
2828         (debug_dispatch_window): Declared.
2829         * config/i386/i386.opt (mdispatch-scheduler): New flag.
2830         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
2831         (TARGET_SCHED_DISPATCH_DO): New.
2832         * doc/tm.texi: Regererated.
2833         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
2834         ready_remove_first_dispatch
2835         (schedule_block): Call targetm.sched.dispatch and
2836         targetm.sched.dispatch_do.
2837         (sched_init): Call targetm.sched.dispatch and
2838         targetm.sched.dispatch_do.
2839         (ready_remove_first_dispatch): New.
2840         (number_in_ready): New.
2841         (get_ready_element): New.
2842         * hooks.c (hook_bool_rtx_int_false): New.
2843         (hook_void_rtx_int): New.
2844         * hooks.h (hook_bool_rtx_int_false): Declared.
2845         (hook_void_rtx_int): Declared.
2846         * sched-int.h (IS_DISPATCH_ON): Defined.
2847         (IS_CMP): Defined.
2848         (DISPATCH_VIOLATION): Defined.
2849         (FITS_DISPATCH_WINDOW): Defined.
2850         (DISPATCH_INIT): Defined.
2851         (ADD_TO_DISPATCH_WINDOW): Defined.
2852         (get_ready_element): Declared.
2853         (number_in_ready): Declared.
2854         * target.def (dispatch): Defined.
2855         (dispatch_do): Defined.
2856
2857 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2858
2859         PR middle-end/45312
2860         * reload1.c (merge_assigned_reloads): Remove.
2861         (reload_as_needed): Don't call it.
2862
2863 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
2864
2865         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
2866         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2867         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2868
2869 2010-09-09  Matthias Klose  <doko@ubuntu.com>
2870
2871         PR bootstrap/43847
2872         * configure.ac (--enable-plugin): Enhance for cross builds.
2873         * configure: Regenerate.
2874
2875 2010-09-09  Jan Hubicka  <jh@suse.cz>
2876
2877         PR tree-optimization/45598
2878         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
2879         string folding is of integral type.
2880
2881 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
2882
2883         * configure.ac (gnu_indirect_function): New test.
2884         * configure: Rebuilt.
2885         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
2886         * defaults.h (IFUNC_ASM_TYPE): Provide default.
2887
2888         * doc/extend.texi (Function Attributes): Document ifunc.
2889         * varasm.c (do_assemble_alias): Deal with ifuncs too.
2890
2891 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2892
2893         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
2894         epilogue instruction move.
2895
2896 2010-09-09  Jan Hubicka  <jh@suse.cz>
2897
2898         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
2899         command line to allow more partitions than input files.
2900
2901 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2902
2903         PR middle-end/44554
2904         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
2905
2906 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2907
2908         PR middle-end/40386
2909         * ira.c (pseudo_for_reload_consideration_p): Don't use
2910         flag_ira_share_spill_slots.
2911
2912 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2913
2914         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
2915         point zero operands that fit into a single GPR.
2916         (s390_preferred_reload_class): Ensure we only return general-purpose
2917         register classes.
2918         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
2919         floating-point zero operands into GPRs.
2920         ("*mov<mode>_64"): Likewise.
2921         ("mov<mode>"): Likewise using lhi.
2922
2923 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2924
2925         * config/s390/s390.c (s390_symref_operand_p): Return false for
2926         literal pool references.
2927         (s390_check_qrst_address): Update caller.
2928
2929 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
2930
2931         * config/i386/predicates.md (ext_register_operand): Check that
2932         SUBREG_REG is really a register before looking for REGNO.
2933         (reg_not_xmm0_operand): Handle SUBREGs correctly.
2934         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
2935
2936 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
2937
2938         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
2939         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
2940         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
2941         * print-rtl.c (print_rtx): Likewise.
2942         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
2943         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
2944         for ADDR_EXPR with non-addressable object.
2945         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
2946         (struct dw_val_struct): Add v.val_decl_ref.
2947         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
2948         Handle DW_OP_GNU_implicit_pointer.
2949         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
2950         (get_ref_die_offset_label): New function.
2951         (implicit_ptr_descriptor): New function.
2952         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
2953         (loc_descriptor): Likewise.
2954         (gen_variable_die): Put even definitions into decl_die_table.
2955         (resolve_addr_in_expr): Resolve still unresolved
2956         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
2957         return false.
2958         (dwarf2out_finish): Call output_location_lists after outputting
2959         .debug_info and .debug_abbrev instead of before.
2960
2961 2010-09-09  Roland McGrath  <roland@redhat.com>
2962
2963         * dwarf2out.c (DWARF_REF_SIZE): Define.
2964         (size_of_loc_descr): Use it for DW_OP_call_ref.
2965
2966 2010-09-09  Alan Modra  <amodra@gmail.com>
2967
2968         * doc/invoke.text: Reinstate mcmodel=medium.
2969         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2970         CMODEL_MEDIUM as default.
2971         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
2972         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
2973         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
2974         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
2975
2976 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2977
2978         PR target/45250
2979         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
2980         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
2981         (builtin_longjmp): Likewise.
2982         (allocate_stack): Use hard_frame_pointer_rtx instead of
2983         frame_pointer_rtx.
2984         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
2985         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
2986         (pa_can_eliminate): Likewise.
2987         (TARGET_INTERNAL_ARG_POINTER): Define.
2988         (TARGET_CAN_ELIMINATE): Define.
2989         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
2990         pointer.
2991         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
2992         (pa_internal_arg_pointer, pa_can_eliminate,
2993         pa_initial_elimination_offset): New.
2994         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
2995         (HARD_FRAME_POINTER_REGNUM): Set to register three.
2996         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2997         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
2998         Define.
2999         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
3000         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
3001         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
3002         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
3003         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
3004         new soft frame pointer.
3005         * config/pa/pa64-regs.h: Likewise.
3006
3007 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
3008
3009         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
3010         numerical constant.
3011         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
3012
3013 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
3014
3015         PR debug/45531
3016         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
3017
3018 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
3019
3020         PR debug/45419
3021         PR debug/45408
3022         * tree-pretty-print.c (dump_generic_node): Disregard top-level
3023         qualifiers in otherwise equal MEM_REF pointer types.
3024         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
3025         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
3026
3027 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3028
3029         PR target/44392
3030         * config/arm/arm.md (bswapsi2): Handle condition correctly
3031         for armv6 and optimize_size.
3032
3033 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3034
3035         PR other/18555
3036         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
3037
3038 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
3039
3040         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
3041         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
3042         ix86_expand_strlen, legitimate_pic_address_disp_p,
3043         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
3044         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
3045         ix86_check_movabs, ix86_secondary_memory_needed): Change function
3046         prototype to bool.
3047         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
3048         return_in_memory_ms_64, ix86_check_movabs,
3049         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
3050         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
3051         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
3052         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
3053         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
3054         ix86_secondary_memory_needed): Change to bool.  Return
3055         "true" and "false" values.
3056         * config/i386/i386.md: Return "true" and "false" values.
3057
3058 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3059
3060         * doc/sourcebuild.texi (Effective-Target Keywords): Document
3061         run_expensive_tests.
3062
3063 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3064
3065         * toplev.c (output_stack_usage): Use lbasename instead of basename.
3066
3067 2010-09-08  Martin Jambor  <mjambor@suse.cz>
3068
3069         PR other/45443
3070         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
3071         at -O3.
3072
3073 2010-09-08  Richard Guenther  <rguenther@suse.de>
3074
3075         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
3076         (visit): Adjust.
3077         (iterative_hash_gimple_type): Likewise.
3078         (gimple_type_hash): Likewise.
3079         (gimple_register_type): Likewise.
3080         (print_gimple_types_stats): Likewise.
3081         (free_gimple_type_tables): Likewise.
3082
3083 2010-09-08  Michael Matz  <matz@suse.de>
3084
3085         PR tree-optimization/43430
3086         * tree-vect-stmts.c (vectorizable_condition): Support multiple
3087         copies for conditional statements if it's not part of a reduction.
3088
3089 2010-09-08  Michael Matz  <matz@suse.de>
3090
3091         PR tree-optimization/33244
3092         * tree-ssa-sink.c (statement_sink_location): Don't sink into
3093         empty loop latches.
3094
3095 2010-09-08  Richard Guenther  <rguenther@suse.de>
3096
3097         PR tree-optimization/45578
3098         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
3099         Be more careful when transfering alignment information to
3100         the new induction variable.
3101         (copy_ref_info): Likewise.
3102
3103 2010-09-08  Richard Guenther  <rguenther@suse.de>
3104
3105         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
3106         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
3107
3108 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
3109
3110         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
3111         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
3112
3113 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3114
3115         PR doc/45587
3116         * doc/md.texi: Fixed modes on several standard pattern names.
3117
3118 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
3119
3120         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
3121         (ashl<mode>3): ...this.
3122         (loongson_psra<V_suffix>): Rename to...
3123         (ashr<mode>3): ...this.
3124         (loongson_psrl<V_suffix>): Rename to...
3125         (lshr<mode>3): ...this.
3126         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
3127         (CODE_FOR_loongson_psllw): Define.
3128         (CODE_FOR_loongson_psrlh): Define.
3129         (CODE_FOR_loongson_psrlw): Define.
3130         (CODE_FOR_loongson_psrah): Define.
3131         (CODE_FOR_loongson_psraw): Define.
3132
3133 2010-09-07  Richard Henderson  <rth@redhat.com>
3134
3135         * tree-vect-data-refs.c: Include tm_p.h.
3136         * Makefile.in (tree-vect-data-refs.o): Update deps.
3137         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
3138         Move delarations outside #ifdef RTX_CODE.
3139
3140 2010-09-07  Richard Henderson  <rth@redhat.com>
3141
3142         * final.c (rest_of_handle_final): Unconditionally do
3143         output_function_exception_table before assemble_end_function.
3144
3145 2010-09-07  Jan Hubicka  <jh@suse.cz>
3146
3147         * tree-inline.c (tree_inlinable_function_p): Do not test
3148         DECL_REPLACEABLE_P.
3149         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
3150         update_callee_keys, cgraph_decide_inlining): Test function availability.
3151         * cif-code.def (OVERWRITABLE): New code.
3152
3153 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
3154             Jack Howarth  <howarth@bromo.med.uc.edu>
3155
3156         PR target/36502
3157         PR target/42313
3158         PR target/44651
3159         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
3160         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
3161         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
3162         MAX macro.
3163
3164 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3165
3166         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
3167         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
3168
3169 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3170
3171         * config.gcc: Don't append t-android for Android targets.
3172
3173         * config/t-android: Removed.
3174
3175 2010-09-07  Richard Henderson  <rth@redhat.com>
3176
3177         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
3178         * doc/tm.texi.in: Add doc marker.
3179         * doc/tm.texi: Rebuild.
3180         * except.c (switch_to_exception_section): Always build.
3181         (output_one_function_exception_table): Move section switch,
3182         personality output, and label output ...
3183         (output_function_exception_table): ... here.  Use the new
3184         personality hook.
3185
3186         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
3187         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
3188         TARGET_ASM_INIT_SECTIONS): New.
3189         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
3190         make static.
3191         (TARGET_ASM_UNWIND_EMIT): Update to match.
3192         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
3193
3194         * config/arm/arm.c (arm_asm_emit_except_personality): New.
3195         (arm_asm_init_sections): New.
3196         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
3197
3198 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3199
3200         * config/arm/arm.md: Remove unused variable.
3201
3202 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
3203
3204         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3205         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
3206         (m32r_memory_move_cost): New function.
3207
3208 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3209
3210         * config.gcc: Append t-android for Android targets.
3211
3212         * config/t-android: New.
3213
3214 2010-09-07  Richard Henderson  <rth@redhat.com>
3215
3216         * target.def (unwind_emit_before_insn): New hook.
3217         * doc/tm.texi.in: Add @hook marker for it.
3218         * doc/tm.texi: Rebuild.
3219         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
3220
3221 2010-09-07  Martin Jambor  <mjambor@suse.cz>
3222
3223         PR fortran/43665
3224         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
3225         are any type attributes.
3226
3227 2010-09-07  Jan Hubicka  <jh@suse.cz>
3228
3229         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
3230         array_ref_low_bound in string access folding.
3231
3232 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
3233
3234         PR target/45206
3235         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
3236         eh_return fixup sequence.
3237
3238 2010-09-07  Jan Hubicka  <jh@suse.cz>
3239
3240         * gimple-fold.c (maybe_fold_reference): Verify that operand is
3241         gimple_min_invariant.
3242
3243 2010-09-07  Richard Guenther  <rguenther@suse.de>
3244
3245         PR middle-end/45569
3246         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
3247         nor CONSTRUCTOR can trap.
3248         * tree-complex.c (update_complex_assignment): Update EH info.
3249
3250 2010-09-07  Richard Guenther  <rguenther@suse.de>
3251
3252         PR middle-end/45569
3253         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
3254         * passes.c (execute_function_todo): Do not verify anything if
3255         we saw errors.
3256
3257 2010-09-07  Richard Guenther  <rguenther@suse.de>
3258
3259         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
3260
3261 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3262
3263         PR target/43137
3264         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
3265         New define_mode_attrs.
3266         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
3267         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
3268         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
3269         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
3270         Remove pool_range attribute.
3271         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
3272         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
3273         pool_range and neg_pool_range attributes.
3274         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
3275         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
3276         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
3277
3278 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3279
3280         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
3281         check glibc.
3282
3283 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3284
3285         PR target/22152
3286         * config/i386/mmx.md (*mov<mode>_internal_rex64,
3287         *mov<mode>_internal_avx, *mov<mode>_internal,
3288         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
3289         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
3290
3291 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
3292
3293         * c-typeck.c (do_warn_double_promotion): Remove.
3294         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
3295         Objective-C++ too.
3296
3297 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
3298
3299         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
3300         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
3301         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
3302         argument type to reg_class_t. Change result type to bool.
3303         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3304
3305 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3306
3307         PR libobjc/19850
3308         * gthr-posix.h (__gthread_objc_thread_detach): Use
3309         _objc_thread_attribs when detaching a thread.
3310         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
3311
3312 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3313
3314         PR target/45524
3315         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
3316         * configure: Regenerated.
3317
3318 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3319
3320         * combine.c (try_combine): Set subst_low_luid to i0.
3321
3322 2010-09-06  Richard Guenther  <rguenther@suse.de>
3323
3324         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
3325         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
3326         (build_aligned_type): Declare.
3327         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
3328         (check_aligned_type): New function.
3329         (build_aligned_type): Likewise.
3330         * expr.c (expand_assignment): Handle misaligned stores via
3331         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
3332         (expand_expr_real_1): Likewise.
3333         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
3334         * tree-vect-stmts.c (vectorizable_store): Do not build
3335         MISALIGNED_INDIRECT_REF but initialize alignment information.
3336         (vectorizable_load): Likewise.
3337         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
3338         handling.
3339         * cfgexpand.c (expand_debug_expr): Likewise.
3340         * dwarf2out.c (loc_list_from_tree): Likewise.
3341         * fold-const.c (maybe_lvalue_p): Likewise.
3342         (operand_equal_p): Likewise.
3343         (build_fold_addr_expr_with_type_loc): Likewise.
3344         * gimplify.c (gimplify_addr_expr): Likewise.
3345         (gimplify_expr): Likewise.
3346         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
3347         (verify_gimple_assign_single): Likewise.
3348         * tree-dump.c (dequeue_and_dump): Likewise.
3349         (tree_could_trap_p): Likewise.
3350         * tree-predcom.c (ref_at_iteration): Likewise.
3351         * tree-pretty-print.c (dump_generic_node): Likewise.
3352         (op_code_prio): Likewise.
3353         (op_symbol_code): Likewise.
3354         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3355         * tree-ssa-loop-im.c (for_each_index): Likewise.
3356         (gen_lsm_tmp_name): Likewise.
3357         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
3358         (find_interesting_uses_address): Likewise.
3359         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3360         * tree-ssa-operands.c (get_expr_operands): Likewise.
3361         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3362         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3363         (ao_ref_init_from_vn_reference): Likewise.
3364         * tree.c (staticp): Likewise.
3365         (build1_stat): Likewise.
3366         (reference_alias_ptr_type): Likewise.
3367         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3368         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
3369         MISALIGNED_INDIRECT_REF handling.
3370
3371 2010-09-06  Richard Guenther  <rguenther@suse.de>
3372
3373         PR tree-optimization/45534
3374         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
3375         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
3376         on the target.
3377         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
3378         valid on the target.
3379
3380 2010-09-06  Andreas Schwab  <schwab@redhat.com>
3381
3382         * configure.ac: Quote argument of AC_MSG_WARN.
3383         * configure: Regenerate.
3384
3385 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
3386
3387         * sel-sched.c (move_cond_jump): Correct arguments to
3388         maybe_tidy_empty_bb.
3389         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
3390
3391 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
3392
3393         PR rtl-optimization/44919
3394         * sel-sched.c (move_cond_jump): Remove assert, check that
3395         the several blocks case can only happen with mutually exclusive
3396         insns instead.  Rewrite the movement code to support moving through
3397         several basic blocks.
3398
3399 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3400
3401         * config/i386/i386.md (iptrsize): New mode attribute.
3402         (tp_seg): Ditto.
3403         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
3404         mode iterator.
3405         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
3406         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
3407         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
3408         (stack_tls_protect_set_<mode>): Ditto from
3409         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
3410         of thread base pointer load.
3411         (stack_tls_protect_test_<mode>): Ditto from
3412         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
3413         of thread base pointer load.
3414         (stack_protect_set): Rewrite using indirect functions.
3415         (stack_protect_test): Ditto.
3416         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
3417         (ix86_print_operand): Handle '@'.
3418
3419 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
3420
3421         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
3422         MINUS_EXPR.
3423
3424 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
3425
3426         * doc/invoke.texi: Document -Wdouble-promotion.
3427         * c-typeck.c (convert_arguments): Check for implicit conversions
3428         from float to double.
3429         (do_warn_double_promotion): New function.
3430         (build_conditional_expr): Use it.
3431         (build_binary_op): Likewise.
3432
3433 2010-09-05  Richard Guenther  <rguenther@suse.de>
3434
3435         PR tree-optimization/45535
3436         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
3437         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
3438         dereferencing it.
3439         (indirect_refs_may_alias_p): Likewise.
3440
3441 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
3442
3443         * config/sh/sh.c (sh_option_override): Make static.
3444         Adjust comments.  Declare.
3445         (sh_function_value_regno_p): Likewise.
3446         (sh_register_move_cost): Modify the arguments, make static.
3447         Adjust comments.  Declare.
3448         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
3449         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3450         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
3451         REGISTER_MOVE_COST): Delete.
3452         * config/sh/sh-protos.h (sh_override_options): Delete.
3453         (sh_register_move_cost): Delete.
3454         (sh_function_value_regno_p): Delete.
3455
3456 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
3457
3458         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
3459         m32r_function_value_regno_p): New functions.
3460         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3461         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
3462         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
3463         FUNCTION_VALUE_REGNO_P): Remove.
3464
3465 2010-09-04  Jan Hubicka  <jh@suse.cz>
3466
3467         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
3468         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
3469         fold_read_from_constant_string.
3470
3471         * gimple.h (canonicalize_constructor_val): Declare.
3472         * gimple-fold.c (canonicalize_constructor_val): New function.
3473         (get_symbol_constant_value):Use it.
3474         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3475
3476 2010-09-04  Jan Hubicka  <jh@suse.cz>
3477
3478         * tree-switch-conversion.c (build_one_array): Set constructor to be
3479         static.
3480         * varpool.c (varpool_finalize_decl): Compute const_value_known.
3481
3482 2010-09-04  Richard Guenther  <rguenther@suse.de>
3483
3484         PR bootstrap/45519
3485         * tree-flow.h (force_gimple_operand_1): Declare.
3486         (force_gimple_operand_gsi_1): Likewise.
3487         * gimplify.c (force_gimple_operand_1): New worker taking a
3488         gimple predicate for ...
3489         (force_gimple_operand): ... which now wraps it.
3490         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
3491         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
3492         last change.
3493         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
3494         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
3495         (create_mem_ref): Likewise.
3496
3497 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
3498
3499         * config/i386/predicates.md (sse_reg_operand): New predicate.
3500         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
3501         predicate for operand 1.
3502         (XFmode push splitter): Use fp_register_operand predicate
3503         for operand 1.
3504         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
3505         (SF-DF float_extend push splitter): Add reload_completed insn
3506         predicate.
3507         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
3508         MODEF mode macro.  Add reload_completed insn predicate.
3509
3510 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
3511
3512         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
3513         (struct df_extract_ref): Remove.
3514         (union df_ref_d): Remove extract_ref member.
3515         (df_ref_create): Remove last three arguments.
3516         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
3517         * df-scan.c (df_ref_record): Remove last three arguments, do not
3518         pass them to df_ref_create_structure.
3519         (df_uses_record): Remove first and last three arguments.  Replace
3520         first argument with DF_REF_REGULAR, adjust calls to remove the
3521         width, offset and mode.  Always call recursively on the second
3522         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
3523         (df_ref_create_structure): Remove first argument.
3524         (struct df_scan_problem_data): Remove ref_extract_pool.
3525         (df_scan_free_internal): Do not free it.
3526         (df_scan_alloc): Do not allocate it.
3527         (df_ref_create): Remove last three arguments, do not pass them to
3528         df_ref_create_structure.
3529         (df_free_ref): Remove DF_REF_EXTRACT case.
3530         (df_notes_rescan): Adjust call to df_uses_record.
3531         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3532         Remove DF_REF_EXTRACT case.
3533         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
3534         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
3535         and SUBREG definitions.
3536         (df_get_conditional_uses): Remove references to width/offset/mode,
3537         adjust call to df_ref_create_structure.
3538         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3539         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
3540         calls to df_uses_record and df_ref_record.
3541         * fwprop.c (update_df): Remove references to width/offset/mode,
3542         adjust call to df_ref_create.
3543
3544 2010-09-03  Jan Hubicka  <jh@suse.cz>
3545
3546         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
3547         (build_cdtor_fns): Update use of build_cdtor.
3548
3549 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
3550
3551         * doc/options.texi (SeparateAlias): Document.
3552         * opt-functions.awk (switch_flags): Handle SeparateAlias.
3553         * opth-gen.awk: Generate enumeration names for options marked
3554         SeparateAlias, but not for those marked Ignore.
3555         * opts-common.c (generate_canonical_option): Don't output separate
3556         argument for options marked CL_SEPARATE_ALIAS.
3557         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
3558         * opts.h (CL_SEPARATE_ALIAS): New.
3559         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3560         CL_COMMON): Adjust definitions.
3561         * config/i386/darwin.opt, config/mips/sde.opt: New.
3562         * common.opt (fdump-final-insns): New.
3563         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3564         i386/darwin.opt.
3565         (mips*-sde-elf*): Add mips/sde.opt.
3566         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
3567         -mno-data-in-code and -mcode-xonly here.
3568         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
3569         * gcc.c (option_map): Add "j" to --dump entry.
3570         (translate_options): Don't translate -d to -foutput-class-dir= here.
3571
3572 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
3573
3574         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
3575         DR_IS_WRITE.
3576         (compute_all_dependences): Same.
3577         (create_rdg_edge_for_ddr): Same.
3578         * tree-data-ref.h (DR_IS_WRITE): New.
3579         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
3580         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
3581         (write_memrefs_written_at_least_once): Same.
3582         * tree-predcom.c (suitable_component_p): Same.
3583         (determine_roots_comp): Same.
3584         (execute_load_motion): Same.
3585         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
3586         (vect_enhance_data_refs_alignment): Same.
3587         (vect_analyze_group_access): Same.
3588
3589 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3590
3591         PR testsuite/42843
3592         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
3593         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
3594
3595 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
3596
3597         * dwarf2out.c (file scope): Remove #if0'd code.
3598         (gen_subprogram_die): Same.
3599
3600 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3601
3602         PR middle-end/45484
3603         * dwarf2out.c (flush_queued_reg_saves): Rename to...
3604         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
3605         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
3606         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
3607         * config/i386/i386.c (output_set_got): Call it.
3608
3609 2010-09-03  Michael Matz  <matz@suse.de>
3610
3611         PR middle-end/45415
3612         * tree-sra.c (sra_modify_assign): If we modify the statement,
3613         say so.
3614
3615         * tree-ssa.c (verify_ssa): Check number of operands and links
3616         per statement to agree.
3617
3618 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3619             Iain Sandoe  <iains@gcc.gnu.org>
3620
3621         PR target/45476
3622         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
3623         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
3624         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3625
3626 2010-09-03  Richard Guenther  <rguenther@suse.de>
3627
3628         * lto-streamer-out.c (output_function): Output function
3629         start and end loci.
3630         * lto-streamer-in.c (input_function): Input function start
3631         and end loci.
3632
3633 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3634
3635         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
3636         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
3637         * configure: Regenerate.
3638         * aclocal.m4: Regenerate.
3639
3640 2010-09-03  Jan Hubicka  <jh@suse.cz>
3641
3642         PR lto/44812
3643         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
3644         on functions/variables in other partition.
3645
3646 2010-09-03  Jan Hubicka  <jh@suse.cz>
3647
3648         * cgraph.h (struct varpool_node): Add const_value_known.
3649         (varpool_decide_const_value_known): Declare.
3650         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
3651         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
3652         (input_varpool_node): Restore const_value_known.
3653         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
3654         initializer folding.
3655         * ipa.c (ipa_discover_readonly_nonaddressable_var,
3656         function_and_variable_visibility): Compute const_value_known.
3657         * gimple-fold.c (get_symbol_constant_value): Use varpool for
3658         initializer folding.
3659         * varpool.c (varpool_decide_const_value_known): New function.
3660
3661 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3662
3663         * config/i386/i386.md: Remove empty preparation statements
3664         from splitters.
3665
3666 2010-09-03  Jan Hubicka  <jh@suse.cz>
3667
3668         * passes.c (rest_of_decl_compilation): Do not add local vars into
3669         varpool.
3670         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
3671         static or extern vars are in varpool.
3672         (varpool_finalize_decl): Sanity check that only static vars are
3673         finalized.
3674
3675 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3676
3677         PR debug/45500
3678         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
3679         not just generic vectors with BLKmode.
3680
3681 2010-09-03  Richard Guenther  <rguenther@suse.de>
3682
3683         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
3684         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
3685         * tree.h (TMR_SYMBOL): Remove.
3686         (TMR_BASE, TMR_OFFSET): Adjust.
3687         (TMR_INDEX2): New.
3688         * alias.c (ao_ref_from_mem): Use TMR_BASE.
3689         * builtins.c (get_object_alignment): Merge TMR_BASE and
3690         TMR_SYMBOL handling.
3691         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
3692         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
3693         handling.  Also allow TARGET_MEM_REF as base address.
3694         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
3695         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
3696         base.  Gimplify TMR_INDEX2.
3697         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
3698         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3699         (get_addr_base_and_unit_offset): Likewise.
3700         * tree-eh.c (tree_could_trap_p): Likewise.
3701         * tree-pretty-print.c (dump_generic_node): Likewise.
3702         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
3703         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
3704         base to index2.
3705         (get_address_description): Reconstruct addres description
3706         from merged TMR_BASE and TMR_INDEX2.
3707         (maybe_fold_tmr): Fold propagated addresses.
3708         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
3709         MEM_REF and TARGET_MEM_REF paths.
3710         (indirect_refs_may_alias_p): Likewise.
3711         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
3712         instead of TMR_SYMBOL.
3713         * tree-ssa-operands.c (get_tmr_operands): Simplify.
3714         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
3715         according to changes ...
3716         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
3717         Split TARGET_MEM_REF into two fields plus the base.
3718         * tree.c (mem_ref_offset): Simplify.
3719         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
3720         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3721         Strip NOPs when folding MEM_REF addresses.
3722         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
3723         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
3724         (fold_gimple_assign): ... not here.
3725
3726 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
3727
3728         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
3729         * config/mips/mips.c (mips_shift_truncation_mask): New function.
3730         (TARGET_SHIFT_TRUNCATION_MASK): Define.
3731
3732 2010-09-02  Richard Henderson  <rth@redhat.com>
3733
3734         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
3735         instead of readelf in the test.
3736         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
3737         in the .debug_frame section for coff targets.
3738         * configure: Rebuild.
3739
3740 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3741
3742         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
3743         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
3744         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3745         (m32c_class_likely_spilled_p): Make static. Change argument type to
3746         reg_class_t. Change result type to bool.
3747
3748 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3749
3750         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
3751         to convert (double)(long) into a single FRIZ instruction or not
3752         when -ffast-math is used.
3753
3754         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
3755         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
3756         or FRIZ instruction if -ffast-math.
3757         * config/rs6000/rs6000.md (friz): Ditto.
3758
3759         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
3760
3761 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3762
3763         * opth-gen.awk (quote, comma): Remove unused variables.
3764
3765 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
3766
3767         * arm.c (arm_override_options): Correct fall-back code to use
3768         SUBTARGET_CPU_DEFAULT.
3769
3770 2010-09-02  Julian Brown  <julian@codesourcery.com>
3771
3772         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
3773         unspecs.
3774         (vcond<mode>, vcondu<mode>): New expanders.
3775         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
3776         comparisons with zero.
3777         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
3778         * config/arm/constraints.md (Dz): New constraint.
3779
3780 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3781
3782         * target.def (class_likely_spilled_p): New hook.
3783         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
3784         * doc/tm.texi: Regenerate.
3785         * targhooks.c (default_class_likely_spilled_p): New function.
3786         * targhooks.h (default_class_likely_spilled_p): Declare.
3787         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
3788         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
3789         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
3790         Use fixed_reg_set instead of fixed_regs.
3791         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3792         * calls.c (avoid_likely_spilled_reg): Ditto.
3793         * ira-conflicts.c (ira_build_conflicts): Ditto.
3794         * ira.c (update_equiv_regs): Ditto.
3795         * mode-switching.c (create_pre_exit): Ditto.
3796         * regmove.c (find_matches): Ditto.
3797         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3798         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
3799         (small_register_class_p): New inline function.
3800         (push_secondary_reload, find_reusable_reload, find_reloads): Use
3801         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
3802
3803         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
3804         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
3805         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3806
3807 2010-09-02  Richard Guenther  <rguenther@suse.de>
3808
3809         PR tree-optimization/44937
3810         PR tree-optimization/45412
3811         * ipa-split.c (split_function): Properly remove PHI nodes.
3812
3813 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3814
3815         * opts.h (struct cl_option): Add warn_message field.
3816         (struct cl_decoded_option): Add warn_message field.
3817         * doc/options.texi (Ignore, Warn): Document.
3818         * opt-functions.awk (needs_state_p): Don't consider aliases or
3819         ignored options to need state saved.
3820         * optc-gen.awk: Handle Warn and Ignore.
3821         * opth-gen.awk: Output OPT_SPECIAL_ignore.
3822         * opts-common.c (decode_cmdline_option): Set warn_message field.
3823         Handle ignored options.
3824         (decode_cmdline_options_to_array, generate_option,
3825         generate_option_input_file): Set warn_message field.
3826         (read_cmdline_option): Generate warnings from warn_message field.
3827         Handle ignored options.
3828         * common.opt (Wunreachable-code, fargument-alias,
3829         fargument-noalias, fargument-noalias-global,
3830         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
3831         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
3832         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
3833         ftree-salias): Mark Ignore.
3834         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
3835         -mintel-syntax and -mno-intel-syntax here.
3836         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
3837         using Warn.
3838         * opts.c (common_handle_option): Don't handle options marked as
3839         ignored.
3840         (enable_warning_as_error): Handle ignored options.
3841
3842 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3843
3844         PR driver/44076
3845         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
3846         alias_target fields.
3847         * opt-functions.awk (opt_sanitized_name): Don't handle
3848         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
3849         * optc-gen.awk: Generate alias fields.
3850         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
3851         Don't generate such constants for aliases.
3852         * opts-common.c (generate_canonical_option): New.
3853         (decode_cmdline_option): Handle aliases.  Use
3854         generate_canonical_option for known options instead of copying the
3855         input option text.
3856         * doc/options.texi (Alias): Document.
3857         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
3858         fstack-check, specs): Mark as aliases.
3859         * gcc.c (driver_handle_option): Canonicalize -L options to joined
3860         arguments.
3861         (driver_handle_option): Don't handle OPT_specs.
3862         * opts.c (common_handle_option): Don't handle options marked as
3863         aliases.
3864         (enable_warning_as_error): Handle aliases.
3865         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
3866         OPT_Wlarger_than_eq.
3867         * tree-optimize.c (tree_rest_of_compilation): Use
3868         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
3869
3870 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
3871
3872         * config/i386/i386.md (nonmemory_operand): New mode attribute.
3873         (push memory peephole2): Macroize peepholes using SWI mode iterator.
3874         (move immediate to memory peephole2): Macroize peepholes using
3875         SWI124 mode iterator.
3876         (non-pairable NOT peephole2): Macroize peepholes using SWI124
3877         mode iterator.
3878         (simple lea add peephole2): Macroize peepholes using SWI48
3879         mode iterator.
3880         (simple lea mult peephole2): Ditto.
3881         (imul by 3,5,9 to lea peephole2): Ditto.
3882         (mov $-1, reg peephole2): Macroize peepholes using SWI248
3883         mode iterator.
3884         (imul $32bit_imm,mem,reg peephole2): Ditto.
3885         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
3886
3887 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
3888
3889         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
3890
3891 2010-09-02  Olivier Hainque  <hainque@adacore.com>
3892
3893         PR middle-end/44763
3894         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
3895         (allocno_priority_compare_func): Use it instead of a straight
3896         difference computation over priorities.
3897
3898 2010-09-02  Andi Kleen  <ak@linux.intel.com>
3899
3900         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
3901
3902 2010-09-02  Ira Rosen  <irar@il.ibm.com>
3903
3904         * tree-vectorizer.h (get_later_stmt): New function.
3905         (vect_analyze_data_ref_dependences): Add argument.
3906         * tree-vect-loop.c (vect_analyze_loop): Update call to
3907         vect_analyze_data_ref_dependences.
3908         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
3909         New function.
3910         (vect_analyze_data_ref_dependence): Add argument for basic block
3911         dependencies. Check dependencies in basic block vectorization.
3912         (vect_analyze_data_ref_dependences): Add argument and update call to
3913         vect_analyze_data_ref_dependences.
3914         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
3915         (vect_bb_vectorizable_with_dependencies): New.
3916         (vect_slp_analyze_bb): Check dependencies in basic block.
3917         (vect_schedule_slp_instance): Insert stores before the last store in
3918         SLP instance.
3919
3920 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
3921
3922         PR target/45476
3923         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
3924         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3925
3926 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
3927
3928         PR middle-end/45458
3929         * bb-reorder.c (add_labels_and_missing_jumps): Treat
3930         bbs ending with throwing insns like blocks ending with a call.
3931         (fix_up_fall_thru_edges): Likewise.
3932
3933 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
3934
3935         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
3936         (m32c_function_arg_advance): Delete.
3937         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3938         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
3939         comments.  Take a const_tree and a bool.  Declare.
3940         (m32c_function_arg_advance): Likewise.
3941         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3942
3943 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
3944
3945         PR target/45476
3946         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
3947         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
3948         * config/i386/mingw32.h: ... here.
3949
3950 2010-09-01  Andi Kleen  <ak@linux.intel.com>
3951
3952         PR lto/45475
3953         * lto-streamer-in.c (lto_input_ts_target_option): Add.
3954         (lto_input_tree_pointers): Call lto_input_ts_target_option.
3955         * lto-streamer-out (lto_output_ts_target_option): Add.
3956         (lto_output_tree_pointers): Call lto_output_ts_target_option.
3957
3958 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
3959
3960         PR/target 45452
3961         * config/i386/cygwin.h: Change order of specified import libraries.
3962         * config/i386/mingw32.h: Likewise.
3963         * config/i386/t-cygwin: Likewise.
3964         * config/i386/t-mingw32: Likewise.
3965         * config/i386/t-mingw-w32: Likewise.
3966         * config/i386/t-mingw-w64: Likewise.
3967
3968 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3969
3970         * config/arm/neon-schedgen.ml (core): New type.
3971         (allCores): List of supported cores.
3972         (availability_table): Add supported cores.
3973         (collate_bypasses): Accept core as a parameter.
3974         (worst_case_latencies_and_bypasses): Accept core as a parameter.
3975         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
3976         and coreStr to get tune attribute and prefix for functional units.
3977         (emit_bypasses): Accept core name and use it.
3978         (calculate_per_core_availability_table): New.
3979         (filter_core): New.
3980         (calculate_core_availability_table): New.
3981         (main): Use calculate_core_availablity_table.
3982         * config/arm/cortex-a8-neon.md: Update copyright year.
3983         Regenerated from ml file and merged in.
3984         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
3985         cortex_a8_neon_mrc.
3986
3987 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
3988
3989         * Makefile.in (tree-switch-conversion.o): Update dependencies.
3990
3991 2010-09-01  Richard Guenther  <rguenther@suse.de>
3992
3993         * alias.c (ao_ref_from_mem): Adjust.
3994         * builtins.c (get_object_alignment): Likewise.
3995         * cfgexpand.c (expand_debug_expr): Likewise.
3996         * gimple.c (get_base_address): Likewise.
3997         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3998         (get_addr_base_and_unit_offset): Likewise.  Fix for
3999         both TMR_SYMBOL and TMR_BASE being set.
4000         * tree-eh.c (tree_could_trap_p): Likewise.
4001         * gimplify.c (gimplify_expr): Do not attempt to gimplify
4002         TMR_SYMBOL.  Always gimplify TMR_BASE.
4003         * tree-cfg.c (verify_types_in_gimple_reference): Verify
4004         TMR_BASE if there is a TMR_SYMBOL.
4005         * tree-pretty-print.c (dump_generic_node): Adjust.
4006         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
4007         (tree_mem_ref_addr): Likewise.
4008         (create_mem_ref_raw): Likewise.
4009         (move_fixed_address_to_symbol): Likewise.
4010         (create_mem_ref): Likewise.
4011         (dump_mem_address): Likewise.
4012         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
4013         Fix for both TMR_SYMBOL and TMR_BASE being set.
4014         (indirect_refs_may_alias_p): Likewise.
4015         * tree-ssa-operands.c (get_tmr_operands): Adjust.
4016         * tree.def (TARGET_MEM_REF): Adjust documentation.
4017
4018 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4019
4020         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
4021         Rename from X86_TUNE_ADD_ESP_4.
4022         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
4023         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
4024         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
4025         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
4026         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
4027         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
4028         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
4029         * config/i386/i386.c (initial_ix86_tune_features)
4030         <X86_TUNE_SINGLE_POP>: Invert members.
4031         <X86_TUNE_DOUBLE_POP>: Ditto.
4032         <X86_TUNE_SINGLE_PUSH>: Ditto.
4033         <X86_TUNE_DOUBLE_PUSH>: Ditto.
4034         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
4035         No longer exported.
4036         (push peephole2 patterns): Macroize peepholes using P mode iterator.
4037         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
4038         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
4039         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
4040
4041 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
4042
4043         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
4044         a volatile LHS if the constructor has only one element.
4045
4046 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
4047
4048         PR bootstrap/45321
4049         * tree.c (stdarg_p): Make fntype parameter const.
4050         * tree.h (stdarg_p): Likewise.
4051         (function_args_iterator): Remove unused fntype field.
4052         (function_args_iter_init): Do not initialize fntype
4053         field.  Make fntype parameter const.
4054
4055 2010-09-01  Richard Guenther  <rguenther@suse.de>
4056
4057         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
4058         estimate.
4059         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
4060         (execute_vrp): Compute number of iteration estimates.
4061         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
4062         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
4063         * tree-data-ref.c (estimated_loop_iterations): Adjust.
4064         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
4065         Infer loop bounds from undefined behavior based on a new parameter.
4066         (estimate_numbers_of_iterations): Likewise.
4067         (scev_probably_wraps_p): Adjust.
4068         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
4069
4070 2010-09-01  Nick Clifton  <nickc@redhat.com>
4071
4072         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
4073         where appropriate.
4074         (xstormy16_legitimate_address_p): Use true and false instead of 1
4075         and 0.
4076         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
4077         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
4078         magic constant 2.
4079         (xstormy16_expand_call): Fix comment at start of function.
4080
4081 2010-09-01  Nick Clifton  <nickc@redhat.com>
4082
4083         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
4084         when pushing accumulator register.
4085         (rx_get_stack_layout): Always save call clobbered registers inside
4086         interrupt handlers.
4087         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
4088
4089 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4090
4091         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
4092         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
4093
4094         * libgcc-std.ver (GCC_4.6.0): Define version.
4095
4096 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
4097
4098         * tree-nested.c (convert_all_function_calls): Iterate until after the
4099         sum of static chains in the nest doesn't change.
4100
4101 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
4102
4103         * config/m32c/m32c.c (classes_intersect): Remove.
4104         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
4105         reg_classes_intersect_p instead of classes_intersect.
4106         (class_can_hold_mode): Change arguments type from enum reg_class to
4107         reg_class_t.  Use reg_class_contents instead of class_contents.
4108         (m32c_register_move_cost): Make static. Change arguments type from
4109         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
4110         classes_intersect. Use reg_class_contents instead of class_contents.
4111         (m32c_memory_move_cost): Make static. Change arguments type from
4112         enum reg_class to reg_class_t.
4113         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4114         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4115         * config/m32c/m32c-protos.h (m32c_register_move_cost,
4116         m32c_memory_move_cost): Remove.
4117
4118 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4119
4120         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
4121         (arm_function_arg): Delete.
4122         (arm_needs_doubleword_align): Take a const_tree.
4123         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4124         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
4125         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
4126         (arm_function_arg): Make static.  Take a const_tree and a bool.
4127         (arm_function_arg_advance): Likewise.
4128         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4129
4130 2010-08-31  Andi Kleen  <ak@linux.intel.com>
4131
4132         * common.opt (fwhopr=): Update for -fwhopr=jobserver
4133         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
4134         * lto-wrapper.c (run_gcc): Add jobserver mode.
4135         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
4136         argument.
4137
4138 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
4139
4140         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
4141         (popsi1): Ditto.
4142         (*popdi1_epilogue): Ditto.
4143         (*popsi1_epilogue): Ditto.
4144         (popsi, popdi peephole2 patterns): Update peepholes for changed
4145         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
4146
4147         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
4148         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
4149
4150         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
4151         (override_options): Do not initialize removed ix86_gen_pop1.
4152         (gen_pop): New static function.
4153         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
4154         (release_scratch_register_on_entry): Ditto.
4155         (ix86_restore_reg_using_pop): Ditto.
4156         (ix86_expand_epilogue): Ditto.
4157
4158 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
4159
4160         PR middle-end/45461
4161         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
4162
4163 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4164
4165         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
4166         semicolons.
4167
4168 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4169
4170         * doc/extend.texi: Fix documentation of the return value of
4171         __builtin_choose_expr.
4172
4173 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4174
4175         * config/v850/v850-protos.h (function_arg): Delete.
4176         * config/v850/v850.h (FUNCTION_ARG): Delete.
4177         (FUNCTION_ARG_ADVANCE): Move code to...
4178         * config/v850/v850.c (v850_function_arg_advance): ...here.
4179         (v850_function_arg): Make static.  Take a const_tree and a bool.
4180         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4181
4182 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4183
4184         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
4185         these...
4186         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4187         ...and these...
4188         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
4189         ..to here..
4190         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4191         ...and here.
4192         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4193
4194 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4195
4196         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
4197         Delete.
4198         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4199         * config/rx/rx.c (rx_function_arg_size): Make static.
4200         (rx_function_arg): Likewise.
4201         (rx_function_arg_advance): New function.
4202         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4203
4204 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
4205
4206         * config/arm/arm.c (arm_override_options): Remove superfluous test.
4207         Fix indentation.
4208
4209 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
4210
4211         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
4212         (dwarf2out_decl) <CONST_DECL>: Likewise.
4213
4214 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
4215
4216         Stack usage support
4217         * common.opt (-fstack-usage): New option.
4218         * doc/invoke.texi (Debugging options): Document it.
4219         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
4220         allocate_dynamic_stack_space.
4221         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
4222         and propagate it to allocate_dynamic_stack_space.
4223         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
4224         * calls.c (initialize_argument_information): Pass TRUE as 4th
4225         argument to allocate_dynamic_stack_space.
4226         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
4227         to 1 when pushing a variable-sized argument onto the stack.  Pass
4228         TRUE as 4th argument to allocate_dynamic_stack_space.
4229         Update current_function_pushed_stack_size.
4230         (emit_library_call_value_1): Likewise.
4231         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
4232         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
4233         attempt to find an upper bound.  Remove redundant code for the
4234         SETJMP_VIA_SAVE_AREA case.
4235         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
4236         * function.h (struct stack_usage): New structure.
4237         (current_function_static_stack_size): New macro.
4238         (current_function_dynamic_stack_size): Likewise.
4239         (current_function_pushed_stack_size): Likewise.
4240         (current_function_dynamic_alloc_count): Likewise.
4241         (current_function_has_unbounded_dynamic_stack_size): Likewise.
4242         (current_function_allocates_dynamic_stack_space): Likewise.
4243         (struct function): Add new field 'su'.
4244         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
4245         add the value of the dynamic offset to the dynamic stack usage.
4246         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
4247         for variable-sized objects.
4248         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
4249         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
4250         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
4251         BUILT_IN_ALLOCA for variable-sized objects.
4252         * output.h (output_stack_usage): Declare.
4253         * toplev.c (stack_usage_file): New file pointer.
4254         (output_stack_usage): New function.
4255         (open_auxiliary_file): Likewise.
4256         (lang_dependent_init): Open file if flag_stack_usage is set.
4257         (finalize): Close file if stack_usage_file is not null.
4258         * tree.h (ALLOCA_FOR_VAR_P): New macro.
4259         * config/alpha/alpha.c (compute_frame_size): New function.
4260         (alpha_expand_prologue): Use it.
4261         (alpha_start_function): Likewise.
4262         (alpha_expand_epilogue): Likewise.  Set stack usage info.
4263         * config/i386/i386.c (ix86_expand_prologue): Likewise.
4264         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4265         * config/mips/mips.c (mips_expand_prologue): Likewise.
4266         * config/pa/pa.c (hppa_expand_prologue): Likewise.
4267         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4268         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4269
4270 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
4271
4272         PR tree-optimization/45427
4273         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
4274         Handle the case that the exit is never taken correctly.
4275         (number_of_iterations_ne): Pass exit_must_be_taken to
4276         number_of_iterations_ne_max.
4277
4278 2010-08-30  Catherine Moore  <clm@codesourcery.com>
4279
4280         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
4281         Infer -mdspr2 for the the 74K.
4282
4283 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
4284
4285         PR debug/45419
4286         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
4287
4288         PR middle-end/45423
4289         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
4290         and TRUTH_{AND,OR,XOR}_EXPR.
4291         * c-parser.c (c_parser_omp_atomic): Handle boolean
4292         {PRE,POST}_{INC,DEC}REMENT.
4293
4294 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
4295
4296         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
4297         (function_arg): Delete.
4298         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4299         (FUNCTION_INCOMING_ARG): Delete.
4300         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
4301         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
4302         and a bool.
4303         (function_arg): Rename to...
4304         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
4305         a bool.
4306         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
4307         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4308         (TARGET_FUNCTION_INCOMING_ARG): Define.
4309
4310 2010-08-30  Richard Guenther  <rguenther@suse.de>
4311
4312         PR tree-optimization/21602
4313         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
4314         using points-to information.
4315
4316 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
4317
4318         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
4319
4320 2010-08-30  Richard Guenther  <rguenther@suse.de>
4321
4322         PR tree-optimization/45449
4323         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
4324         variables.
4325
4326 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
4327
4328         * opts.h (CL_ERR_NEGATIVE): Define.
4329         * opts.c (unknown_option_callback): Don't postpone warnings for
4330         options marked with CL_ERR_NEGATIVE.
4331         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
4332         for negative versions of CL_REJECT_NEGATIVE options.
4333
4334 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
4335
4336         * config/i386/i386.md (zero_extendsidi2_1): Rename from
4337         zero_extendsidi2_32.
4338         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
4339         using SWI12 mode iterator.
4340         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
4341         to define_insn_and_split pattern.
4342         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
4343         using SWI24 mode iterator.
4344         (*zero_extendqi<mode>2_and): Macroize insn from
4345         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
4346         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
4347         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
4348         SWI24 mode iterator.
4349         (*zero_extendqi<mode>2_movzbl): Ditto from
4350         *zero_extendqi{hi,si}2_movzbl.
4351         (extendsidi2_1): Rename from extendsidi2_32.
4352         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
4353         SWI12 mode iterator.
4354
4355 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
4356
4357         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
4358         general purpose registers.
4359         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
4360         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
4361         with general purpose registers and memory operands.  Add associated
4362         CCImode post-reload splitter.
4363         * config/ia64/div.md: Change BImode to CCImode throughout.
4364
4365 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
4366
4367         * config/ia64/ia64.md (cstorebi4): Fix thinko.
4368
4369 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
4370
4371         * config/picochip/picochip.c (reorder_var_tracking_notes): This
4372         function was dropping debug insns which caused PR45299.
4373
4374 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
4375
4376         * config/i386/sse.md (extsuffix): New code attribute.
4377         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
4378         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
4379         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
4380         and sse4_1_zero_extendv4qiv4si2.
4381         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
4382         and sse4_1_zero_extendv2qiv2di2.
4383         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
4384         and sse4_1_zero_extendv4hiv4si2.
4385         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
4386         and sse4_1_zero_extendv2hiv2di2.
4387         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
4388         and sse4_1_zero_extendv2siv2di2
4389
4390         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
4391         using any_extend code iterator.
4392         (*avx_<s>mulv8hi3_highpart): Macroize insn from
4393         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
4394         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
4395
4396         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
4397         gen_sse4_1_sign_extend* functions.
4398         (struct builtin_description bdesc_args): Ditto.
4399
4400 2010-08-27  Xinliang David Li  <davidxl@google.com>
4401
4402         PR/45422
4403         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
4404         (iv_ca_set_no_cp): Update used inv expr count.
4405         (iv_ca_set_cp): Ditto.
4406         (iv_ca_new): Initialize new member.
4407         (iv_ca_free): Free memory.
4408
4409 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4410
4411         * config/sh/sh-protos.h (sh_function_arg): Delete.
4412         (sh_function_arg_advance): Delete.
4413         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4414         (PASS_IN_REG_P): Eliminate cast.
4415         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
4416         const_tree and a bool.
4417         (sh_function_arg): Likewise.
4418         (sh_output_mi_thunk): Call sh_function_arg_advance) and
4419         sh_function_arg.
4420         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4421
4422 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
4423             Kaz Kojima  <kkojima@gcc.gnu.org>
4424
4425         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
4426         when possible.
4427         (sh_expand_epilogue): Likewise.
4428         * config/sh/sh.md (movml_push_banked): New insn.
4429         (movml_pop_banked): Likewise.
4430
4431 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
4432
4433         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
4434         gen_regexp_oneof, gen_regexp_sequence): Use the string found
4435         in vector element 0 rather than the original string when there's
4436         only one element.
4437         (gen_regexp): Remove extra semicolon.
4438
4439         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
4440         thumb2_movsf_vfp): Set attribute "insn".
4441         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
4442         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
4443         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
4444         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
4445         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
4446         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
4447         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
4448         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
4449         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
4450         if_not_arith, if_arith_not, cond_move_not): Likewise.
4451
4452 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4453
4454         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
4455         New declaration.
4456         (rs6000_allocate_stack_temp): Ditto.
4457         (rs6000_expand_convert_si_to_sfdf): Ditto.
4458
4459         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
4460         line.  Update the options set if power6 or power7 server/embedded
4461         type options are used.  If we give a warning for no vsx under
4462         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
4463         (rs6000_allocate_stack_temp): New function to allocate a stack
4464         tempoary and adjust the address so it meets either REG+OFFSET or
4465         REG+REG addressing requirements.
4466         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
4467         that they can be used with the LFIWAX/LFIWZX instrucitons.
4468         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
4469         converting signed/unsigned SImode to either SFmode/DFmode.
4470
4471         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
4472         whether certain instructions can be generated.
4473         (TARGET_FCTIDZ): Ditto.
4474         (TARGET_STFIWX): Ditto.
4475         (TARGET_LFIWAX): Ditto.
4476         (TARGET_LFIWZX): Ditto.
4477         (TARGET_FCFIDS): Ditto.
4478         (TARGET_FCFIDU): Ditto.
4479         (TARGET_FCFIDUS): Ditto.
4480         (TARGET_FCTIDUZ): Ditto.
4481         (TARGET_FCTIWUZ): Ditto.
4482
4483         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
4484         (UNSPEC_FCTID): Ditto.
4485         (UNSPEC_LFIWAX): Ditto.
4486         (UNSPEC_LFIWZX): Ditto.
4487         (UNSPEC_FCTIWUZ): Ditto.
4488         (rreg): Use correct constraints.
4489         (SI_CONVERT_FP): New mode attribute for floating point conversion
4490         tests.
4491         (E500_CONVERT): Ditto.
4492         (lfiwax): New insns for converting from integer to floating point
4493         utilizing newer instructions.  Attempt to optimize conversions
4494         that come from memory so that we don't load the value into a GPR,
4495         spill it to the stack and reload it into a FPR.
4496         (floatsi<mode>2_lfiwax): Ditto.
4497         (floatsi<mode>2_lfiwax_mem): Ditto.
4498         (floatsi<mode>2_lfiwax_mem2): Ditto.
4499         (lfiwzx): Ditto.
4500         (floatunssi<mode>2_lfiwzx): Ditto.
4501         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4502         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4503         (floatdidf2_mem): Ditto.
4504         (floatunsdidf2_fcfidu): Ditto.
4505         (floatunsdidf2_mem): Ditto.
4506         (floatunsdisf2): Ditto.
4507         (floatunsdisf2_fcfidus): Ditto.
4508         (floatunsdisf2_mem): Ditto.
4509         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
4510         Use FCFID on 32-bit hosts that support it.
4511         (floatsidf2_internal): Ditto.
4512         (floatunssisf2): Ditto.
4513         (floatunssidf2): Ditto.
4514         (floatunssidf2_internal): Ditto.
4515         (floatsisf2): Ditto.
4516         (floatdidf2): Ditto.
4517         (floatdidf2_fpr): Ditto.
4518         (floatunsdidf2): Ditto.
4519         (floatdisf2): Ditto.
4520         (floatdisf2_fcfids): Ditto.
4521         (floatdisf2_internal1): Ditto.
4522         (fixuns_truncsfsi2): Delete, merge into common pattern for both
4523         SF/DF.  Add power7 support.
4524         (fix_truncsfsi2): Ditto.
4525         (fixuns_truncdfsi2): Ditto.
4526         (fixuns_truncdfdi2): Ditto.
4527         (fix_truncdfsi2): Ditto.
4528         (fix_truncdfsi2_internal): Ditto.
4529         (fix_truncdfsi2_internal_gfxopt): Ditto.
4530         (fix_truncdfsi2_mfpgpr): Ditto.
4531         (fctiwz): Ditto.
4532         (btruncdf2): Ditto.
4533         (btruncdf2_fpr): Ditto.
4534         (btructsf2): Ditto.
4535         (ceildf2): Ditto.
4536         (ceildf2_fpr): Ditto.
4537         (ceilsf2): Ditto.
4538         (floordf2): Ditto.
4539         (floordf2_fpr): Ditto.
4540         (floorsf2): Ditto.
4541         (rounddf2): Ditto.
4542         (rounddf2_fpr): Ditto.
4543         (roundsf2): Ditto.
4544         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
4545         (fix_trunc<mode>di2): Ditto.
4546         (fixuns_trunc<mode>si2): Ditto.
4547         (fixuns_trunc<mode>di2): Ditto.
4548         (fctiwz_<mode>): Ditto.
4549         (btrunc<mode>2): Ditto.
4550         (btrunc<mode>2_fpr): Ditto.
4551         (ceil<mode>2): Ditto.
4552         (ceil<mode>2_fpr): Ditto.
4553         (floor<mode>2): Ditto.
4554         (float<mode>2_fpr): Ditto.
4555         (round<mode>2): Ditto.
4556         (round<mode>2_fpr): Ditto.
4557         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
4558         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4559         (fix_truncdfsi2_internal): Ditto.
4560         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
4561         converted value on stack, loaded into GPR, and then stored into
4562         the final destination.
4563         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
4564         FCTIDZ.
4565         (lrint<mode>di2): New insn, provide the lrint builtin functions.
4566         (ftruncdf2): Delete, unused.
4567         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
4568
4569         * config/rs6000/vsx.md (toplevel): Update copyright year.
4570         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
4571         (VSr3): Ditto.
4572
4573 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
4574             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4575
4576         * gengtype.c (output_type_enum): Test the right union member.
4577
4578 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
4579
4580         PR target/41484
4581         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
4582         operands for operand 1.
4583         (sse4_1_extendv4qiv4si2): Ditto.
4584         (sse4_1_extendv2qiv2di2): Ditto.
4585         (sse4_1_extendv4hiv4si2): Ditto.
4586         (sse4_1_extendv2hiv2di2): Ditto.
4587         (sse4_1_extendv2siv2di2): Ditto.
4588         (sse4_1_zero_extendv8qiv8hi2): Ditto.
4589         (sse4_1_zero_extendv4qiv4si2): Ditto.
4590         (sse4_1_zero_extendv2qiv2di2): Ditto.
4591         (sse4_1_zero_extendv4hiv4si2): Ditto.
4592         (sse4_1_zero_extendv2hiv2di2): Ditto.
4593         (sse4_1_zero_extendv2siv2di2): Ditto.
4594         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
4595         (*sse4_1_extendv4qiv4si2): Ditto.
4596         (*sse4_1_extendv2qiv2di2): Ditto.
4597         (*sse4_1_extendv4hiv4si2): Ditto.
4598         (*sse4_1_extendv2hiv2di2): Ditto.
4599         (*sse4_1_extendv2siv2di2): Ditto.
4600         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
4601         (*sse4_1_zero_extendv4qiv4si2): Ditto.
4602         (*sse4_1_zero_extendv2qiv2di2): Ditto.
4603         (*sse4_1_zero_extendv4hiv4si2): Ditto.
4604         (*sse4_1_zero_extendv2hiv2di2): Ditto.
4605         (*sse4_1_zero_extendv2siv2di2): Ditto.
4606
4607 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4608
4609         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
4610         (mips_function_arg): Delete.
4611         (mips_function_arg_boundary): Take a const_tree.
4612         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
4613         (mips_arg_info): Likewise.
4614         (mips_setup_incoming_varargs): Call mips_function_arg_advance
4615         instead of FUNCTION_ARG_ADVANCE.
4616         (mips_function_arg_advance): Adjust prototype.  Make static.
4617         (mips_function_arg): Likewise.
4618         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4619         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
4620
4621 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4622
4623         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4624         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
4625         (function_arg): Delete.
4626         (function_arg_boundary): Take a const_tree.
4627         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
4628         (rs6000_spe_function_arg): Likewise.
4629         (rs6000_parm_start): Likewise.
4630         (rs6000_arg_size): Likewise.
4631         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
4632         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
4633         (rs6000_mixed_function_arg): Likewise.
4634         (function_arg): Rename to...
4635         (rs6000_function_arg): ...this.
4636         (function_arg_advance): Rename to...
4637         (rs6000_function_arg_advance_1): ...this
4638         (rs6000_function_arg_advance): New function.  Call it.
4639         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
4640         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
4641         (rs6000_function_value): Likewise.
4642         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4643
4644 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4645
4646         * config/arm/arm.md (enabled): Test the value of arch_enabled
4647         rather than just using it.
4648
4649 2010-08-27  Olivier Hainque  <hainque@adacore.com>
4650             Eric Botcazou  <ebotcazou@adacore.com>
4651
4652         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
4653         cover all the possible offsets from this base.
4654         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
4655
4656 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
4657
4658         PR tree-optimization/44485
4659         * calls.c (flags_from_decl_or_type): For const or pure
4660         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
4661         together with ECF_CONST resp. ECF_PURE.
4662         * builtins.c (expand_builtin): Use flags_from_decl_or_type
4663         instead of querying flags directly.
4664         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
4665         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
4666
4667 2010-08-26  Richard Guenther  <rguenther@suse.de>
4668
4669         PR tree-optimization/45255
4670         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
4671         and externals are also invariant.
4672
4673 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
4674
4675         PR rtl-optimization/44858
4676         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
4677         newi2pat, make sure they don't affect newpat.
4678
4679         PR rtl-optimization/45400
4680         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
4681         SUBREG_REG if both modes are of MODE_INT class.
4682
4683 2010-08-25  Julian Brown  <julian@codesourcery.com>
4684
4685         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
4686         * config/arm/arm.md (generic_sched): No for Cortex-A5.
4687         (generic_vfp): Likewise.
4688         (cortex-a5.md): Include.
4689         * config/arm/cortex-a5.md: New.
4690
4691 2010-08-25  Richard Guenther  <rguenther@suse.de>
4692
4693         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
4694         * gimple.c (gimple_get_alias_set): Remove special handling
4695         for pointers.
4696
4697 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4698
4699         PR middle-end/45355
4700         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
4701         dead_or_set_p when computing i0_feeds_i2_n.
4702
4703         * combine.c (find_split_point): Undo canonicalization of multiply-add
4704         to (minus x (mult)) when it seems likely that this will increase the
4705         chances of a split.
4706
4707 2010-08-25  Richard Guenther  <rguenther@suse.de>
4708
4709         PR lto/44562
4710         * lto-streamer.c (lto_record_common_node): Do not mess with
4711         TYPE_CANONICAL when not in lto.
4712         * gimple.c (gimple_register_type): Likewise.
4713
4714 2010-08-25  Richard Guenther  <rguenther@suse.de>
4715
4716         PR tree-optimization/45316
4717         * tree-ssa-pre.c (eliminate): Properly clean EH info.
4718
4719 2010-08-25  Richard Guenther  <rguenther@suse.de>
4720
4721         PR tree-optimization/45393
4722         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
4723         and clean EH info.  Avoid SSA update.
4724         (execute_cse_sincos): Cleanup the CFG if it has changed.
4725
4726 2010-08-25  Richard Guenther  <rguenther@suse.de>
4727
4728         PR middle-end/45379
4729         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
4730         TARGET_MEM_REF in alignment computation.
4731
4732 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
4733
4734         PR tree-optimization/45059
4735         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
4736         type conversions from newop{1,2}.  Assert t is a comparison and
4737         newop{1,2} after the stripping are gimple vals.
4738
4739 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
4740
4741         * config/arm/iterators.md (VU, SE, V_widen_l): New.
4742         (V_unpack, US): New.
4743         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
4744         (vec_unpack<US>_lo_<mode>): Likewise.
4745         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
4746         (neon_vec_unpack<US>_lo_<mode>): Likewise.
4747         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
4748         (vec_widen_<US>mult_hi_<mode>): Likewise.
4749         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
4750         (neon_vec_<US>mult_hi_<mode>"): Likewise.
4751         (neon_unpack<US>_<mode>): Widening move intermediate step for
4752         vectorizing without -mvectorize-with-neon-quad.
4753         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
4754         for vectorizing without -mvectorize-with-neon-quad.
4755         * config/arm/predicates.md (vect_par_constant_high): Check for
4756         high-half lanes of a vector.
4757         (vect_par_constant_low): Check for low-half lanes of a vector.
4758
4759 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4760
4761         * tree-if-conv.c (struct ifc_dr): New.
4762         (IFC_DR): New.
4763         (DR_WRITTEN_AT_LEAST_ONCE): New.
4764         (DR_RW_UNCONDITIONALLY): New.
4765         (memref_read_or_written_unconditionally): Use the cached values
4766         when possible.
4767         (write_memref_written_at_least_once): Same.
4768         (if_convertible_loop_p): Initialize and free DR->aux fields.
4769
4770 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4771
4772         * gimple.c (gimple_could_trap_p_1): Not static anymore.
4773         Pass an extra bool parameter include_mem.
4774         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
4775         (gimple_assign_rhs_could_trap_p): Same.
4776         * gimple.h (gimple_could_trap_p_1): Declared.
4777         * tree-data-ref.h (same_data_refs_base_objects): New.
4778         (same_data_refs): New.
4779         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
4780         (write_memrefs_written_at_least_once): New.
4781         (ifcvt_memrefs_wont_trap): New.
4782         (operations_could_trap): New.
4783         (ifcvt_could_trap_p): New.
4784         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
4785         Gets a vector of data refs.
4786         (if_convertible_stmt_p): Same.
4787         (if_convertible_loop_p_1): New.
4788         (if_convertible_loop_p): Call if_convertible_loop_p_1.
4789
4790 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4791
4792         * common.opt (ftree-loop-if-convert-stores): New flag.
4793         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
4794         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
4795         the created statement before GSI.
4796         (if_convertible_phi_p): Allow virtual phi nodes when
4797         flag_loop_if_convert_stores is set.
4798         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
4799         Do not handle types that do not match is_gimple_reg_type.
4800         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
4801         when flag_loop_if_convert_stores is set, as LHS can contain
4802         memory refs.
4803         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
4804         to if_convertible_gimple_assign_stmt_p.
4805         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
4806         (replace_phi_with_cond_gimple_assign_stmt): Renamed
4807         predicate_scalar_phi.  Do not handle virtual phi nodes.
4808         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
4809         Call predicate_scalar_phi.
4810         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
4811         just after the labels for flag_loop_if_convert_stores, otherwise
4812         insert the predicate in the end of the BB.
4813         (predicate_mem_writes): New.
4814         (combine_blocks): Call predicate_all_scalar_phis.  When
4815         flag_loop_if_convert_stores is set, call predicate_mem_writes.
4816         (tree_if_conversion): Call mark_sym_for_renaming when
4817         flag_loop_if_convert_stores is set.
4818         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
4819         flag_loop_if_convert_stores is set.
4820
4821 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
4822
4823         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
4824         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
4825         (pa_function_value): Make static.
4826         (override_options): Rename to...
4827         (pa_option_override): ...this. Make static.
4828         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
4829         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
4830         TARGET_OPTION_OVERRIDE): Define.
4831         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
4832         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
4833         Remove.
4834         * config/pa/pa-protos.h (override_options): Remove.
4835
4836 2010-08-24  Richard Guenther  <rguenther@suse.de>
4837
4838         PR middle-end/45379
4839         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
4840         if addr->index is NULL or zero.
4841         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
4842         TARGET_MEM_REF more properly.
4843         (indirect_ref_may_alias_decl_p): Likewise.
4844         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
4845         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
4846
4847 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
4848
4849         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
4850         (m32c_override_options): Rename to...
4851         (m32c_option_override): ...this. Make static.
4852         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
4853         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
4854         Remove.
4855         * config/m32c/m32c-protos.h (m32c_override_options,
4856         m32c_function_value_regno_p): Remove.
4857
4858 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
4859
4860         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
4861         Fix a typo in a previous commit.
4862
4863 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
4864
4865         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
4866         Pre-initialize innerloop_iters to one.
4867
4868 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
4869
4870         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
4871         existing static function global.
4872
4873         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
4874         is changed to global.
4875
4876         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
4877         may_be_nonaddressable_p on base, and don't collect this reference
4878         if the address of the base could not be taken.
4879
4880 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4881
4882         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
4883         enable the compiler to autovectorize mathmetical functions for
4884         power7 using the Mathematical Acceleration Subsystem library.
4885
4886         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
4887         handle which vector math library we have.
4888         (rs6000_override_options): Add -mveclibabi=mass support.
4889         (rs6000_builtin_vectorized_libmass): New function to handle auto
4890         vectorizing math functions that are in the MASS library.
4891         (rs6000_builtin_vectorized_function): Call it.
4892
4893         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4894         -mveclibabi=mass.
4895
4896 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4897
4898         PR boehm-gc/34544
4899         * gthr-posix.h (__gthread_active_init): Delete.
4900         (__gthread_active_p): Do activity check here.
4901         Don't include errno.h on hppa-hpux.  Update comment.
4902         * gthr-posix95.h (__gthread_active_init): Delete.
4903         (__gthread_active_p): Do activity check here.
4904         Don't include errno.h on hppa-hpux.  Update comment.
4905         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
4906         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
4907         add -lpthread when -mt or -pthread is specified.
4908         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
4909         (LINK_GCC_C_SEQUENCE_SPEC): Define.
4910         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
4911         (stublib.c, pthread_default_stacksize_np-stub.o,
4912         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
4913         $(T)libgcc_stub.a): Add methods.
4914         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
4915         (stublib.c, pthread_default_stacksize_np-stub.o,
4916         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
4917         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
4918         pthread_mutex_unlock): New stubs.
4919
4920 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
4921
4922         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
4923         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
4924         options.
4925         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
4926         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
4927         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
4928         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
4929         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
4930         "-l".
4931         * cppspec.c: Include opts.h.
4932         (lang_specific_driver): Use cl_decoded_option structures.
4933         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
4934         * doc/tm.texi: Regenerate.
4935         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
4936         (driver_handle_option): Allow driver options needing no special
4937         processing.
4938         (process_command): Decode options before call to
4939         lang_specific_driver.  Pass decoded options to
4940         lang_specific_driver.
4941         * gcc.h (lang_specific_driver): Update prototype.
4942         * gccspec.c: Include opts.h.
4943         (lang_specific_driver): Use cl_decoded_option structures.
4944         * opts-common.c (option_ok_for_language, generate_option,
4945         generate_option_input_file): New.
4946         (decode_cmdline_option): Use option_ok_for_language.
4947         (decode_cmdline_options_to_array): Use generate_option_input_file.
4948         (handle_generated_option): Use generate_option.
4949         * opts.h (generate_option, generate_option_input_file): Declare.
4950
4951 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
4952
4953         * config/mips/mips.c (mips_override_options): Rename to...
4954         (mips_option_override): ...this. Make static.
4955         (TARGET_OPTION_OVERRIDE): Define.
4956         (mips_in_small_data_p): Update comment.
4957         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
4958         (FIXED_REGISTERS): Update comment.
4959         * config/mips/mips-protos.h (mips_override_options): Remove.
4960
4961 2010-08-21  Olivier Hainque  <hainque@adacore.com>
4962
4963         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
4964
4965 2010-08-21  Olivier Hainque  <hainque@adacore.com>
4966
4967         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
4968         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
4969
4970 2010-08-20  Jan Hubicka  <jh@suse.cz>
4971
4972         * tree-pass.h (pass_ipa_cdtor_merge): New function.
4973         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
4974         heap allocated.
4975         (record_cdtor_fn): Move to ipa.c; do not test for
4976         have_ctors_dtors.
4977         (build_cdtor): Move to ipa.c; add code avoiding construction
4978         when target have ctors/dtors and there is only one ctor/dtor at given
4979         priority.
4980         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
4981         sort; reverse order of constructors.
4982         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
4983         (cgraph_finalize_function): Do not call record_cdtor_fn.
4984         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
4985         (cgraph_build_static_cdtor): Move to ipa.c.
4986         * ipa.c: Include target.h and tree-iterator.h.
4987         (cgraph_build_static_cdtor, static_ctors, static_dtors,
4988         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
4989         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
4990         pass_ipa_cdtor_merge): New.
4991         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
4992         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
4993         bounds access.
4994
4995 2010-08-20  Jan Hubicka  <jh@suse.cz>
4996
4997         PR c++/45307
4998         PR c++/17736
4999         * cgraph.h (cgraph_only_called_directly_p,
5000         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
5001         static cdtors.
5002         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
5003         are not needed.
5004         (cgraph_finalize_function): Static cdtors are reachable.
5005         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
5006
5007 2010-08-20  Jan Hubicka  <jh@suse.cz>
5008
5009         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
5010         flag_wpa.
5011         * lto-streamer-out.c (lto_output): Likewise.
5012         * passes.c (ipa_write_optimization_summaries): Initialize statement
5013         uids.
5014
5015 2010-08-20  Olivier Hainque  <hainque@adacore.com>
5016
5017         * tree.h (alias_diag_flags): New enum.
5018         (alias_pair): Add an 'emitted_diags' field.
5019         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
5020         (assemble_alias): Initialize emitted_diags of new pairs.
5021
5022 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
5023
5024         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
5025         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5026         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5027         (STACK_CHECK_PROTECT): Define.
5028         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
5029         (output_probe_stack_range): Likewise.
5030         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
5031         builtin stack checking is enabled.
5032         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
5033         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
5034         (probe_stack_range): New insn.
5035
5036 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5037
5038         PR target/45336
5039         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
5040         short first.
5041
5042         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
5043         char first.
5044
5045 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5046
5047         PR target/45336
5048         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
5049         to cover zero extension into 64-bit register.
5050         (*sse2_pextrw): Likewise.
5051         (*sse4_1_pextrd_zext): New insn.
5052
5053 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
5054
5055         revert r163410, partially revert r163267.
5056         * config/rs6000/darwin.h (LIB_SPEC): Remove.
5057         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
5058         Darwin versions.
5059
5060 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5061
5062         PR middle-end/44974
5063         * builtins.c (expand_builtin): Don't optimize away
5064         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
5065
5066 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
5067
5068         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
5069         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
5070         alternative 1 of operand 2.
5071
5072 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5073             Paolo Bonzini  <bonzini@gnu.org>
5074
5075         * simplify-rtx.c (simplify_unary_operation_1): Optimize
5076         (sign_extend (zero_extend (...)) and
5077         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
5078
5079 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5080
5081         PR rtl-optimization/45353
5082         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
5083         after bb_note is a BARRIER.
5084
5085 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
5086
5087         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
5088         linking libgcc.a.
5089
5090 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5091             Michael Matz  <matz@suse.de>
5092
5093         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
5094
5095 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
5096
5097         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
5098         (ggc_mark_roots): ...here.
5099
5100 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
5101
5102         * vec.h (FOR_EACH_VEC_ELT): Define.
5103         * c-decl.c: Use it.
5104         * cfgloop.c: Likewise.
5105         * cfgloopmanip.c: Likewise.
5106         * cgraph.c: Likewise.
5107         * cgraphunit.c: Likewise.
5108         * combine.c: Likewise.
5109         * config/bfin/bfin.c: Likewise.
5110         * config/mips/mips.c: Likewise.
5111         * config/rs6000/rs6000.c: Likewise.
5112         * dbxout.c: Likewise.
5113         * df-scan.c: Likewise.
5114         * dominance.c: Likewise.
5115         * dse.c: Likewise.
5116         * dwarf2out.c: Likewise.
5117         * except.c: Likewise.
5118         * expr.c: Likewise.
5119         * function.c: Likewise.
5120         * gcse.c: Likewise.
5121         * genattr.c: Likewise.
5122         * ggc-common.c: Likewise.
5123         * gimplify.c: Likewise.
5124         * graphite-blocking.c: Likewise.
5125         * graphite-clast-to-gimple.c: Likewise.
5126         * graphite-dependences.c: Likewise.
5127         * graphite-interchange.c: Likewise.
5128         * graphite-poly.c: Likewise.
5129         * graphite-scop-detection.c: Likewise.
5130         * graphite-sese-to-poly.c: Likewise.
5131         * graphite.c: Likewise.
5132         * haifa-sched.c: Likewise.
5133         * ifcvt.c: Likewise.
5134         * implicit-zee.c: Likewise.
5135         * ipa-prop.c: Likewise.
5136         * ipa-struct-reorg.c: Likewise.
5137         * ipa.c: Likewise.
5138         * ira-build.c: Likewise.
5139         * ira-color.c: Likewise.
5140         * ira-emit.c: Likewise.
5141         * lambda-code.c: Likewise.
5142         * loop-invariant.c: Likewise.
5143         * loop-unroll.c: Likewise.
5144         * lower-subreg.c: Likewise.
5145         * lto-cgraph.c: Likewise.
5146         * lto-opts.c: Likewise.
5147         * lto-streamer-in.c: Likewise.
5148         * lto-streamer-out.c: Likewise.
5149         * lto-streamer.c: Likewise.
5150         * lto-symtab.c: Likewise.
5151         * matrix-reorg.c: Likewise.
5152         * opts.c: Likewise.
5153         * predict.c: Likewise.
5154         * print-tree.c: Likewise.
5155         * sdbout.c: Likewise.
5156         * sel-sched-dump.c: Likewise.
5157         * sel-sched-ir.c: Likewise.
5158         * sel-sched.c: Likewise.
5159         * sese.c: Likewise.
5160         * stor-layout.c: Likewise.
5161         * tree-cfg.c: Likewise.
5162         * tree-cfgcleanup.c: Likewise.
5163         * tree-chrec.c: Likewise.
5164         * tree-data-ref.c: Likewise.
5165         * tree-emutls.c: Likewise.
5166         * tree-inline.c: Likewise.
5167         * tree-into-ssa.c: Likewise.
5168         * tree-loop-distribution.c: Likewise.
5169         * tree-loop-linear.c: Likewise.
5170         * tree-mudflap.c: Likewise.
5171         * tree-outof-ssa.c: Likewise.
5172         * tree-parloops.c: Likewise.
5173         * tree-predcom.c: Likewise.
5174         * tree-pretty-print.c: Likewise.
5175         * tree-scalar-evolution.c: Likewise.
5176         * tree-ssa-live.c: Likewise.
5177         * tree-ssa-loop-im.c: Likewise.
5178         * tree-ssa-loop-ivcanon.c: Likewise.
5179         * tree-ssa-loop-ivopts.c: Likewise.
5180         * tree-ssa-loop-manip.c: Likewise.
5181         * tree-ssa-loop-niter.c: Likewise.
5182         * tree-ssa-loop-prefetch.c: Likewise.
5183         * tree-ssa-phiprop.c: Likewise.
5184         * tree-ssa-pre.c: Likewise.
5185         * tree-ssa-reassoc.c: Likewise.
5186         * tree-ssa-sccvn.c: Likewise.
5187         * tree-ssa-structalias.c: Likewise.
5188         * tree-ssa.c: Likewise.
5189         * tree-vect-data-refs.c: Likewise.
5190         * tree-vect-loop-manip.c: Likewise.
5191         * tree-vect-loop.c: Likewise.
5192         * tree-vect-patterns.c: Likewise.
5193         * tree-vect-slp.c: Likewise.
5194         * tree-vect-stmts.c: Likewise.
5195         * tree-vrp.c: Likewise.
5196         * tree.c: Likewise.
5197         * value-prof.c: Likewise.
5198         * var-tracking.c: Likewise.
5199         * varasm.c: Likewise.
5200         * vmsdbgout.c: Likewise.
5201
5202 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
5203             Richard Guenther  <richard.guenther@gmail.com>
5204
5205         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
5206         copy the src value and return a copy.
5207         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
5208         (C++ Volatiles): Adjust to describe C++ semantics only.
5209
5210 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
5211
5212         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
5213         be zero or nonzero.
5214         * doc/tm.texi: Regenerate.
5215         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
5216         * df-scan.c (df_get_exit_block_use_set), reginfo.c
5217         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
5218         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
5219         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
5220         to 1.
5221
5222 2010-08-20  Olivier Hainque  <hainque@adacore.com>
5223
5224         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
5225         an extra nop past a sibling call at the very end.
5226
5227 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
5228
5229         PR bootstrap/45350
5230         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
5231         a comment.
5232
5233 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
5234
5235         * target.def (function_arg, function_incoming_arg): Remove const
5236         qualifier on CUMULATIVE_ARGS parameter.
5237         * targhooks.h (default_function_arg, default_function_incoming_arg):
5238         Likewise.
5239         * targhooks.c (default_function_arg, default_function_incoming_arg):
5240         Likewise.
5241         * config/i386/i386.c (ix86_function_arg): Likewise.
5242
5243 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
5244
5245         PR target/45336
5246         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
5247         SIGN_EXTENDs or ZERO_EXTENDs.
5248
5249 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
5250
5251         PR target/42172
5252         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
5253         Take its cost into account if nonnull.
5254         (insn_a_feeds_b): New static function.
5255         (combine_instructions): Look for four-insn combinations.
5256         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
5257         them into account when computing all_adjacent and looking for other
5258         uses.
5259         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
5260         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
5261         (try_combine): New arg I0.  Handle four-insn combinations.
5262         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
5263         like ELIM_I1.
5264
5265 2010-08-19  Jason Merrill  <jason@redhat.com>
5266
5267         PR c++/45307
5268         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
5269         if ctor is empty.
5270         (gimplify_modify_expr_rhs): Adjust.
5271
5272 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
5273
5274         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
5275         bitmap_bit_p.
5276         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
5277         * dominance.c (iterate_fix_dominators): Likewise.
5278         * dse.c (set_usage_bits): Likewise.
5279         (set_position_unneeded, record_store): Likewise.
5280         * gimple-fold.c (get_maxval_strlen): Likewise.
5281         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
5282         * ipa-inline.c (update_caller_keys): Likewise.
5283         * ipa-split.c (verify_non_ssa_vars): Likewise.
5284         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
5285         (close_type_exposed_parameter, close_type_full_escape): Likewise.
5286         (close_addressof_down): Likewise.
5287         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
5288         (setup_allocno_left_conflicts_size): Likewise.
5289         (ira_reassign_conflict_allocnos): Likewise.
5290         (ira_reassign_pseudos): Likewise.
5291         * ira-emit.c (change_loop): Likewise.
5292         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
5293         * lto-streamer-out.c (write_symbol): Likewise.
5294         * predict.c (expr_expected_value_1): Likewise.
5295         * regstat.c (regstat_bb_compute_ri): Likewise.
5296         * sel-sched.c (create_block_for_bookkeeping): Likewise.
5297         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
5298         * stmt.c (expand_case): Likewise.
5299         * tree-eh.c (emit_eh_dispatch): Likewise.
5300         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
5301         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
5302         Likewise.
5303         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
5304         (rdg_build_components): Likewise.
5305         * tree-object-size.c (collect_object_sizes_for): Likewise.
5306         * tree-sra.c (convert_callers): Likewise.
5307         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
5308         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
5309         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
5310
5311 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5312
5313         * config/i386/i386.md (*lea_1): Use P mode iterator.
5314         (lea add splitter): Also handle DImode operands.
5315         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
5316         predicate.  Do not use ix86_lea_for_add_ok.
5317         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
5318         (lea ashift splitter): Also handle DImode operands.
5319         (DImode lea ashift splitter): Remove splitter.
5320
5321 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5322
5323         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
5324         ix86_binary_operator_ok.
5325
5326 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
5327
5328         PR rtl-optimization/44691
5329         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
5330         is not a register.
5331
5332 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5333
5334         PR target/45070
5335         * config/arm/arm.c (arm_output_epilogue): Ensure that return
5336          value of size 1-3 is handled correctly.
5337
5338 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5339
5340         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
5341         type for the conditional has wide enough range.
5342
5343 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
5344
5345         PR target/45327
5346         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
5347         ix86_binary_operator_ok.
5348
5349 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
5350
5351         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
5352         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
5353         code to output insn mnemonic.  Fix comment.
5354         (*addsi_1_zext): Add r-r-0 alternative 1.
5355         <TYPE_LEA>: Split insn to lea.
5356         <default>: Handle alternative 1.
5357         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
5358         multi-level if_then_else RTX to set "type" attribute.
5359         <default>: Handle alternative 2.
5360         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
5361         Use cond RTX instead of multi-level if_then_else RTX to set
5362         "type" attribute.
5363         <default>: Handle alternatives 2 and 4.
5364         (lea splitters): Update calls to ix86_lea_for_add_ok.
5365
5366         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
5367         argument.
5368         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
5369
5370 2010-08-18  Richard Guenther  <rguenther@suse.de>
5371
5372         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
5373         use operand helpers.
5374
5375 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
5376
5377         PR middle-end/45292
5378         * optabs.c (expand_bool_compare_and_swap): Expand pending
5379         pops before trying the optab.
5380
5381 2010-08-18  Yao Qi  <yao@codesourcery.com>
5382
5383         PR target/45094
5384         * config/arm/arm.c (output_move_double): Fix typo generating
5385         instructions ('ldr'->'str').
5386
5387 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5388
5389         PR rtl-optimization/42575
5390         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
5391         live ranges.
5392
5393 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5394
5395         * config/arm/arm-protos.h (arm_expand_sync): New.
5396         (arm_output_memory_barrier, arm_output_sync_insn): New.
5397         (arm_sync_loop_insns): New.
5398         * config/arm/arm.c (FL_ARCH7): New.
5399         (FL_FOR_ARCH7): Include FL_ARCH7.
5400         (arm_arch7): New.
5401         (arm_print_operand): Support %C markup.
5402         (arm_legitimize_sync_memory): New.
5403         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
5404         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
5405         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
5406         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
5407         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
5408         (arm_process_output_sync_insn, arm_output_sync_insn): New.
5409         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
5410         * config/arm/arm.h (struct arm_sync_generator): New.
5411         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
5412         (TARGET_HAVE_MEMORY_BARRIER): New.
5413         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
5414         * config/arm/arm.md: Include sync.md.
5415         (UNSPEC_MEMORY_BARRIER): New.
5416         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
5417         (VUNSPEC_SYNC_OP):New.
5418         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
5419         (sync_result, sync_memory, sync_required_value): New attributes.
5420         (sync_new_value, sync_t1, sync_t2): Likewise.
5421         (sync_release_barrier, sync_op): Likewise.
5422         (length): Add logic to length attribute defintion to call
5423         arm_sync_loop_insns when appropriate.
5424         * config/arm/sync.md: New file.
5425
5426 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
5427
5428         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
5429         ENABLE_TREE_CHECKING.
5430         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
5431         and GCC >= 4.3.
5432
5433 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
5434
5435         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
5436         or optimizing for size, always avoid lea if possible.
5437
5438         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
5439
5440 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
5441
5442         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
5443         Dunmmy function with NULL return unless the target is
5444         OSX >= 10.6 (Darwin10).
5445
5446 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
5447
5448         * gcc.c (spec_function): Add remove-outfile.
5449         (remove_outfile_spec_function): New function.
5450         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
5451         * invoke.texi (replace-outfile): Document.
5452
5453 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
5454
5455         PR target/45296
5456         * reginfo.c (globalize_reg): Reject stack registers.
5457
5458 2010-08-17  Richard Guenther  <rguenther@suse.de>
5459
5460         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
5461         list of conditional equivalences.
5462         (free_all_edge_infos): Adjust.
5463         (record_equivalences_from_incoming_edge): Likewise.
5464         (record_cond): Likewise.
5465         (build_and_record_new_cond): Likewise.
5466         (record_conditions): Likewise.
5467         (dom_opt_leave_block): Likewise.
5468
5469 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
5470
5471         * doc/invoke.texi (ms-extension): Add documentation.
5472
5473 2010-08-17  Richard Guenther  <rguenther@suse.de>
5474
5475         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
5476
5477 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
5478
5479         PR c/40563
5480         * c-decl.c (diagnose_uninitialized_cst_member): New function.
5481         (finish_decl): Use it to issue a -Wc++-compat warning about
5482         uninitialized const field in struct or union.
5483
5484         (finish_struct): Use strip_array_types.
5485
5486 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
5487
5488         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
5489         functions.
5490         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
5491         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
5492         call block_nreverse here.
5493         (blocks_nreverse): Rename decl temporary to block.
5494
5495 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
5496
5497         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
5498         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
5499         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
5500         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
5501         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
5502         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
5503         thumb2_iorsi3): Delete.
5504         (orsi_notsi_si): No longer a named pattern.
5505         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
5506         * config/arm/predicates.md (shift_amount_operand): New.
5507         (mult_operator): New.
5508         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
5509         attr enabled): New.
5510         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
5511         arch matches t2.
5512         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
5513         (not_shiftsi_compare0): Likewise, renamed from
5514         arm_notsi_shiftsi_compare0.
5515         (not_shiftsi_compare0_scratch): Likweise, renamed from
5516         arm_notsi_shiftsi_compare0_scratch.
5517         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
5518         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
5519         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
5520         so that the register alternative is disabled when the shift_operator
5521         is MULT.  Use "M" as the constraint for constants.
5522         (arith_shiftsi splitter): Enable for TARGET_32BIT.
5523         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
5524         constraint for constants.
5525         (arith_shiftsi_compare0_scratch): Likewise.
5526         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
5527         Handle Thumb2 alternative.
5528
5529 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
5530
5531         * doc/options.texi (NoDriverArg): Document.
5532         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
5533         -MDX and -MMDX.
5534         * opt-functions.awk (switch_flags): Handle NoDriverArg.
5535         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
5536         marking for CL_NO_DRIVER_ARG options when in the driver.
5537         * opts.h (CL_NO_DRIVER_ARG): Define.
5538         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5539         CL_COMMON): Update values.
5540
5541 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
5542
5543         * common.opt: Add driver options.
5544         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
5545         * doc/options.texi (Driver, RejectDriver): Document.
5546         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
5547         print_prog_name, print_multi_directory, print_sysroot,
5548         print_multi_os_directory, print_multi_lib,
5549         print_sysroot_headers_suffix, report_times, combine_flag,
5550         use_pipes, wrapper_string): Remove.
5551         (save_switch, driver_unknown_option_callback,
5552         driver_wrong_lang_callback, driver_post_handling_callback,
5553         driver_handle_option): New.
5554         (spec_lang, last_language_n_infiles): Make file-scope static
5555         instead of local to process_command.
5556         (process_command): Use decode_cmdline_options_to_array and
5557         read_cmdline_option for option processing.  Compute have_c in
5558         prescan of decoded options.
5559         * opt-functions.awk (switch_flags): Handle Driver and
5560         RejectDriver.
5561         (var_type, var_type_struct): Handle Separate options as generating
5562         const char * variables.
5563         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
5564         CL_TARGET to be passed by caller if required.
5565         (decode_cmdline_options_to_array): Update comment.
5566         * opts.c (complain_wrong_lang): Handle options only valid for the
5567         driver.
5568         (decode_options): Update call to decode_cmdline_options_to_array.
5569         (print_filtered_help): Ignore driver-only options.
5570         (print_specific_help): Ignore CL_DRIVER.
5571         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
5572         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
5573         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
5574         Update values.
5575
5576 2010-08-16  Richard Guenther  <rguenther@suse.de>
5577
5578         * tree-cfg.c (verify_types_in_gimple_reference): Verify
5579         TARGET_MEM_REF a bit.
5580         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
5581         (create_mem_ref_raw): Always create TMR_OFFSET, store the
5582         alias pointer type via it.
5583         (copy_mem_ref_info): Adjust.
5584         (maybe_fold_tmr): Likewise.
5585         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
5586         (reference_alias_ptr_type): Likewise.
5587         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
5588         adjust documentation of TMR_OFFSET operand.
5589         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
5590         use the alias pointer type.
5591         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
5592         initialize mem attrs but the TMR itself.
5593         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
5594         similar to MEM_REF.
5595         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
5596         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
5597         (unshare_and_remove_ssa_names): Likewise.
5598         (copy_ref_info): Adjust.
5599         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
5600         TARGET_MEM_REF case.
5601         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
5602         at TMR_ORIGINAL.
5603         * tree.h (TMR_ORIGINAL): Remove.
5604         * gimple.c (get_base_address): For TARGET_MEM_REF with a
5605         symbol return that.
5606         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
5607         with a symbol.
5608         (get_addr_base_and_unit_offset): Likewise.
5609         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
5610         TARGET_MEM_REFs.
5611         (indirect_ref_may_alias_decl_p): Likewise.
5612         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
5613
5614 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
5615
5616         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
5617         with GCC version 4.6, the default setting (when not optimizing
5618         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
5619         been changed to -fomit-frame-pointer.
5620
5621 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
5622
5623         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
5624         Darwin10.  Do not link libgcc.a for Darwin >= 9.
5625
5626 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
5627
5628         * doc/invoke.texi (Warning Options): Fix terminology and markup
5629         in the description of how unknown warning options are handled.
5630
5631 2010-08-15  Ira Rosen  <irar@il.ibm.com>
5632
5633         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
5634         in basic blocks.
5635         (vect_supportable_dr_alignment): Check alignment for basic blocks.
5636         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
5637         data references.
5638         (vect_bb_vectorization_profitable_p): New function.
5639         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
5640         check if it's worthwhile to vectorize the basic block.
5641
5642 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
5643
5644         * reload.h (register_move_cost, memory_move_secondary_cost,
5645         secondary_reload_class): Adjust prototype.
5646         * rtl.h (reg_class_subset_p): Adjust prototype.
5647         * reload.c (secondary_reload_class): Change arguments type from
5648         enum reg_class to reg_class_t. Change result type to reg_class_t.
5649         * reginfo.c (register_move_cost, reg_class_subset_p): Change
5650         arguments type from enum reg_class to reg_class_t.
5651         (memory_move_secondary_cost): Change arguments type from
5652         enum reg_class to reg_class_t. Change type of saved_flags to
5653         reg_class_t.
5654
5655         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5656         Remove macros.
5657         (mips_cost): Remove.
5658         (struct mips_rtx_cost_data): Moved to mips.c.
5659         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
5660         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
5661         (mips_cost): Make static.
5662         (mips_canonicalize_move_class): Change argument type to reg_class_t.
5663         Change result type to reg_class_t.
5664         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
5665         type from enum reg_class to reg_class_t.
5666         (mips_register_move_cost): Make static. Change arguments
5667         type from enum reg_class to reg_class_t.
5668         (mips_memory_move_cost): New function.
5669         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
5670
5671 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
5672
5673         PR rtl-optimization/43358
5674         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
5675         of a single hard register, using simplify_subreg_regno to decide
5676         what that register should be.
5677
5678 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
5679
5680         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
5681         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
5682         (loongson_pmull<V_suffix>): Rename to...
5683         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
5684
5685 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
5686
5687         * configure.ac: Enable -fomit-frame-pointer on darwin
5688         which support dwarf2.
5689         * config/i386/i386.c (override_options): Same.
5690
5691 2010-08-13  Jie Zhang  <jie@codesourcery.com>
5692
5693         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
5694
5695 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
5696
5697         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
5698         -MMD.
5699
5700 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
5701
5702         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
5703         up dot_prod pattern searching if a stmt is outside the loop.
5704
5705 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
5706             Uros Bizjak  <ubizjak@gmail.com>
5707
5708         * config.gcc: Handle --enable-frame-pointer.
5709
5710         * configure.ac: Add --enable-frame-pointer.
5711         * configure: Regenerated.
5712
5713         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
5714         (override_options): If not configured with --enable-frame-pointer,
5715         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
5716         optimizing for size), -fasynchronous-unwind-tables and
5717         -maccumulate-outgoing-args by default.
5718
5719 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
5720
5721         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
5722
5723         PR middle-end/45262
5724         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
5725         -a overflows.  Normalize the range.
5726
5727 2010-08-12  Richard Guenther  <rguenther@suse.de>
5728
5729         PR tree-optimization/45232
5730         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
5731         for types with undefined overflow.
5732         (reassociate_bb): Allow re-associating of bit and min/max
5733         operations for types with undefined overflow.
5734         * tree-ssa-forwprop.c (associate_plusminus): New function.
5735         (tree_ssa_forward_propagate_single_use_vars): Call it.
5736
5737 2010-08-12  Richard Guenther  <rguenther@suse.de>
5738
5739         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
5740         * tree-ssa-alias.c (get_ptr_info): Move ...
5741         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
5742         align and misalign fields conservatively.
5743         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
5744         derive alignment information.
5745         (evaluate_stmt): Derive alignment information from memory
5746         allocation functions.
5747         * tree.h (get_pointer_alignment): Make unsigned.
5748         * builtins.c (get_object_alignment): Use alignment information we
5749         have computed for pointers.
5750         (get_pointer_alignment): Likewise.  Make conservative, return
5751         and unsigned value.
5752         (expand_builtin_strlen): Adjust.
5753         (expand_builtin_memcmp): Likewise.
5754         (expand_builtin_strcmp): Likewise.
5755         (expand_builtin_strncmp): Likewise.
5756         (get_builtin_sync_mem): Use at least mode alignment.
5757         (fold_builtin_memset): Adjust.
5758         (fold_builtin_memory_op): Likewise.
5759         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
5760         information also dump pointer alignment knowledge.
5761         (dump_gimple_stmt): Likewise.
5762
5763 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
5764
5765         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
5766         (EMPTY_FIELD_BOUNDARY): Remove.
5767         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
5768
5769 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
5770
5771         PR debug/45259
5772         * caller-save.c (save_call_clobbered_regs): Only swap notes with
5773         DEBUG_INSNs if n_regs_saved.
5774
5775 2010-08-12  Wei Guozhi  <carrot@google.com>
5776
5777         PR target/44999
5778         * config/arm/arm.md (andsi3): Change to zero extension if possible.
5779         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
5780
5781 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
5782
5783         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
5784
5785         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
5786
5787 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5788
5789         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
5790         the case removed in the previous patch, when the only phi argument
5791         is defined in the same loop as the phi node itself.  Handle it
5792         separately from the invariant case by both propagating it outside
5793         the region and replacing the phi node with an assign.
5794
5795 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5796
5797         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
5798         constant phi nodes with one argument are is_gimple_min_invariant
5799         and SSA_NAME_IS_DEFAULT_DEF.
5800
5801 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5802
5803         * graphite-cloog-util.c (oppose_constraint):
5804         Extend loop counter's value range (CLOOG_ORG).
5805         (cloog_matrix_to_ppl_constraint): Same.
5806         (new_Constraint_System_from_Cloog_matrix): Same.
5807         * graphite-cloog-compat.h (matrix_num_type): New.
5808
5809 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5810
5811         * graphite.c (graphite_initialize): Do not initialize
5812         CLooG and initialize the Parma Polyhedra Library
5813         manually when using CLOOG_ORG.
5814         (graphite_finalize): Do not finalize CLooG and finalize
5815         the Parma Polyhedra Library manually when using CLOOG_ORG.
5816         * graphite-cloog-compat.h (cloog_initialize): Hide function
5817         when using CLOOG_ORG.
5818         (cloog_finalize): Same.
5819
5820 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5821
5822         * graphite-clast-to-gimple.c (free_scattering): Change
5823         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
5824         (CLOOG_ORG).
5825         (build_cloog_prog): Same.
5826         * graphite-cloog-compat.h (cloog_domain): Removed.
5827         (cloog_scattering): New.
5828         (cloog_set_domain): Removed.
5829         (cloog_set_scattering): New.
5830         (cloog_next_domain): Removed.
5831         (cloog_next_scattering): New.
5832         (cloog_set_next_domain): Removed.
5833         (cloog_set_next_scattering): New.
5834         (CloogScatteringList): New.
5835         (CloogScattering): New.
5836         (cloog_scattering_free): New.
5837         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
5838         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
5839         New.
5840
5841 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5842
5843         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
5844         CloogState.
5845         (set_cloog_options): Same.
5846         (print_clast_stmt): Same.
5847         (scop_to_clast): Same.
5848         (print_generated_program): Same.
5849         (gloog): Same.
5850         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
5851         (scop_to_clast): Extend with CloogState.
5852         * graphite-cloog-util.c: Include graphite-cloog-compat.h
5853         (new_Cloog_Domain_from_ppl_Polyhedron):
5854         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
5855         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
5856         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5857         * graphite-cloog-util.h (build_cloog_prog): Same.
5858         * graphite-cloog-copat.h (build_cloog_prog): New.
5859         (CloogState): New.
5860         (cloog_state_malloc): New.
5861         (cloog_state_free): New.
5862         (cloog_loop_malloc): New.
5863         (cloog_options_malloc): New.
5864         (cloog_statement_alloc): New.
5865         (cloog_domain_from_cloog_matrix): New.
5866         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
5867         (new_Cloog_Domain_from_ppl_Polyhedron): New.
5868
5869 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5870
5871         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
5872         type of NAME now depends on used CLooG version.
5873         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
5874         (gcc_type_for_clast_expr): Same.
5875         (print_clast_stmt): Replace pprint with clast_pprint.
5876         * graphite-cloog-compat.h: Provide compatibility macros for
5877         CLooG Legacy.
5878         (clast_name_p): New.
5879         (clast_expr_term): New.
5880         (clast_expr_red): New.
5881         (clast_expr_bin): New.
5882         (clast_pprint): New.
5883
5884 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5885
5886         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
5887         compatible to newer CLooG releases (CLOOG_ORG).
5888         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
5889         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
5890         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
5891         (build_cloog_prog) : New.
5892         (cloog_program_extract_scalars): New.
5893         (cloog_program_scatter): New.
5894
5895 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5896
5897         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
5898         conditionally (CLOOG_ORG).
5899         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
5900         (cloog_statement_usr): New.
5901         (cloog_domain): Same.
5902         (cloog_set_domain): Same.
5903         (cloog_next_domain): Same.
5904         (cloog_set_next_domain): Same.
5905         (cloog_program_nb_scattdims): Same.
5906         (cloog_program_set_nb_scattdims): Same.
5907         (cloog_program_names): Same.
5908         (cloog_program_set_names): Same.
5909         (cloog_program_set_context): Same.
5910         (cloog_program_set_loop): Same.
5911         (cloog_program_blocklist): Same.
5912         (cloog_program_set_blocklist): Same.
5913         (cloog_program_scaldims): Same.
5914         (cloog_program_set_scaldims): Same.
5915         (cloog_names_nb_parameters): Same.
5916         (cloog_names_set_nb_parameters): Same.
5917         (cloog_names_parameters): Same.
5918         (cloog_names_set_parameters): Same.
5919         (cloog_names_set_nb_iterators): Same.
5920         (cloog_names_set_iterators): Same.
5921         (cloog_names_set_nb_scattering): Same.
5922         (cloog_names_set_scattering): Same.
5923         (cloog_statement_set_usr): Same.
5924         (cloog_loop_set_next): Same.
5925         (cloog_loop_set_domain): Same.
5926         (cloog_loop_set_block): Same.
5927         (cloog_block_list_next): Same.
5928         (cloog_block_list_set_next):
5929         (cloog_block_list_set_block): Same.
5930
5931 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5932
5933         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
5934         a bool.
5935         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
5936         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
5937         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
5938         when something has been changed.
5939         (rewrite_commutative_reductions_out_of_ssa): Same.
5940
5941 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5942
5943         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
5944         handle the case when def is in the sese region.
5945         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
5946         for invariant expressions.
5947         (rewrite_cross_bb_phi_deps): Removed.
5948         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
5949         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
5950         rewrite_cross_bb_phi_deps.
5951
5952 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5953
5954         * graphite-sese-to-poly.c
5955         (rewrite_commutative_reductions_out_of_ssa_loop): Call
5956         scev_analyzable_p only on is_gimple_reg
5957
5958 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5959
5960         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
5961         (rewrite_close_phi_out_of_ssa): Propagate constant values or
5962         parametric expressions outside the scop region.
5963         (rewrite_cross_bb_scalar_deps): Same.
5964         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
5965
5966 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5967
5968         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
5969         SSA_NAME_DEF_STMT only on SSA_NAMEs.
5970
5971 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5972
5973         * tree-scalar-evolution.c (instantiate_scev_name): Do not
5974         instantiate default definitions.
5975
5976 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
5977             Sebastian Pop  <sebastian.pop@amd.com>
5978
5979         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
5980         (loop_exits_from_bb_p): New.
5981         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
5982         (loop_exits_from_bb_p): Declared.
5983         * graphite-scop-detection.c (scopdet_basic_block_info): Call
5984         loop_exits_to_bb_p.
5985
5986 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5987
5988         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
5989         extra parameter for the region.  Call scev_analyzable_p.
5990         (rewrite_reductions_out_of_ssa): Update call to
5991         rewrite_close_phi_out_of_ssa.
5992         (rewrite_cross_bb_phi_deps): Same.
5993         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
5994         parameter for the region.  Call scev_analyzable_p.
5995         (rewrite_commutative_reductions_out_of_ssa): Update call to
5996         rewrite_commutative_reductions_out_of_ssa_loop.
5997
5998 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5999
6000         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
6001
6002 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6003
6004         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
6005         SSA scalar phi nodes that can be scev_analyzable_p.
6006
6007 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6008
6009         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
6010         handle SSA_NAME_IS_DEFAULT_DEF.
6011
6012 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6013
6014         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
6015
6016 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6017
6018         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
6019         case non close-phi nodes with one argument.
6020
6021 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6022
6023         * sese.h (scev_analyzable_p): Scevs could be expressions without
6024         chrecs and still be scev_analyzable_p.
6025
6026 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6027
6028         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6029
6030 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6031
6032         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
6033         * cfgloop.h (struct loop): Remove single_iv field.
6034         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
6035         (scop_canonicalize_loops): Removed.
6036         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
6037         over all the loop phi nodes in loop->header.
6038         (build_poly_scop): Remove use of scop_canonicalize_loops.
6039
6040 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6041
6042         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
6043         handle GIMPLE_CALL.
6044
6045 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6046
6047         * tree-chrec.c (chrec_apply): Should only apply to the specified
6048         variable.  Also handle multivariate chains of recurrences that
6049         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
6050
6051 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6052
6053         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
6054         (debug_clast_name_indexes_1): Removed.
6055         (debug_clast_name_indexes): Removed.
6056         (pbb_to_depth_to_oldiv): Removed.
6057         (build_iv_mapping): Replace the use of rename_map with iv_map.
6058         (translate_clast_user): Remove uses of rename_map.  Allocate and
6059         free iv_map.
6060         (translate_clast_for_loop): Remove uses of rename_map.
6061         (translate_clast_for): Same.
6062         (translate_clast_guard): Same.
6063         (translate_clast): Same.
6064         (gloog): Same.
6065         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
6066         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
6067         * sese.c (set_rename): Now static.
6068         (rename_variables_in_stmt): Removed.
6069         (rename_uses): New.
6070         (is_parameter): Removed.
6071         (is_iv): Removed.
6072         (expand_scalar_variables_call): Removed.
6073         (expand_scalar_variables_ssa_name): Removed.
6074         (expand_scalar_variables_expr): Removed.
6075         (expand_scalar_variables_stmt): Removed.
6076         (expand_scalar_variables): Removed.
6077         (rename_variables): Removed.
6078         (remove_condition): Removed.
6079         (get_true_edge_from_guard_bb): Removed.
6080         (get_false_edge_from_guard_bb): Removed.
6081         (struct igp): Removed.
6082         (default_before_guard): Removed.
6083         (convert_for_phi_arg): Removed.
6084         (add_guard_exit_phis): Removed.
6085         (insert_guard_phis): Removed.
6086         (graphite_copy_stmts_from_block): Now also uses iv_map and a
6087         region.  Do not copy conditions.  Do not copy induction variables.
6088         Call rename_uses.
6089         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
6090         the translated statement.  Use the iv_map for the induction
6091         variable renaming.
6092         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
6093         (set_rename): Removed declaration.
6094         (scev_analyzable_p): ...here.
6095         * tree-chrec.c (chrec_apply_map): New.
6096         * tree-chrec.h (chrec_apply_map): Declared.
6097
6098 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6099
6100         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
6101         insert_loop_close_phis.
6102         * sese.c (name_defined_in_loop_p): Removed.
6103         (expr_defined_in_loop_p): Removed.
6104         (alive_after_loop): Removed.
6105         (close_phi_not_yet_inserted_p): Removed.
6106         (struct alep): Removed.
6107         (add_loop_exit_phis): Removed.
6108         (insert_loop_close_phis): Removed.
6109
6110 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6111
6112         * graphite-cloog-util.c
6113         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
6114         * graphite-poly.c
6115         (psct_scattering_dim_for_loop_depth): Same.
6116
6117 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6118
6119         * graphite-cloog-util.h: Added cloog.h.
6120         * graphite-blocking.c: Removed cloog.h.
6121         * graphite-dependences.c: Same.
6122         * graphite-interchange.c: Same.
6123         * graphite-poly.c: Same.
6124         * graphite-ppl.c: Same.
6125         * graphite-scop-detection.c: Same.
6126         * graphite-sese-to-poly.c:
6127         Removed cloog.h.
6128         Removed graphite-clast-to-gimple.h.
6129         (check_poly_representation): Removed (unused).
6130         * graphite-sese-to-poly.h
6131         (check_poly_representation): Removed (unused).
6132
6133 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6134
6135         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
6136         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
6137         (graphite-cloog-util.o): New.
6138         (graphite-ppl.o): Added graphite-cloog-util.h.
6139         * graphite-clast-to-gimple.c:
6140         Added graphite-cloog-util.h to include statements.
6141         * graphite-cloog-util.c: New.
6142         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
6143         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6144         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6145         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6146         (insert_constraint_into_matrix): Same.
6147         (ppl_Constrain_System_number_of_constraints): Same.
6148         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6149         (oppose_constraint): Same.
6150         (cloog_matrix_to_ppl_constraint): Same.
6151         (new_Constraint_System_from_Cloog_Matrix): Same.
6152         * graphite-cloog-util.h: New.
6153         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
6154         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6155         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6156         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6157         (insert_constraint_into_matrix): Same.
6158         * graphite-ppl.c:
6159         Added graphite-cloog-util.h to include statements.
6160         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
6161         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6162         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6163         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6164         (insert_constraint_into_matrix): Same.
6165         (ppl_Constrain_System_number_of_constraints): Same.
6166         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6167         (oppose_constraint): Same.
6168         (cloog_matrix_to_ppl_constraint): Same.
6169         (new_Constraint_System_from_Cloog_Matrix): Same.
6170         * graphite-ppl.h:
6171         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
6172         graphite-cloog-util.h.
6173         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6174         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6175         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6176         (insert_constraint_into_matrix): Same.
6177
6178 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6179
6180         * graphite-clast-to-gimple.c
6181         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
6182         (precision_for_interval): Same.
6183         (gcc_type_for_interval): Same.
6184         (compute_type_for_level): Same.
6185         * graphite-interchange.c
6186         (lst_interchange_profitable_p): Same.
6187         * graphite-poly.c
6188         (psct_scattering_dim_for_loop_depth): Same.
6189         * graphite-ppl.c
6190         (ppl_max_for_le_pointset): Same.
6191         (ppl_min_for_le_pointset): Same.
6192
6193 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6194
6195         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
6196         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
6197
6198 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6199
6200         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
6201         rewrite_close_phi_out_of_ssa.
6202
6203 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6204
6205         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
6206
6207 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6208
6209         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
6210         rename_map.
6211         * sese.c (debug_rename_map): Same.
6212         (get_rename): Same.
6213         (set_rename): Same.
6214         (rename_variables_in_stmt): Same.
6215         (expand_scalar_variables_call): Same.
6216         (expand_scalar_variables_ssa_name): Same.
6217         (expand_scalar_variables_expr): Same.
6218         (expand_scalar_variables_stmt): Same.
6219         (expand_scalar_variables): Same.
6220         (rename_variables): Same.
6221         (graphite_copy_stmts_from_block): Same.
6222         (copy_bb_and_scalar_dependences): Same.
6223
6224 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6225
6226         * graphite-clast-to-gimple.c (copy_renames): Removed.
6227         (translate_clast_for): Do not call copy_renames.
6228         (translate_clast_guard): Same.
6229
6230 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6231
6232         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
6233         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
6234         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
6235         before rewrite_cross_bb_scalar_deps.
6236
6237 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6238
6239         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
6240         Early return in when flag_associative_math is not set.
6241
6242 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6243
6244         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
6245         of SSA copies on edges except for loop->latch.
6246
6247 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6248
6249         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
6250         Split out of rewrite_reductions_out_of_ssa.
6251         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
6252         Declared.
6253         * graphite.c (graphite_transform_loops): Call it.
6254
6255 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6256
6257         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
6258
6259 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
6260
6261         * dbgcnt.def (graphite_scop): New counter.
6262         * graphite.c: Include dbgcnt.h.
6263         (graphite_transform_loops): Use new counter to limit transformations.
6264         * Makefile.in (graphite.o): Depend on DBGCNT_H.
6265
6266 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6267
6268         * passes.c (init_optimization_passes): Add pass_graphite.
6269         Schedule a pass_copy_prop before pass_graphite_transforms.
6270         * timevar.def (TV_GRAPHITE): Declared.
6271         * tree-pass.h (pass_graphite): Declared.
6272         * tree-ssa-loop.c (pass_graphite): New.
6273
6274 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6275
6276         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
6277         Remove calls to rename_nb_iterations and rename_sese_parameters.
6278         * graphite-clast-to-gimple.h (gloog): Update declaration.
6279         * graphite.c (graphite_transform_loops): Update call to gloog.
6280         * sese.c (rename_variables_in_expr): Removed.
6281         (rename_nb_iterations): Removed.
6282         (rename_sese_parameters): Removed.
6283         * sese.h (rename_nb_iterations): Removed.
6284         (rename_sese_parameters): Removed.
6285
6286 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6287
6288         * graphite-clast-to-gimple.c (gloog): Remove call to
6289         sese_adjust_liveout_phis.
6290         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
6291         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
6292         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
6293         rewrite_phi_out_of_ssa.
6294         * sese.c (get_vdef_before_sese): Removed.
6295         (sese_adjust_vphi): Removed.
6296         (sese_adjust_liveout_phis): Removed.
6297         * sese.h (sese_adjust_liveout_phis): Removed.
6298
6299 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6300
6301         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
6302         argument for the place after which to insert the out of SSA copy.
6303         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
6304         (rewrite_phi_out_of_ssa): Same.
6305         (rewrite_cross_bb_scalar_deps): Same.
6306         (insert_copyout): Removed.
6307         (insert_copyin): Removed.
6308         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
6309         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
6310         insert_copyin.
6311
6312 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6313
6314         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
6315         (rewrite_reductions_out_of_ssa): Same.
6316         (rewrite_commutative_reductions_out_of_ssa): Same.
6317         (build_poly_scop): Do not call these functions.
6318         * graphite-sese-to-poly.h (build_poly_scop): Declared.
6319         (rewrite_reductions_out_of_ssa): Declared.
6320         (rewrite_commutative_reductions_out_of_ssa): Declared.
6321         * graphite.c (graphite_transform_loops): Call on every scop
6322         rewrite_commutative_reductions_out_of_ssa before calling
6323         rewrite_reductions_out_of_ssa and build_scop_bbs.
6324
6325 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6326
6327         * graphite-dependences.c (dot_deps): Make system call to dotty run
6328         in background.
6329         (dot_deps_stmt): Same.
6330         * graphite-poly.c (dot_lst): Same.
6331
6332 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6333
6334         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
6335         phi_arg_in_outermost_loop.
6336         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
6337         (remove_invariant_phi): Same.
6338
6339 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
6340
6341         * target.def (output_addr_const_extra): New hook.
6342         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
6343         * doc/tm.texi: Regenerate.
6344         * targhooks.c (default_asm_output_addr_const_extra): New function.
6345         * targhooks.h (default_asm_output_addr_const_extra): Declare.
6346         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
6347         target hook.
6348
6349         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6350         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
6351         * config/i386/i386.h (output_addr_const_extra): Rename to...
6352         (i386_asm_output_addr_const_extra): ...this. Make static.
6353         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6354
6355 2010-08-11  Richard Henderson  <rth@redhat.com>
6356
6357         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
6358
6359 2010-08-11  Nick Clifton  <nickc@redhat.com>
6360
6361         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
6362         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
6363         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
6364         stormy16-lib2-cmpsi.c.
6365
6366         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
6367         -O2.
6368
6369 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
6370
6371         * opts.h (struct cl_option_handler_func): Make handler take
6372         cl_decoded_option structure as parameter, not individual elements.
6373         (struct cl_option_handlers): Make callbacks take cl_decoded_option
6374         structure as parameter, not individual elements.
6375         (handle_option): Take cl_decoded_option structure as parameter,
6376         not individual elements.
6377         (handle_generated_option): Declare.
6378         * opts-common.c (handle_option): Take cl_decoded_option structure
6379         as parameter, not individual elements.  Update calls to callback
6380         and handler functions.
6381         (handle_generated_option): New.
6382         (read_cmdline_option): Update calls to callback functions and
6383         handle_option.
6384         * opts.c (common_handle_option, complain_wrong_lang,
6385         unknown_option_callback, post_handling_callback,
6386         lang_handle_option, target_handle_option): Take cl_decoded_option
6387         structure as parameter, not individual elements.
6388         (lang_handle_option, target_handle_option, common_handle_option):
6389         Assert option has at most one argument.
6390         (enable_warning_as_error): Call handle_generated_option instead of
6391         handle_option.  Do not pass -Werror argument as argument of
6392         generated option.
6393
6394 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6395
6396         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6397         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6398         (SUBWORD_BOOL_CAS): Likewise.
6399         (SUBWORD_SYNC_OP): Likewise.
6400         (SUBWORD_TEST_AND_SET): Likewise.
6401         (FETCH_AND_OP_WORD): Parenthesise INF_OP
6402         (SUBWORD_SYNC_OP): Likewise.
6403         (OP_AND_FETCH_WORD): Likewise.
6404
6405 2010-08-10  Xinliang David Li  <davidxl@google.com>
6406
6407         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
6408         compute max/min offset in address.
6409
6410 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
6411
6412         * ira-live.c: Include sbitmap.h.
6413         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
6414         Compress live ranges even more.
6415
6416 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6417
6418         * coverage.c (ctr_labels): Delete.
6419
6420 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
6421
6422         PR bootstrap/45177
6423         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
6424         test here from arm_gen_load_multiple_1.
6425         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
6426         multiple_operation_profitable_p.
6427
6428 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6429
6430         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
6431         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
6432
6433 2010-08-10  Richard Henderson  <rth@redhat.com>
6434
6435         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
6436         after saving registers.  Assert that SSE registers are only saved
6437         with a sufficiently aligned frame.
6438         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
6439         remove stack_realign_fp handling.
6440         (ix86_expand_prologue): Save int registers before stack_realign_fp,
6441         and do not mark the stack alignment as frame related.
6442         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
6443
6444         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
6445         saves when re-aligning the stack.
6446
6447 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6448
6449         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
6450         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
6451         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
6452
6453 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6454
6455         * dwarf2out.c (struct die_struct): Move die_tag to the end.
6456
6457 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
6458
6459         * config/arm/iterators.md: New file.
6460         * config/arm/arm.md: Include iterators.md.
6461         (QHSI): Move to new file.
6462         (LTUGEU, cnb, optab, ior_xor): Likewise.
6463         * config/arm/iwmmxt.md (VMMX): Move to new file.
6464         (VSHFT, MMX_char): Likewise.
6465         * config/arm/neon.md (VD): Move to new file.
6466         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
6467         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
6468         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
6469         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
6470         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
6471         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
6472         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
6473         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
6474         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
6475         (Is_d_reg, V_mode_nunits): Likewise.
6476         * config/arm/vec-common.md (VALL): Move to new file.
6477         (VALLW, VINT, VINTW): Likewise.
6478
6479 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
6480
6481         PR middle-end/45182
6482         * combine.c (make_compound_operation): Don't try to convert
6483         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
6484
6485 2010-08-10  Richard Guenther  <rguenther@suse.de>
6486
6487         * tree.h (get_object_alignment): Adjust prototype.
6488         * builtins.c (get_object_alignment): Return unsigned int,
6489         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
6490         and TARGET_MEM_REF properly.
6491         (get_pointer_alignment): Adjust.
6492         * emit-rtl.c (get_mem_align_offset): Adjust comment.
6493         (set_mem_attributes_minus_bitpos): Adjust.
6494         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
6495
6496 2010-08-10  Richard Guenther  <rguenther@suse.de>
6497
6498         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
6499         (copy_prop_visit_assignment): Simplify.
6500         (copy_prop_visit_stmt): Also visit assignments from
6501         constants.
6502         (copy_prop_visit_phi_node): Use operand_equal_p.
6503
6504 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6505
6506         * ipa-split.c (find_split_points): Free stack.
6507
6508 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6509
6510         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
6511         * tree.c (tree_node_kind): Delete corresponding entries.
6512
6513 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
6514
6515         * alias.c (may_alias_p): Remove unused ret.
6516
6517 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
6518
6519         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
6520         alias_sets_conflict_p.
6521         (walk_mems_1): Moved from alias.c.
6522         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
6523         in alias.c.
6524         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
6525         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
6526         * alias.c (walk_mems_2): Moved to ddg.c.
6527         (walk_mems_1): Ditto.
6528         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
6529         to ddg.c.
6530         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
6531         disambiguation.
6532         *(may_alias_p): New function to check whether two memory expression
6533         may alias or not. Currently used in buidling inter-iteration memory
6534         dependence.
6535         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
6536         (insn_alias_sets_conflict_p): Removed
6537         *rtl.h (may_alias_p): New function prototype.
6538
6539 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6540
6541         * tree.c (nreverse): Assert that we don't have a BLOCK.
6542
6543 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6544
6545         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
6546         * config/arm/arm.c (arm_get_pcs_model): Likewise.
6547         * config/avr/avr.c (init_cumulative_args): Likewise.
6548         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6549         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6550         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
6551         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
6552         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
6553         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6554         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
6555         * dwarf2out.c (gen_subprogram_die): Likewise.
6556         * function.c (allocate_struct_function): Likewise.
6557         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
6558         (deserves_ellipsis): Delete.
6559
6560 2010-08-09  Richard Guenther  <rguenther@suse.de>
6561
6562         * tree-ssa-copy.c (cached_last_copy_of): Remove.
6563         (valueize_val): New function.
6564         (get_last_copy_of): Remove.
6565         (set_copy_of_val): Simplify.
6566         (dump_copy_of): Likewise.
6567         (copy_prop_visit_cond_stmt): Use valueize_val.
6568         (copy_prop_visit_phi_node): Properly handle unvisited names.
6569         Drop code managing copy-of chains.
6570         (init_copy_prop): Adjust.
6571         (fini_copy_prop): Likewise.
6572         (execute_copy_prop): Remove obsolete comment.
6573
6574 2010-08-09  Richard Guenther  <rguenther@suse.de>
6575
6576         PR middle-end/44632
6577         * function.c (gimplify_parameters): Do not clear addressable
6578         bit of the original parameter.
6579
6580 2010-08-09  Richard Guenther  <rguenther@suse.de>
6581
6582         PR middle-end/45212
6583         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
6584         alignment from MEM_REF offset only if we took it from the
6585         base object.
6586
6587 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
6588
6589         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
6590
6591 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6592
6593         * c-tree.h (build_arg_info): Declare.
6594         * c-decl.c (build_arg_info): Define.
6595         (get_parm_info): Call it.  Delete initialization code.
6596         * c-parser.c (c_parser_parms_declarator): Likewise.
6597         (c_parser_parms_list_declaractor): Likewise.
6598
6599 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6600
6601         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
6602         (struct c_arg_info): Change type of tags field.
6603         * c-decl.c (grokdeclarator): Update for changed type of tags field.
6604         (get_parm_info): Likewise.
6605         (store_parm_decls_newstyle): Likewise.
6606
6607 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6608
6609         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
6610         (branch_island_list): Delete.
6611         (branch_islands): Declare.
6612         (add_compiler_branch_island): Adjust for branch_islands instead of
6613         branch_island_list.
6614         (macho_branch_islands): Likewise.
6615         (no_previous_def): Likewise.
6616         (get_prev_label): Likewise.
6617
6618 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6619
6620         PR boehm-gc/34544
6621         * gthr-posix.h (__gthread_start): Delete.
6622         (__gthread_active_init): Use pthread_default_stacksize_np instead of
6623         pthread_create to determine if hpux pthreads are active.
6624         * gthr-posix95.h (__gthread_start): Delete.
6625         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
6626
6627 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
6628
6629         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
6630         _WIN64 not expanded.
6631
6632 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
6633             H.J. Lu  <hongjiu.lu@intel.com>
6634
6635         PR target/45213
6636         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
6637         to output 32bit SFmode immediate as 8 byte sign extended value.
6638
6639 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6640
6641         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6642         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6643         (SUBWORD_BOOL_CAS): Likewise.
6644         (SUBWORD_SYNC_OP): Likewise.
6645         (SUBWORD_TEST_AND_SET): Likewise.
6646         (FETCH_AND_OP_WORD): Parenthesise INF_OP
6647         (SUBWORD_SYNC_OP): Likewise.
6648         (OP_AND_FETCH_WORD): Likewise.
6649
6650 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6651
6652         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
6653         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
6654         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
6655         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
6656         generic part.
6657         (cortex_a9_sched_adjust_cost): New function.
6658         (xscale_sched_adjust_cost): New function.
6659         * config/arm/arm-protos.h (struct tune_params): New field
6660         sched_adjust_cost.
6661         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
6662
6663 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
6664
6665         PR target/44942
6666         * config/sparc/sparc.c (function_arg_advance): Always take into account
6667         the padding, if any.
6668
6669 2010-08-06  Richard Guenther  <rguenther@suse.de>
6670
6671         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
6672         (dump_lattice_value): Dump it.
6673         (get_default_value): Adjust.
6674         (get_constant_value): Likewise.
6675         (set_value_varying): Likewise.
6676         (set_lattice_value): Make sure to not go up the lattice
6677         with bitwise constant values.
6678         (get_value_for_expr): Handle ADDR_EXPRs.
6679         (value_to_double_int): New function.
6680         (get_value_from_alignment): Likewise.
6681         (do_dbg_cnt): Adjust.
6682         (ccp_lattice_meet): Handle partially constant values.
6683         (bit_value_unop_1): New function.
6684         (bit_value_binop_1): Likewise.
6685         (bit_value_unop): Likewise.
6686         (bit_value_binop): Likewise.
6687         (evaluate_stmt): Track partially constant values if
6688         flag_tree_bit_ccp is set.
6689         (ccp_fold_stmt): Dump if we folded a predicate.
6690         (ccp_visit_stmt): Adjust.
6691         * common.opt (ftree-bit-ccp): New flag.
6692         * doc/invoke.texi (ftree-bit-ccp): Document.
6693         * opts.c (decode_options): Enable bit-CCP at -O1.
6694
6695 2010-08-06  Alan Modra  <amodra@gmail.com>
6696
6697         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
6698         and -mrelocatable-lib description.
6699
6700 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
6701
6702         From Martin Thuresson  <martint@google.com>
6703         * postreload.c (reload_cse_simplify_operands): Use
6704         SET_REGNO_RAW instead of SET_REGNO.
6705         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
6706         SET_REGNO.
6707         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
6708         instead of SET_REGNO.
6709         * rtl.h (SET_REGNO_RAW): New macro.
6710
6711 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
6712
6713         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
6714         computations.  Fix formatting issues.
6715         (num_sign_bit_copies1): Likewise.
6716         (canonicalize_condition): Likewise.
6717
6718 2010-08-05  Richard Henderson  <rth@redhat.com>
6719
6720         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
6721         (floor_log2): Use clz_hwi.
6722         (exact_log2): Use ctz_hwi.
6723         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
6724         * builtins.c (fold_builtin_bitop): Use them.
6725         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6726         * combine.c (get_pos_from_mask): Use ctz_hwi.
6727         * double-int.c (double_int_ctz): Likewise.
6728         * explow.c (force_reg): Likewise.
6729         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
6730
6731 2010-08-05  Richard Henderson  <rth@redhat.com>
6732
6733         PR target/45189
6734         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
6735         the alignment constant is properly sign-extended.
6736
6737 2010-08-05  Richard Guenther  <rguenther@suse.de>
6738
6739         * expr.c (store_expr): Use emit_block_move only if both
6740         source and target are MEMs.  Use store_bit_field if only
6741         the target is a MEM.
6742
6743 2010-08-05  Richard Henderson  <rth@redhat.com>
6744
6745         PR debug/45188
6746         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
6747         (INCOMING_RETURN_ADDR_RTX): Likewise.
6748         (dwarf2out_do_frame): Remove conditional compilation.
6749         (dwarf2out_frame_init): Likewise.
6750
6751 2010-08-05  Nicolas Setton  <setton@adacore.com>
6752
6753         * gcov.c (flag_display_progress): New static variable.
6754         (main): Display progress info on standard output if requested.
6755         (options): Add -d/--display-progress.
6756         (print_usage): Print them.
6757         (process_args): Handle them.
6758         * doc/gcov.texi: Document them.
6759
6760 2010-08-05  Martin Jambor  <mjambor@suse.cz>
6761
6762         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
6763         (ipcp_insert_stage): Redirect only edges not flagged with
6764         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
6765         discovered constants.
6766
6767 2010-08-05  Martin Jambor  <mjambor@suse.cz>
6768
6769         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
6770         (struct ipa_param_descriptor): New fields types and
6771         cannot_devirtualize.
6772         (ipa_param_cannot_devirtualize_p): New function.
6773         (ipa_param_types_vec_empty): Likewise.
6774         (ipa_make_edge_direct_to_target): Declare.
6775         * ipa-cp.c: Fixed first stage driver name in initial comment,
6776         described devirtualization there too.
6777         (ipcp_analyze_node): Call ipa_analyze_params_uses.
6778         (ipcp_print_all_lattices): Print devirtualization info.
6779         (ipa_set_param_cannot_devirtualize): New function.
6780         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
6781         lattice to BOTTOM.
6782         (ipcp_init_stage): Merged into...
6783         (ipcp_generate_summary): ...its caller.
6784         (ipcp_change_tops_to_bottom): Also process type lists.
6785         (ipcp_add_param_type): New function.
6786         (ipcp_copy_types): Likewise.
6787         (ipcp_propagate_types): Likewise.
6788         (ipcp_propagate_stage): Also propagate types.
6789         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
6790         Also return true if propagated types require it.
6791         (ipcp_update_callgraph): Dump redirection info.
6792         (ipcp_process_devirtualization_opportunities): New function.
6793         (ipcp_const_param_count): Include known type information.
6794         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
6795         on new node.  Fixed formatting.
6796         * ipa-prop.c (make_edge_direct_to_target): Renamed to
6797         ipa_make_edge_direct_to_target and changed all callers.  Made
6798         externally visible.
6799         (ipa_node_duplication_hook): Duplicate types vector.
6800         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
6801         redirect outgoing calls for which we can't get a decl from the
6802         statement.  Check that we can get a decl from the call statement.
6803         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6804         ipa_analyze_params_uses only when ipa-cp is disabled.
6805         * tree-inline.c (get_indirect_callee_fndecl): Removed.
6806         (expand_call_inline): Do not call get_indirect_callee_fndecl.
6807         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
6808         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
6809
6810 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
6811
6812         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
6813         temporary. Emit move from temporary to accum, so REG_EQUAL note will
6814         be attached to this insn in correct mode.
6815
6816 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
6817
6818         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
6819         using REGNO of base_reg directly.
6820
6821 2010-08-05  Jie Zhang  <jie@codesourcery.com>
6822
6823         PR tree-optimization/45144
6824         * tree-sra.c (type_consists_of_records_p): Return false
6825         if the record contains bit-field.
6826
6827 2010-08-04  Richard Henderson  <rth@redhat.com>
6828
6829         * config/i386/i386.c (struct ix86_frame): Remove padding and
6830         to_allocate members.
6831         (ix86_compute_frame_layout): Don't store them.
6832         (ix86_can_use_return_insn_p): Use a more direct and more obviously
6833         correct condition for the position of the stack pointer.
6834         (ix86_expand_prologue): Compute remaining stack allocation based
6835         on the ultimate stack pointer offset.
6836         (ix86_expand_epilogue): Use more obvious expressions testing for
6837         the stack pointer already pointing to the saved registers.
6838
6839         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
6840         duplication deconstructing the frame pointer.  Simplify
6841         deallocation of the local stack frame.
6842
6843         * reg-notes.def (CFA_EXPRESSION): New.
6844         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6845         (dwarf2out_frame_debug_cfa_expression): New.
6846         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
6847
6848         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
6849         * config/i386/i386.c (ix86_expand_prologue): Set it.
6850         (ix86_expand_epilogue): Clear it.
6851         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
6852         context, add REG_CFA_EXPRESSION notes.
6853
6854         * config/i386/i386.h (struct machine_frame_state): Rename from
6855         machine_cfa_state.  Add members tracking SP and FP regardless
6856         of the current CFA register.
6857         (ix86_cfa_state): Remove.
6858         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
6859         and sse_reg_save_offset members.
6860         (ix86_compute_frame_layout): Set them.
6861         (gen_push): Increment sp_offset too.
6862         (choose_baseaddr_len, choose_baseaddr): New.
6863         (ix86_emit_save_reg_using_mov): New.
6864         (ix86_emit_save_regs_using_mov): Use it.
6865         (ix86_emit_save_sse_regs_using_mov): Likewise.
6866         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
6867         compare vs the saved red_zone_offset.
6868         (pro_epilogue_adjust_stack): Adjust sp_offset.
6869         (ix86_adjust_stack_and_probe): Likewise.
6870         (ix86_expand_prologue): Set up, use, and validate the new
6871         frame_state_info members.  Use gen_frame_mem.
6872         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
6873         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
6874         new frame_state_info members.
6875         (ix86_emit_leave): Likewise.
6876         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
6877         out-of-range stack pointer offsets here.
6878         (ix86_emit_restore_sse_regs_using_mov): Likewise.
6879         (ix86_expand_epilogue): Use and validate the new frame_state_info
6880         members.  Break up and simplify the logic selecting the
6881         restore_regs_via_mov code path.  Ensure that there will be no
6882         out-of-range stack pointer offsets.
6883
6884         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
6885
6886         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
6887         argument name to reflect the expected tree; fix indentation.
6888         (ix86_asm_output_function_label): Output the entire 32-bit
6889         ms_hook here as bytes ...
6890         (ix86_expand_prologue): ... not here as insns.  Attach the
6891         unwind info for the ms_hook to a blockage insn.
6892         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
6893         (ix86_ms_bitfield_layout_p): Fix indentation.
6894         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
6895
6896         * config/i386/i386.c (ix86_using_red_zone): New.
6897         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
6898         ix86_expand_prologue, ix86_force_to_memory): Use it.
6899
6900         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
6901         saving the int registers.
6902
6903         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
6904         and DWARF2_UNWIND_INFO conditional compilation.
6905
6906 2010-08-04  Richard Henderson  <rth@redhat.com>
6907
6908         PR debug/45171
6909         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
6910         an is_naming_typedef_decl.
6911
6912 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
6913
6914         PR rtl-optimization/45162
6915         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
6916         * dce.c (word_dce_process_block): Likewise.
6917
6918 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
6919
6920         PR target/44583
6921         * config/ia64/constraints.md (Z): New.
6922         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
6923         (xfreg_or_signed_fp01_operand): New.
6924         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
6925         with fr_reg_or_signed_fp01_operand and constraint G with Z.
6926         (subsf3): Ditto.
6927         (*maddsf4): Ditto.
6928         (*msubsf4): Ditto.
6929         (adddf3): Ditto.
6930         (adddf3_trunc): Ditto.
6931         (subdf3): Ditto.
6932         (*subdf3_trunc): Ditto.
6933         (*madddf4): Ditto.
6934         (*madddf4_trunc): Ditto.
6935         (*msubdf4): Ditto.
6936         (*msubdf4_trunc): Ditto.
6937         (addxf3): Replace xfreg_or_fp01_operand with
6938         xfreg_or_signed_fp01_operand and constraint G with Z.
6939         (*addxf3_truncsf): Ditto.
6940         (*addxf3_truncdf): Ditto.
6941         (subxf3): Ditto.
6942         (*subxf3_truncsf): Ditto.
6943         (*subxf3_truncdf): Ditto.
6944         (*maddxf4): Ditto.
6945         (*maddxf4_truncsf): Ditto.
6946         (*maddxf4_truncdf): Ditto.
6947         (*msubxf4): Ditto.
6948         (*msubxf4_truncsf): Ditto.
6949         (*msubxf4_truncdf): Ditto.
6950
6951 2010-08-04  Richard Guenther  <rguenther@suse.de>
6952
6953         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
6954         if either alias-set is zero.
6955
6956 2010-08-04  Richard Guenther  <rguenther@suse.de>
6957
6958         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
6959         * tree-ssa-ccp.c: ... here.
6960         * tree-ssa-copy.c: ... and here.
6961         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
6962         value_range_t): Move ...
6963         * tree-vrp.c: ... here.
6964         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
6965         (substitute_and_fold): Adjust prototype.
6966         * tree-ssa-propagate.c (replace_uses_in): Adjust.
6967         (replace_phi_args_in): Likewise.
6968         (substitute_and_fold): Take callback to query lattice instead
6969         of pointer to lattice.  Replace SSA name defs with lattice
6970         values first.
6971         * tree-ssa-ccp.c (ccp_finalize): Adjust.
6972         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
6973         (get_value): New function.
6974         (fini_copy_prop): Adjust.
6975         * tree-vrp.c (vrp_finalize): Adjust.
6976
6977 2010-08-04  Richard Guenther  <rguenther@suse.de>
6978
6979         PR middle-end/45176
6980         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
6981         points-to set for original MEM_REF.
6982
6983 2010-08-04  Richard Guenther  <rguenther@suse.de>
6984
6985         * tree-ssa-ccp.c (get_constant_value): New function.
6986         (get_rhs_assign_op_for_ccp): Remove.
6987         (valueize_op): New function.
6988         (ccp_fold): Use get_constant_value and valueize_op.
6989         (fold_const_aggregate_ref): Likewise.
6990         (ccp_fold_stmt): Likewise.
6991         (visit_assignment): Simplify.
6992
6993 2010-08-04  Richard Guenther  <rguenther@suse.de>
6994
6995         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
6996         * double-int.h (double_int_ctz): Declare.
6997         * double-int.c (double_int_ctz): New function.
6998
6999 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
7000
7001         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
7002         Define.
7003         picochip_expand_movmemhi : Expand movmem pattern.
7004         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
7005         Declare.
7006         * config/picochip/picochip.md (movmemhi) : New pattern.
7007
7008 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
7009
7010         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
7011
7012 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
7013
7014         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
7015         NEG as operand of a MULT by merging it with the other operand.
7016         * combine.c (make_compound_operation): Use trunc_int_for_mode when
7017         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
7018         MULT.
7019         * config/arm/constraints.md (M): Examine only 32 bits of a
7020         HOST_WIDE_INT.
7021         * config/arm/predicates.md (power_of_two_operand): Likewise.
7022
7023 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7024
7025         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
7026         non-NOTE insns.
7027
7028 2010-08-03  Jan Hubicka  <jh@suse.cz>
7029
7030         * ipa-split.c (struct split_point): Add split_part_set_retval.
7031         (find_retval): Forward declare.
7032         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
7033         (consider_split): Compute current->split_part_set_retval.
7034         (visit_bb): Do not look into return value.
7035         (split_function): Handle !split_part_set_retval
7036
7037 2010-08-03  Martin Jambor  <mjambor@suse.cz>
7038
7039         * tree-sra.c (completely_scalarize_record): New parameter REF, create
7040         its own access->expr intead of using build_ref_for_offset.
7041
7042 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
7043
7044         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
7045         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
7046         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
7047         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
7048         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
7049         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
7050         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
7051         DEFAULT_SWITCH_TAKES_ARG.
7052         * config/rx/rx.opt (-patch=): Remove option.
7053         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
7054         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
7055         * doc/invoke.texi (RX Options): Remove -patch=.
7056         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
7057         (option_map): Remove --profile-blocks, --quiet and --silent.
7058
7059 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
7060
7061         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
7062         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
7063         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
7064         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7065         Update calls to ix86_expand_compare and ix86_expand_branch.
7066         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
7067         ix86_expand_compare.
7068         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
7069         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7070         Make static.
7071         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
7072         and ix86_compare_op1.  Update calls to ix86_expand_compare.
7073         (ix86_expand_int_movcc): Ditto.
7074         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
7075         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
7076         (ix86_expand_setcc): Ditto.
7077         (ix86_expand_compare): Remove prototype.
7078         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
7079         ix86_compare_op0 and ix86_compare_op1.  Update calls
7080         to ix86_expand_branch to directly pass operands[1] and operands[2].
7081         (cbranchxf4): Ditto.
7082         (cbranch<MODEF:mode>4): Ditto.
7083         (cbranchcc4): Ditto.
7084         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
7085         Update calls to ix86_expand_setcc to directly pass operands[2] and
7086         operands[3].
7087         (cstorexf4): Ditto.
7088         (cstore<MODEF:mode>4): Ditto.
7089         (cstorecc4): Ditto.
7090
7091 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
7092
7093         PR target/45063
7094         * caller-save.c (save_call_clobbered_regs): Remove regs from
7095         hard_regs_saved when they are set.
7096
7097 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
7098
7099         PR target/41089
7100         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
7101         as volatile.
7102
7103 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
7104
7105         * common.opt (ftree-loop-distribute-patterns): New.
7106         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
7107         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
7108         at -O3.
7109         * tree-data-ref.c (stores_zero_from_loop): New.
7110         * tree-data-ref.h (stores_zero_from_loop): Declared.
7111         * tree-loop-distribution.c (tree_loop_distribution): Call
7112         stores_zero_from_loop.
7113         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
7114
7115 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
7116
7117         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
7118         into account.
7119
7120         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
7121         * config/arm/arm.c (thumb1_code): New variable.
7122         (arm_override_options): Set it.
7123         (thumb1_final_prescan_insn): Keep track of condition code status.
7124         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
7125         jumps that depend on them.
7126         * config/arm/arm.h (thumb1_code): Declare variable.
7127         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
7128         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
7129         thumb1_cc_mode.
7130         (CC_STATUS_INIT): New macro.
7131         * config/arm/constraints.md (Pd): New constraint.
7132         * config/arm/predicates.md (noov_comparison_operator): New predicate.
7133         * config/arm/arm.md (is_thumb1): New define_attr.
7134         (conds): Set default to "clob" when generating Thumb1 code.
7135         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
7136         code are set.  Use two-operand assembly syntax.
7137         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
7138         pattern.
7139         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
7140         codes are set.  Use two-operand assembly syntax.
7141         (zero_extendhisi splitter): Remove constraints.
7142         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
7143         thumb1_movsf_insn): Set conds attribute as appropriate.
7144         (cbranchsi4_insn): Use condition code status from struct
7145         machine_function to determine whether the comparison can be eliminated.
7146         Discourage the alternative using high registers.
7147         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
7148         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
7149         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
7150         subsi3_cbranch): Delete.
7151         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
7152         one subtract and one cbranch insn.
7153
7154         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
7155         thumb2_movdf_soft_insn): Delete patterns.
7156         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
7157         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
7158         (pool_range, neg_pool_range): Use them to define defaults.
7159         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
7160         and allow for TARGET_32BIT.
7161
7162         PR target/40457
7163         * config/arm/arm.h (arm_regs_in_sequence): Declare.
7164         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
7165         load_multiple_sequence, store_multiple_sequence): Delete
7166         declarations.
7167         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
7168         declarations.
7169         * config/arm/ldmstm.md: New file.
7170         * config/arm/arm.c (arm_regs_in_sequence): New array.
7171         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
7172         CHECK_REGS.  All callers changed.
7173         If SAVED_ORDER is nonnull, copy the computed order into it.
7174         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
7175         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
7176         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
7177         If SAVED_ORDER is nonnull, copy the computed order into it.
7178         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
7179         like REGS.  Handle Thumb mode.
7180         (arm_gen_load_multiple_1): New function, broken out of
7181         arm_gen_load_multiple.
7182         (arm_gen_store_multiple_1): New function, broken out of
7183         arm_gen_store_multiple.
7184         (arm_gen_multiple_op): New function, with code from
7185         arm_gen_load_multiple and arm_gen_store_multiple moved here.
7186         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
7187         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
7188         changed.
7189         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
7190         * config/arm/predicates.md (commutative_binary_operator): New.
7191         (load_multiple_operation, store_multiple_operation): Handle more
7192         variants of these patterns with different starting offsets.  Handle
7193         Thumb-1.
7194         * config/arm/arm.md: Include "ldmstm.md".
7195         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
7196         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
7197         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
7198         peepholes): Delete.
7199         * config/arm/ldmstm.md: New file.
7200         * config/arm/arm-ldmstm.ml: New file.
7201
7202         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
7203         if statement which adds extra costs to frame-related expressions.
7204
7205 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7206
7207         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
7208
7209 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
7210
7211         PR target/45142
7212         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
7213         alternative 2.
7214         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
7215         split V4SI operands.
7216
7217 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
7218
7219         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7220         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
7221         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
7222         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
7223
7224 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
7225
7226         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
7227         LOCAL_INCLUDE_DIR.
7228
7229 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
7230
7231         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
7232         used in the call to optab_for_tree_code.  Fix the second
7233         is_widening_mult_p call.  Check that both unwidened operands
7234         have the same sign.
7235
7236 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
7237
7238         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
7239
7240 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
7241
7242         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7243
7244 2010-07-30  DJ Delorie  <dj@redhat.com>
7245
7246         * config/rx/predicates.md (rx_constshift_operand): New.
7247         * config/rx/rx.md (zs_cond): New.
7248         (cbranchsi4): Remove mode.
7249         (*cbranchsi4_<code>): Likewise.
7250         (*tstbranchsi4_<code>): New.
7251         (*tstbranchsi4r_<code>): New.
7252         (*tstbranchsi4m_eq): New.
7253         (*tstbranchsi4m_ne): New.
7254         (cbranchsf4): Remove mode.
7255         (*cbranchsf4_<code>): Likewise.
7256
7257 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
7258
7259         * rtlanal.c (simplify_subreg_regno): Don't treat
7260         HARD_FRAME_POINTER_REGNUM specially.
7261
7262 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
7263
7264         * common.opt (-G): Don't define option here.
7265         * config/g.opt: New.
7266         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
7267         rs6000/powerpc and score targets.
7268         * opts.c (common_handle_option): Don't handle -G here.
7269         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
7270         * config/frv/frv.c (frv_handle_option): Handle -G.
7271         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
7272         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
7273         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
7274         * config/mips/mips.c (mips_handle_option): Handle -G.
7275         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
7276         * config/score/score.c (score_handle_option): Handle -G.
7277
7278 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
7279
7280         * config/mmix/mmix.c: Include basic-block.h.
7281
7282 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
7283
7284         PR debug/45055
7285         PR rtl-optimization/45137
7286         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
7287         prototypes.
7288         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
7289         New functions.
7290         * combine.c (next_nonnote_nondebug_insn): Removed.
7291         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
7292         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
7293         * sched-deps.c (sched_analyze_insn): Likewise.
7294         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
7295         * rtlanal.c (canonicalize_condition): Likewise.
7296         * postreload.c (reload_combine_recognize_pattern): Likewise.
7297         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
7298
7299 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
7300
7301         * config/i386/i386.md (int_cond): Remove code iterator.
7302         (fp_cond): Ditto.
7303         (cbranch<mode>4): Use ordered_comparison_operator predicate
7304         for operator0.
7305         (cstore<mode>4): Ditto for operator1.
7306         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
7307         (add<mode>cc): ditto.
7308
7309 2010-07-30  Richard Guenther  <rguenther@suse.de>
7310
7311         PR middle-end/45141
7312         * expr.c (expand_expr_real_1): Check for not handled base address.
7313
7314 2010-07-30  Richard Guenther  <rguenther@suse.de>
7315
7316         * ipa-prop.c (ipa_modify_formal_parameters): Use
7317         build_distinct_type_copy.
7318
7319 2010-07-30  Anthony Green  <green@moxielogic.com>
7320
7321         * config/moxie/rtems.h: New file.
7322         * config.gcc: Add moxie-rtems support.
7323
7324 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7325
7326         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
7327         df flags as in run_fast_df_dce.
7328
7329 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7330
7331         Revert:
7332         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7333
7334         * rtl.def (NOTE): Swap operands 4 and 5.
7335         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
7336         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
7337         Adjust accordingly.
7338         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
7339
7340 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7341
7342         PR debug/45110
7343         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
7344         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
7345         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
7346         formal parameters.
7347         (gen_decl_die): Change return type to dw_die_ref, return what
7348         gen_formal_parameter_die returned.
7349
7350 2010-07-29  Martin Jambor  <mjambor@suse.cz>
7351
7352         * dbgcnt.def (eipa_sra): New counter.
7353         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
7354
7355 2010-07-29  Xinliang David Li  <davidxl@google.com>
7356
7357         PR bootstrap/45119
7358         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
7359         in revision 162652.
7360
7361 2010-07-29  Richard Guenther  <rguenther@suse.de>
7362
7363         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
7364         (TV_TREE_STORE_CCP): Likewise.
7365         (TV_TREE_REDPHI): Likewise.
7366
7367 2010-07-29  Richard Guenther  <rguenther@suse.de>
7368
7369         * double-int.h (double_int_and_not): New function.
7370         * combine.c (try_combine): Use it.
7371         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
7372
7373 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7374
7375         PR rtl-optimization/42575
7376         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
7377         Argument AU removed.  All callers changed.  Ignore artificial refs.
7378         Use return value of df_word_lr_simulate_defs to decide whether an insn
7379         is necessary.
7380         (fast_dce): Rename arg to WORD_LEVEL.
7381         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
7382         static.
7383         (pass_fast_rtl_byte_dce): Delete.
7384         * dce.h (run_word_dce): Declare.
7385         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
7386         All callers changed.  Simplify code to only deal with two-word regs.
7387         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
7388         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
7389         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
7390         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
7391         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
7392         (df_word_lr_mark_ref): Declare.
7393         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
7394         df_word_lr_simulate_uses): Declare or rename from byte variants.
7395         (df_byte_lr_simulate_artificial_refs_at_top,
7396         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7397         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
7398         declarations.
7399         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
7400         (enum df_mm): Delete.
7401         * df-byte-scan.c: Delete file.
7402         * df-problems.c (df_word_lr_problem_data): Renamed from
7403         df_byte_lr_problem_data, all members deleted except for
7404         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
7405         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
7406         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7407         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
7408         df_byte_lr_confluence_0): Delete functions.
7409         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
7410         callers changed.
7411         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
7412         Don't initialize members that were deleted, don't try to discover data
7413         about registers.  Ignore hard regs.
7414         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
7415         (df_word_lr_mark_ref): New function.
7416         (df_word_lr_bb_local_compute): Renamed from
7417         df_byte_bb_lr_local_compute; all callers changed.  Use
7418         df_word_lr_mark_ref.  Assert that artificial refs don't include
7419         pseudos.  Ignore hard registers.
7420         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
7421         Assert that exit block uses don't contain pseudos.
7422         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
7423         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
7424         callers changed.  Ignore hard regs.
7425         (df_word_lr_transfer_function): Renamed from
7426         df_byte_lr_transfer_function; all callers changed.
7427         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
7428         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
7429         changed.
7430         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
7431         callers changed.
7432         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
7433         confluence operator 0 set to NULL.
7434         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
7435         callers changed.
7436         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
7437         Return bool, true if bitmap changed or insn otherwise necessary.
7438         All callers changed.  Simplify using df_word_lr_mark_ref.
7439         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
7440         all callers changed.  Simplify using df_word_lr_mark_ref.
7441         * lower-subreg.c: Include "dce.h"
7442         (decompose_multiword_subregs): Call run_word_dce if df available.
7443         * Makefile.in (lower-subreg.o): Adjust dependencies.
7444         (df-byte-scan.o): Delete.
7445         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
7446
7447 2010-07-29  Richard Guenther  <rguenther@suse.de>
7448
7449         * tree.c (build_vector): Assert that the vector constant
7450         has enough elements.
7451         (build_vector_from_ctor): Pad with trailing zeros.
7452
7453 2010-07-29  Richard Guenther  <rguenther@suse.de>
7454
7455         PR tree-optimization/45120
7456         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7457         Handle offset in DEREFs properly.
7458         (get_constraint_for_1): Handle MEM_REF offset properly.
7459
7460 2010-07-29  Richard Guenther  <rguenther@suse.de>
7461
7462         PR middle-end/45034
7463         * convert.c (convert_to_integer): Always use an unsigned
7464         type for narrowed negate and bitwise not.
7465
7466 2010-07-29  Ira Rosen  <irar@il.ibm.com>
7467
7468         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
7469         to outer loop when creating reduction epilogue for double reduction,
7470         and switch back to the inner loop when updating the phi nodes.
7471         Update uses of outer loop exit phi nodes in double reduction (instead
7472         of uses of reduction).
7473
7474 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
7475
7476         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
7477         popcount on power7 and parity on power6 systems.
7478         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
7479         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
7480         instructions.
7481
7482         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
7483         (UNSPEC_PARITY): Ditto.
7484         (SFDF): New iterator for SF/DF.
7485         (rreg2): New mode attribute for floating register constraint.
7486         (TARGET_FLOAT): New mode attribute for whether single/double float
7487         is supported.
7488         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
7489         pattern.
7490         (parity<mode>2_cmpb): New insn for parity on power6 and newer
7491         machines.
7492         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
7493         pattern.  Add support for fcpsgn instruction added in power6.
7494         (copysignsf3): Delete.
7495         (copysigndf3): Delete.
7496         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
7497         instead of if_then_else in RTL to avoid problems with -0.
7498
7499         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
7500         of if_then_else to mirror scalar code.
7501         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
7502         rs6000.md.
7503
7504         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
7505         instead of if_then_else.
7506
7507 2010-07-28  Xinliang David Li  <davidxl@google.com>
7508
7509         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
7510         (dump_cand): Dump var_before/after.
7511         (htab_inv_expr_eq): New function.
7512         (htab_inv_expr_hash): New function.
7513         (tree_ssa_iv_optimize_init): Support pseudo invariants.
7514         (add_candidate_1): consider base type precision.
7515         (set_use_iv_cost): New parameter.
7516         (adjust_setup_cost): Use profile information.
7517         (get_address_cost): Do not hard code width in computing address
7518         offset limits.
7519         (compare_aff_trees): New function.
7520         (get_loop_invariant_expr_id): New function.
7521         (get_computation_cost_at): New parameter and use profile information.
7522         (get_computation_cost): New parameter.
7523         (determine_use_iv_cost_generic): Pass new parameter.
7524         (determine_use_iv_cost_address): Ditto.
7525         (determine_use_iv_cost_condition): Ditto.
7526         (autoinc_possible_for_pair): Ditto.
7527         (determine_use_iv_costs): More dumps.
7528         (iv_ca_get_num_inv_exprs): New function.
7529         (iv_ca_recount_cost): Consider loop invariants in register pressure
7530         cost.
7531         (iv_ca_add_use): New parameter.
7532         (iv_ca_dump): Better dumping.
7533         (iv_ca_extend): New parameter.
7534         (try_add_cand_for): Attempt to get better partial solution.
7535         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
7536         (create_new-ivs): More dumps.
7537         (rewrite_use_compare): Ditto.
7538         (free_loop_data): More cleanup.
7539         (treee_ssa_iv_optimize_finalize): Ditto.
7540
7541 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
7542
7543         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
7544         * config/i386/i386.c (ix86_profile_before_prologue): New.
7545         (override_options): Add special handling for -mfentry.
7546         (ix86_function_regparm): Likewise.
7547         (ix86_function_sseregparm): Likewise.
7548         (ix86_frame_pointer_required): Likewise.
7549         (ix86_expand_prologue): Check for ms_hook_prologue.
7550         (x86_function_profiler): Adjust mcount output.
7551         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
7552         * config/i386/i386.opt (mfentry): New.
7553         * doc/invoke.texi (mfentry): Add documentation.
7554         * doc/tm.texi: Regenerated..
7555         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
7556         * final.c (final_start_function): Replace macro
7557         PROFILE_BEFORE_PROLOGUE by target hook.
7558         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7559         * target.def (profile_before_prologue): New hook.
7560         * targhooks.c (default_profile_before_prologue): New.
7561         * targhooks.h (default_profile_before_prologue): New.
7562
7563 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
7564
7565         PR debug/45105
7566         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
7567
7568         PR debug/45103
7569         * dwarf2out.c (dwarf2out_var_location): Always consider
7570         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
7571
7572 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
7573
7574         PR rtl-optimization/45107
7575         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
7576
7577 2010-07-28  Richard Guenther  <rguenther@suse.de>
7578
7579         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
7580         (set_lattice_value): Do not query an old default value.
7581         (get_value_for_expr): New function.  Properly canonicalize
7582         float values.
7583         (ccp_visit_phi_node): Use it.
7584
7585 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
7586
7587         * config/arm/arm.c (arm_pcs_default): Remove static.
7588         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
7589         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
7590         (arm_pcs_default): Declare.
7591
7592 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
7593
7594         * config/rs6000/rs6000.c (rs6000_override_options):
7595         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
7596         ... to darwin_rs6000_override_options.
7597         (rs6000_return_in_memory): Update preceding comment for darwin
7598         64 bit ABI.  Use TARGET_MACHO inline.
7599         (rs6000_darwin64_struct_check_p): New.
7600         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
7601         (function_arg): Likewise.
7602         (rs6000_arg_partial_bytes): Likewise.
7603         (rs6000_function_value): Likewise.
7604
7605 2010-07-28  Andi Kleen  <ak@linux.intel.com>
7606
7607         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
7608
7609 2010-07-28  Richard Guenther  <rguenther@suse.de>
7610
7611         PR middle-end/44903
7612         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
7613         targets try harder to not generate unaligned accesses.
7614
7615 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
7616
7617         PR rtl-optimization/45101
7618         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
7619         for gcse-las.
7620
7621 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
7622
7623         PR tree-optimization/44885
7624         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
7625         with non-aliased component.
7626
7627 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
7628
7629         * config/darwin-driver.c (SWITCH_TAKES_ARG,
7630         WORD_SWITCH_TAKES_ARG): Remove.
7631         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7632         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
7633         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
7634         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
7635         definitions from gcc.c.
7636         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
7637         defaults.h.
7638         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
7639         Move to defaults.h.
7640         * opts-common.c: Include tm.h.
7641         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
7642         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
7643         Handle more than one argument.  Set canonical_option_num_elements.
7644         (decode_cmdline_options_to_array): Set
7645         canonical_option_num_elements and trailing elements of
7646         canonical_option.
7647         * opts.h (struct cl_decoded_option): Allow four elements in
7648         canonical_option.  Add field canonical_option_num_elements.
7649         * Makefile.in (opts-common.o): Update dependencies.
7650
7651 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
7652
7653         PR middle-end/44790
7654         PR middle-end/44993
7655         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
7656         sure the base has address_mode before adding the offset.
7657
7658 2010-07-27  Xinliang David Li  <davidxl@google.com>
7659
7660         * tree-flow.h (create_mem_ref): Add one new parameter.
7661         * tree-ssa-address.c (create_mem_ref): New parameter.
7662         (addr_to_parts): Ditto.
7663         (move_variant_to_index): New function.
7664         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
7665
7666 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7667
7668         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
7669         4 and 5.
7670         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
7671         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
7672         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
7673         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
7674         CODE_LABELs and NOTEs.
7675         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
7676         * combine.c (try_combine): Likewise.
7677         * ira.c (setup_prohibited_mode_move_regs): Likewise.
7678         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
7679
7680 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
7681
7682         * coretypes.h (struct cl_option_handlers): Declare.
7683         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
7684         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
7685         * langhooks-def.h (lhd_handle_option): Declare.
7686         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
7687         * langhooks.c (lhd_handle_option): New.
7688         * langhooks.h (struct lang_hooks): Update prototype and return
7689         value type of handle_option hook.
7690         * optc-gen.awk: Generate target_flags_explicit definition for the
7691         driver.
7692         * opts-common.c: Include diagnostic.h.
7693         (handle_option): Move from opts.c.  Update prototype and return
7694         value type.  Use handlers structure.
7695         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
7696         handlers structure.
7697         (set_option): Move from opts.c.
7698         * opts.c (common_handle_option): Update prototype and return value
7699         type.  Update calls to handle_option and enable_warning_as_error.
7700         (unknown_option_callback, post_handling_callback,
7701         lang_handle_option, target_handle_option): New.
7702         (handle_option, read_cmdline_option): Move to opts-common.c.
7703         (read_cmdline_options): Update prototype.  Update call to
7704         read_cmdline_option.
7705         (decode_options): Initialize and use handlers structure.
7706         (set_option): Move to opts-common.c.
7707         (enable_warning_as_error): Update prototype.  Update call to
7708         handle_option.
7709         * opts.h (struct cl_option_handler_func, struct
7710         cl_option_handlers): New.
7711         (handle_option, enable_warning_as_error): Update prototypes.
7712         (read_cmdline_option): Declare.
7713         * Makefile.in (opts-common.o): Update dependencies.
7714
7715 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7716
7717         * config/arm/arm.c (params.h): Include.
7718         (arm_override_options): Tune gcse-unrestricted-cost.
7719         * config/arm/t-arm (arm.o): Define dependencies.
7720
7721 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7722
7723         PR target/42495
7724         PR middle-end/42574
7725         * basic-block.h (get_dominated_to_depth): Declare.
7726         * dominance.c (get_dominated_to_depth): New function, use
7727         get_all_dominated_blocks as a base.
7728         (get_all_dominated_blocks): Use get_dominated_to_depth.
7729
7730         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
7731         (hoist_exprs): Remove.
7732         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
7733         (compute_code_hoist_vbeinout): Add debug print outs.
7734         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
7735
7736         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
7737         quadratic behavior.
7738         * params.h (MAX_HOIST_DEPTH): New macro.
7739         * doc/invoke.texi (max-hoist-depth): Document.
7740
7741 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7742
7743         PR rtl-optimization/40956
7744         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
7745         constants.
7746
7747 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7748
7749         PR target/42495
7750         PR middle-end/42574
7751         * config/arm/arm.c (legitimize_pic_address): Use
7752         gen_calculate_pic_address pattern to emit calculation of PIC address.
7753         (will_be_in_index_register): New function.
7754         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
7755         (thumb1_legitimate_address_p): Use it provided !strict_p.
7756         * config/arm/arm.md (calculate_pic_address): New expand and split.
7757
7758 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7759
7760         PR target/42495
7761         PR middle-end/42574
7762         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
7763         * config/arm/arm.md (define_split "J", define_split "K"): Make
7764         IRA/reload friendly.
7765
7766 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7767
7768         * gcse.c (insert_insn_end_basic_block): Update signature, remove
7769         unused checks.
7770         (pre_edge_insert, hoist_code): Update.
7771
7772 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7773
7774         PR target/42495
7775         PR middle-end/42574
7776         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
7777
7778 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7779
7780         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
7781
7782 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7783
7784         PR rtl-optimization/40956
7785         PR target/42495
7786         PR middle-end/42574
7787         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
7788         for hoisting.
7789         (hoist_code): Count occurences in current block too.
7790
7791 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7792
7793         * gcse.c (struct expr:max_distance): New field.
7794         (doing_code_hoisting_p): New static variable.
7795         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
7796         simple expressions, don't change behavior for PRE.  Set max_distance.
7797         (insert_expr_in_table): Set new max_distance field.
7798         (hash_scan_set): Update.
7799         (hoist_expr_reaches_here_p): Stop search after max_distance
7800         instructions.
7801         (find_occr_in_bb): New static function.  Use it in ...
7802         (hoist_code): Calculate sizes of basic block before any changes are
7803         done.  Pass max_distance to hoist_expr_reaches_here_p.
7804         (one_code_hoisting_pass): Set doing_code_hoisting_p.
7805
7806         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
7807         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
7808         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
7809         macros.
7810         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
7811         Document.
7812
7813 2010-07-27  Jeff Law  <law@redhat.com>
7814             Maxim Kuvyrkov  <maxim@codesourcery.com>
7815
7816         * gcse.c (compute_transpout, transpout): Remove, move logic
7817         to prune_expressions.
7818         (compute_pre_data): Move pruning of trapping expressions ...
7819         (prune_expressions): ... here.  New static function.
7820         (compute_code_hoist_data): Use it.
7821         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
7822
7823 2010-07-27  Xinliang David Li  <davidxl@google.com>
7824
7825         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
7826         (rewrite_use_address): Adjust iv update position when needed.
7827
7828 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7829
7830         * dbgcnt.def (hoist_insn): New debug counter.
7831         * gcse.c (hoist_code): Use it.
7832
7833 2010-07-27  Xinliang David Li  <davidxl@google.com>
7834
7835         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
7836         (niter_for_single_dom_exit): Passes additional parameter.
7837         (iv_period): Fix comments.
7838         (may_eliminate_iv): Handles multiple exit loops properly.
7839         (free_tree_niter_desc): New function.
7840         (free_loop_data): Frees up loop iteration descriptors.
7841
7842 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
7843
7844         PR target/44542
7845         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
7846         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
7847         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
7848         (expand_one_var): Don't consider DECL_ALIGN for variables for
7849         which expand_one_stack_var_at has been already called.
7850
7851         PR testsuite/44701
7852         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
7853         constraints on IA-64.
7854
7855 2010-07-27  Jie Zhang  <jie@codesourcery.com>
7856
7857         PR target/44290
7858         Revert:
7859         2010-07-23  Jie Zhang  <jie@codesourcery.com>
7860
7861         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
7862         false if ! tree_versionable_function_p.
7863
7864 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
7865
7866         * dwarf2out.c (add_data_member_location_attribute): Use
7867         add_AT_unsigned instead of add_AT_int if offset is non-negative.
7868
7869 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7870
7871         * postreload.c (try_replace_in_use): New static function.
7872         (reload_combine_recognize_const_pattern): Use it here.  Allow
7873         substituting into a final add insn, and substituting into a memory
7874         reference in an insn that sets the reg.
7875
7876 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
7877
7878         * common.opt (o): Add MissingArgError.
7879         * doc/options.texi (MissingArgError): Document.
7880         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
7881         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
7882         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
7883         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
7884         * langhooks.h (struct lang_hooks): Remove missing_argument.
7885         * optc-gen.awk: Handle MissingArgError and output new structure
7886         field initializers.
7887         * opts.c (read_cmdline_option): Use missing_argument_error field
7888         instead of missing_argument langhook.
7889         * opts.h (struct cl_option): Add missing_argument_error field.
7890         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
7891
7892 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
7893
7894         PR target/29090
7895         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
7896         Darwin64 ABI, for zero-sized objects.
7897
7898 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
7899
7900         PR target/35491
7901         PR target/29090
7902
7903         Merge from Apple local 4.2.1.
7904         2005-05-11  Stan Shebs  <shebs@apple.com>
7905         Fix 64-bit varargs for Darwin (Radar 4028089).
7906         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
7907         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
7908         Add argument, add case for 8-byte register half-filled with a float.
7909         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
7910         single-precision floats specially.
7911
7912 2010-07-27  Ira Rosen  <irar@il.ibm.com>
7913
7914         PR tree-optimization/44152
7915         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
7916         complex numbers for further check.
7917         (vect_supported_load_permutation_p): Check nodes with
7918         complex numbers.
7919
7920 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
7921
7922         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
7923         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
7924         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
7925         (LANG_HOOKS_INITIALIZER): Add new hooks.
7926         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
7927         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
7928         and complain_wrong_lang_p.  Update init_options prototype.
7929         * c-objc-common.c (c_initialize_diagnostics): First call
7930         c_common_initialize_diagnostics.
7931         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
7932         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
7933         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
7934         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
7935         (hook_uint_void_0): New.
7936         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
7937         (hook_uint_void_0): New.
7938         * opts-common.c (decode_cmdline_option,
7939         decode_cmdline_options_to_array): Also fill in canonical_option field.
7940         * opts.c (complain_wrong_lang): Use langhook to determine whether
7941         to complain instead of special-casing LTO.
7942         (decode_options): Separate lang_mask determination with
7943         option_lang_mask hook from call of init_options hook.
7944         * opts.h (struct cl_decoded_option): Add canonical_option.
7945
7946 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
7947
7948         PR tree-optimization/45083
7949         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
7950
7951 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7952
7953         * postreload.c (reload_combine_recognize_const_pattern): Move test
7954         for limiting the insn movement to the right scope.
7955
7956         PR rtl-optimization/45051
7957         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
7958         than reg_mentioned_p.
7959
7960 2010-07-26  Richard Henderson  <rth@redhat.com>
7961
7962         PR target/44132
7963         * tree-emutls.c: New file.
7964         * Makefile.in (OBJS-common): Add it.
7965         * tree-pass.h (pass_ipa_lower_emutls): Declare.
7966         * passes.c (init_optimization_passes): Add it.
7967
7968         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
7969         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
7970         * expr.c (emutls_var_address): Delete.
7971         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
7972         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
7973         (emutls_finish): Delete.
7974         * toplev.c (compile_file): Don't call it.
7975         * tree.h (emutls_decl): Delete.
7976         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
7977         (emutls_finish, emutls_finalize_control_var): Delete.
7978         (emutls_object_type): Move to tree-emutls.c.
7979         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
7980         default_emutls_var_fields, get_emutls_object_type,
7981         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
7982         default_emutls_var_init): Likewise.
7983         (get_variable_section): Don't special case emutls.
7984         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
7985         default_elf_select_section, default_unique_section,
7986         default_encode_section_info): Likewise.
7987         * varpool.c (decide_is_variable_needed): Likewise.
7988         * gimple-iterator.c (update_call_edge_frequencies): New
7989         (gsi_insert_on_edge_immediate): Use it.
7990         (gsi_insert_seq_on_edge_immediate): Likewise.
7991         (gsi_commit_one_edge_insert): Likewise.
7992
7993         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
7994         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
7995         (x86_64_elf_unique_section): Likewise.
7996
7997 2010-07-26  Jan Hubicka  <jh@suse.cz>
7998
7999         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
8000         GTY((skip)).
8001
8002 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
8003
8004         * target.def (output_source_filename): New hook.
8005         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
8006         * doc/tm.texi: Regenerate.
8007         * toplev.c (output_file_directive) Remove function.
8008         * toplev.h (output_file_directive) Remove.
8009         * output.h (default_asm_output_source_filename,
8010         output_file_directive): Declare.
8011         * varasm.h (default_asm_output_source_filename,
8012         output_file_directive): New functions.
8013
8014         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
8015         * config/mips/mips-protos.h (mips_output_filename): Remove.
8016         * config/mips/mips.c (mips_output_filename): Make Static.
8017         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
8018
8019 2010-07-26  Richard Guenther  <rguenther@suse.de>
8020
8021         PR tree-optimization/43784
8022         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
8023         if the destination is used by the call.
8024
8025 2010-07-26  Richard Guenther  <rguenther@suse.de>
8026
8027         PR middle-end/45073
8028         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
8029         SSA updating on being in SSA form.
8030
8031 2010-07-26  Richard Guenther  <rguenther@suse.de>
8032
8033         PR middle-end/45056
8034         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
8035
8036 2010-07-26  Richard Guenther  <rguenther@suse.de>
8037
8038         PR tree-optimization/45071
8039         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
8040         adjust op->opcode.
8041
8042 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
8043
8044         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
8045         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
8046         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
8047         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
8048         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
8049         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
8050         save_r31, return_r31, save_interrupt, return_interrupt,
8051         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
8052         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
8053         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
8054         new ABI requirements.
8055         (save_r6_r9, L_callt_save_r6_r9): Remove.
8056         * config/v850/predicates.md (even_reg_operand, disp23_operand,
8057         const_float_1_operand const_float_0_operand): New Predicates.
8058         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
8059         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
8060         * config/v850/t-v850: Update multilibs for new target variants.
8061         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
8062         * config/v850/t-v850e: Likewise.
8063         * config/v850/v850.c (v850_issue_rate): New.
8064         (v850_strict_argument_naming): New.
8065         (function_arg): Modify to generate a different ABI.
8066         (print_operand): Update case 'z' to support float modes.
8067         (output_move_single): Modify to generate appropriate and better
8068         assembly.
8069         (v850_float_z_comparison_operator, v850_select_cc_mode,
8070         v850_float_nz_comparison_operator,  v850_gen_float_compare,
8071         v850_gen_compare): New functions to support comparison of float values.
8072         (ep_memory_offset): Add support for V850E2 targets.
8073         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
8074         (INTERRUPT_REGPARM_NUM): Remove.
8075         (compute_register_save_size): Add extra case to save/restore long call.
8076         (use_prolog_function): New function to support prologue.
8077         (expand_prologue): Add support for V850E2 targets and modified
8078         as per the current ABI requirements.
8079         (expand_epilogue): Likewise.
8080         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
8081         (construct_save_jarl): Likewise.
8082         (construct_dispose_instruction): Update as per the current ABI
8083         requirements.
8084         (construct_prepare_instruction): Likewise.
8085         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
8086         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
8087         (CPP_SPEC): Updated to support v850e2 targets.
8088         (STRICT_ALIGNMENT): Modified.
8089         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
8090         (FIXED_REGISTERS): Likewise.
8091         (CALL_USED_REGISTERS): Likewise.
8092         (CONDITIONAL_REGISTER_USAGE): Updated.
8093         (HARD_REGNO_MODE_OK): Updated.
8094         (reg_class): Updated to add even registers.
8095         (REG_CLASS_NAMES): Likewise.
8096         (REG_CLASS_CONTENTS): Likewise.
8097         (REGNO_REG_CLASS): Updated for CC registers.
8098         (REG_CLASS_FROM_LETTER): Added support for even registers.
8099         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
8100         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
8101         ARG_POINTER_REGNUM): Updated.
8102         (FUNCTION_ARG_ADVANCE): Define.
8103         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
8104         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
8105         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
8106         (GO_IF_LEGITIMATE_ADDRESS): Updated.
8107         (SELECT_CC_MODE): Define.
8108         (REGISTER_NAMES): Updated to add psw and fcc registers.
8109         (ADDITIONAL_REGISTER_NAMES): Updated.
8110         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
8111         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
8112         * config/v850/v850.md (define_constants): Define new constants.
8113         (type): Update store,bit1,macc,div,fpu and single attributes.
8114         (cpu): New attribute.
8115         (cc): Add set_z attribute.
8116         (unsign23byte_load, sign23byte_load, unsign23hword_load,
8117         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
8118         23word_store): New instructions for 23-bit displacement load and store.
8119         (movqi_internal, movhi_internal): Update the attributes.
8120         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
8121         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
8122         the attributes.
8123         (v850_tst1): Modified using CC_REGNUM.
8124         (tstsi): Remove.
8125         (cmpsi): Modified as define_expand from define_insn.
8126         (cmpsi_insn, cmpsf, cmpdf): New instructions.
8127         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
8128         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
8129         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
8130         one_cmplsi2): Clobber the CC_REGNUM register.
8131         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
8132         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
8133         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
8134         (setf_insn, set_z_insn, set_nz_insn): New instructions for
8135         v850e2v3 target.
8136         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
8137         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
8138         targets.
8139         (sasf_1, sasf_2): Remove.
8140         (sasf): New instruction.
8141         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
8142         targets. CC_REGNUM register is clobbered and attributes are
8143         updated.
8144         (branch_z_normal, branch_z_invert, branch_nz_normal,
8145         branch_nz_invert): New branch related instructions.
8146         (jump): Updated the attributes.
8147         (switch): Update to support new targets. CC_REGNUM register is
8148         clobbered and attributes are updated.
8149         (call_internal_short, call_internal_long, call_value_internal_short,
8150         call_value_internal_long): Updated the attributes.
8151         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
8152         clobbered and attributes are updated.
8153         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
8154         Update to support new targets. CC_REGNUM register is clobbered.
8155         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
8156         instructions.
8157         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
8158         are updated.
8159         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
8160         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
8161         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
8162         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
8163         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
8164         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
8165         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
8166         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
8167         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
8168         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
8169         point instructions defined for V850e2v3 target.
8170         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
8171         Add support for V850E2 targets and CC_REGNUM register is clobbered.
8172         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
8173         support for new targets.
8174         * config/v850/v850-modes.def: New file.
8175         * config/v850/v850.opt(mstrict-align): Remove.
8176         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
8177         mv850e2v3): New command line options for V850.
8178         * config.gcc: Update the newly added files.
8179         * doc/invoke.texi: Update the newly added command line options for
8180         V850 target.
8181
8182 2010-07-26  Richard Guenther  <rguenther@suse.de>
8183
8184         PR tree-optimization/45052
8185         * ipa-pure-const.c (check_stmt): Check volatileness.
8186
8187 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8188
8189         PR target/44707
8190         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
8191         * config/sparc/sparc.c: Include reload.h.
8192         (legitimize_tls_address): Rename into...
8193         (sparc_legitimize_tls_address): ...this.
8194         (legitimize_pic_address): Rename into...
8195         (sparc_legitimize_pic_address): ...this.
8196         (sparc_expand_move): Adjust to above renaming.
8197         (sparc_tls_referenced_p): Likewise.
8198         (sparc_legitimize_tls_address): Likewise.
8199         (sparc_legitimize_pic_address): Likewise.
8200         (sparc_legitimize_address): Likewise.
8201         (sparc_output_mi_thunk): Likewise.
8202         (sparc_legitimize_reload_address): New global function.  Recognize
8203         (lo_sum (high ...) ...) patterns generated by earlier passes.
8204         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
8205
8206 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8207
8208         PR target/44484
8209         * config/sparc/predicates.md (memory_reg_operand): Delete.
8210         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
8211         (*sync_compare_and_swap): Encode the address form in the pattern.
8212         (*sync_compare_and_swapdi_v8plus): Likewise.
8213
8214 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
8215
8216         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
8217         Streamline paragraph on compatibility with the system compiler.
8218
8219 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
8220
8221         PR middle-end/45035
8222         * alias.c (true_dependence_1): Fix thinko in merge of old
8223         true_dependence and canon_true_dependence.
8224
8225 2010-07-23  Jan Hubicka  <jh@suse.cz>
8226
8227         * lto-streamer-out.c (write_symbol): Fix visibilities of external
8228         references.
8229
8230 2010-07-23  Le-Chun Wu  <lcwu@google.com>
8231
8232         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
8233         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
8234         and an unnecessary assignment.
8235         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
8236         self-assign warning.
8237         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
8238         unnecessary self-init.
8239
8240 2010-07-23  Richard Guenther  <rguenther@suse.de>
8241
8242         PR lto/43071
8243         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
8244         for -flto and -fwhopr.
8245
8246 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
8247
8248         PR target/41943
8249         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
8250         (stmp-int-hdrs): Prefix/postfix headers by include_next.
8251         * config.gcc (user_headers_inc_next_pre): New.
8252         (user_headers_inc_next_post): Likewise.
8253         (*-w64-mingw*): Use for float.h post-fixing, and for
8254         stddef.h/stdarg.h pre-fixing by include_next.
8255         * configure.ac (user_headers_inc_next_post): New.
8256         (user_headers_inc_next_pre): New.
8257         * configure: Regenerated.
8258
8259 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8260
8261         * configure.ac: Don't disable TLS on Solaris 8/9 by default
8262         Set tga_func for Solaris 2/x86 resp. SPARC.
8263         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
8264         (LIB_THREAD_LDFLAGS_SPEC): Define.
8265         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
8266         * configure: Regenerate.
8267         * config.in: Regenerate.
8268         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
8269         -pthread, -threads, LIB_TLS_SPEC with -pthread.
8270         * doc/install.texi (Specific, *-*-solaris2*): Document use of
8271         alternate thread libraries on Solaris 8.
8272         Document TLS patch requirements.
8273         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
8274         Document tls.
8275
8276         PR target/18788
8277         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
8278         -shared.
8279
8280 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
8281
8282         * tree.h (struct tree_base): Add nameless_flag bitfield.
8283         (TYPE_NAMELESS, DECL_NAMELESS): Define.
8284         * omp-low.c (create_omp_child_function, scan_omp_parallel,
8285         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
8286         DECL_ARTIFICIAL where needed.
8287         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
8288         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
8289         has DECL_NAMELESS set.
8290
8291 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8292
8293         PR tree-optimization/44915
8294         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
8295         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
8296         (analyze_function): Likewise.
8297
8298 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8299
8300         PR tree-optimization/44914
8301         * tree-sra.c (sra_modify_function_body): Return true if CFG was
8302         changed, add purging dead eh edges.
8303         (ipa_sra_modify_function_body): Return true if CFG was changed,
8304         simplify purging dead eh edges.
8305         (modify_function): Return true if CFG was changed.
8306         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
8307         was changed.
8308         (ipa_early_sra): Likewise.
8309
8310 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8311
8312         PR target/44290
8313         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
8314         if "naked".
8315         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8316         false if ! tree_versionable_function_p.
8317
8318 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
8319
8320         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
8321         * ipa-pure-const.c (special_builtlin_state): Remove
8322         BUILT_IN_ARGS_INFO case.
8323         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8324         * builtins.c (expand_builtin): Likewise.
8325         (expand_builtin_args_info): Remove.
8326         * doc/tm.texi (__builtin_args_info): Remove.
8327         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
8328         * doc/tm.text.in: Likewise.
8329
8330 2010-07-23  Richard Guenther  <rguenther@suse.de>
8331
8332         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
8333         (lto_symtab_merge_decls_2): Likewise.
8334         * tree-ssa.c (useless_type_conversion_p): Likewise.
8335         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8336         * gimple.c (gtc_visited2, gtc_ob2): Remove.
8337         (struct type_pair_d): Make same_p an array indexed by mode.
8338         Update comment.
8339         (lookup_type_pair): Update initialization.
8340         (struct sccs): Adjust same_p type.
8341         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
8342         Adjust.
8343         (print_gimple_types_stats): Likewise.
8344         * gimple.h (enum gtc_mode): New.
8345         (gimple_types_compatible_p): Adjust prototype.
8346
8347 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
8348
8349         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
8350         again after processing insn.
8351
8352 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8353
8354         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
8355         proper words when !tree_versionable_function_p.
8356
8357 2010-07-23  Richard Guenther  <rguenther@suse.de>
8358
8359         PR tree-optimization/45037
8360         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
8361
8362 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8363
8364         * doc/extend.texi: Remove IP2K from the description of naked attribute.
8365         Add MCORE instead.
8366
8367 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8368
8369         PR lto/44992
8370         * lto-opts.c (lto_write_options): Add NULL file_data argument to
8371         lto_get_section_name.
8372         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
8373         * lto-streamer-out.c (produce_asm): Likewise.
8374         (copy_function): Likewise.
8375         (produce_symtab): Likewise.
8376         (produce_asm_for_decls): Likewise.
8377         * lto-streamer.c (lto_get_section_name): Add file_data argument.
8378         Rewrite to add random postfix to LTO sections.
8379         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
8380         (lto_get_section_name): Add file_data argument to prototype.
8381
8382 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8383
8384         * lto-section-in.c (lto_section_name): Synchronize names
8385         with lto_get_section_name.
8386
8387 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8388
8389         * lto-opts.c (lto_read_file_options): Check for missing section.
8390
8391 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8392
8393         * ira.c (check_allocation): Correctly handle the case where an allocno
8394         with two objects was allocated to a single reg.
8395
8396 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
8397
8398         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
8399         (is_widening_mult_p): Likewise.
8400         (convert_to_widen): Use them.
8401         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
8402         well as integer ones.
8403
8404 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
8405
8406         * alias.c (true_dependence_1): New function, merged version of
8407         true_dependence and canon_true_dependence.
8408         (true_dependence): Simplify.
8409         (canon_true_dependence): Simplify.
8410
8411 2010-07-22  Richard Henderson  <rth@redhat.com>
8412
8413         PR target/45027
8414         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
8415         of V4SFmode for the SSE saves; increase stack alignment if needed.
8416         (ix86_gimplify_va_arg): Don't increase stack alignment here.
8417
8418 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
8419
8420         PR bootstrap/45028
8421         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
8422         call cprop_find_used_regs again via note_uses.
8423
8424 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
8425
8426         * alias.c (get_alias_set): Fix formatting issues.
8427
8428 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
8429
8430         PR middle-end/44878
8431         * stmt.c (expand_value_return):  Call promote_function_mode with
8432         a for_return argument of 2 when returning by reference.
8433
8434 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
8435
8436         PR debug/45024
8437         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
8438         unit DIE if we can find the scope DIE.
8439
8440 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8441
8442         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
8443         changed.  Initialize OBJECT_SUBWORD.
8444         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
8445         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
8446         all callers changed.
8447         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
8448         (finish_allocno): Likewise.
8449         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
8450         (remove_low_level_allocnos): Likewise.
8451         (update_bad_spill_attribute): Likewise.
8452         (setup_min_max_allocno_live_range_point): Likewise.
8453         (sort_conflict_id_map): Likewise.
8454         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
8455         (ior_hard_reg_conflicts): New function.
8456         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
8457         (compress_conflict_vecs): Iterate over objects, not allocnos.
8458         (ira_add_live_range_to_object): New function.
8459         (object_range_compare_func): Renamed from allocno_range_compare_func.
8460         All callers changed.
8461         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
8462         subobjects, widen the min/max range of the lowest-order object to
8463         potentially include all other such low-order objects.
8464         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
8465         (check_allocation): Likewise.  Use more fine-grained tests for register
8466         conflicts.
8467         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
8468         allocno subobjects.
8469         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
8470         choices about which bits to set in each set.  Don't use
8471         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
8472         using the multiple sets we computed.
8473         (push_allocno_to_stack): Iterate over allocno subobjects.
8474         (all_conflicting_hard_regs_coalesced): New static function.
8475         (setup_allocno_available_regs_num): Use it.
8476         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
8477         subobjects.
8478         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
8479         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8480         by ALLOCNO_NUM_OBJECTS.
8481         (calculate_spill_cost): Likewise.
8482         (color_pass): Express if statement in a more normal way.
8483         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
8484         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
8485         (setup_slot_coalesced_allocno_live_ranges): Likewise.
8486         (allocno_reload_assign): Likewise.
8487         (ira_reassign_pseudos): Likewise.
8488         (fast_allocation): Likewise.
8489         * ira-conflicts.c (build_conflict_bit_table): Likewise.
8490         (print_allocno_conflicts): Likewise.
8491         (ira_build_conflicts): Likewise.
8492         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
8493         callers changed.  Test subword 0 of each allocno for conflicts.
8494         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
8495         callers changed.  Iterate over allocno subobjects.
8496         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
8497         * ira-int.h (struct ira_allocno): New member: num_objects.
8498         Rename object to objects and change it into an array.
8499         (ALLOCNO_OBJECT): Add new argument N.
8500         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
8501         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
8502         (ior_hard_reg_conflicts): Declare.
8503         (ira_add_live_range_to_object): Declare.
8504         (ira_allocno_object_iterator): New.
8505         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
8506         (FOR_EACH_ALLOCNO_OBJECT): New macro.
8507         * ira-lives.c (objects_live): Renamed from allocnos_live; all
8508         uses changed.
8509         (allocnos_processed): New sparseset.
8510         (make_object_born): Renamed from make_allocno_born; take an
8511         ira_object_t argument.  All callers changed.
8512         (make_object_dead): Renamed from make_allocno_dead; take an
8513         ira_object_t argument.  All callers changed.
8514         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
8515         All callers changed.
8516         (mark_pseudo_regno_live): Iterate over allocno subobjects.
8517         (mark_pseudo_regno_dead): Likewise.
8518         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
8519         functions.
8520         (mark_ref_live): Detect subword accesses and call
8521         mark_pseudo_regno_subword_live as appropriate.
8522         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
8523         (process_bb_nodes_live): Deal with object-related updates first; set
8524         and test bits in allocnos_processed to avoid computing allocno
8525         statistics more than once.
8526         (create_start_finish_chains): Iterate over objects, not allocnos.
8527         (print_object_live_ranges): New function.
8528         (print_allocno_live_ranges): Use it.
8529         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
8530         and objects_live.
8531
8532 2010-07-22  Richard Guenther  <rguenther@suse.de>
8533
8534         PR lto/42451
8535         * gimple.c (gtc_next_dfs_num): New global.
8536         (struct sccs): Make value a union, add integer same_p member.
8537         (gtc_visit): New function.
8538         (gimple_types_compatible_p_1): New function, split out from ...
8539         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
8540         (iterative_hash_gimple_type): Adjust for sccs change.
8541
8542 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8543
8544         PR tree-optimization/44891
8545         * tree-sra.c: Include gimple-pretty-print.h.
8546         (replace_uses_with_default_def_ssa_name): Renamed to
8547         get_repl_default_def_ssa_name, return the new SSA name instead of
8548         replacing the old one.
8549         (sra_modify_assign): Dump a message when removing a load, if the LHS
8550         is an SSA_NAME, do not do any propagation, just set the RHS to a
8551         default definition SSA NAME, type convert if necessary.
8552         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
8553
8554 2010-07-22  Richard Guenther  <rguenther@suse.de>
8555
8556         PR tree-optimization/45017
8557         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
8558         TYPE_PRECISION of integral types in addition to size.
8559
8560 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
8561
8562         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
8563         when no C library is specified.
8564
8565 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8566
8567         * ipa-prop.h (struct ipa_node_params): Updated comment.
8568         (struct ipa_edge_args): Likewise.
8569         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
8570
8571 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8572
8573         * cgraphunit.c (verify_edge_count_and_frequency): New function.
8574         (verify_cgraph_node): Verify frequencies of indirect edges.
8575         * tree-inline.c (tree_function_versioning): Update frequencies of
8576         indirect edges.
8577
8578 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8579
8580         PR target/43698
8581         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
8582         Set *arm_rev to be predicable.
8583
8584 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
8585
8586         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
8587         (LINK_COMMAND_SPEC_A): New.
8588         (DSYMUTIL): New.
8589         (DSYMUTIL_SPEC): New.
8590         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
8591         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
8592
8593 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
8594
8595         * calls.c (load_register_parameters): Move check for zero
8596         sized items so that only the call to
8597         mem_overlaps_already_clobbered_arg_p () is protected.
8598
8599 2010-07-22  Jan Hubicka  <jh@suse.cz>
8600
8601         * ipa-pure-const.c (varying_state): Break out from ...
8602         (get_function_state): ... here; always return varying_state
8603         when state would be NULL otherwise.
8604         (remove_node_data): Do not free varying state.
8605
8606 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8607
8608         PR bootstrap/44970
8609         PR middle-end/45009
8610         * postreload.c: Include "target.h".
8611         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
8612         into account.
8613         (fixup_debug_insns): Don't copy the rtx.
8614         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
8615         Don't copy when replacing.  Call fixup_debug_insns in the case where
8616         we merged one add with another.
8617         (reload_combine_recognize_pattern): Fail if there aren't any uses.
8618         Try harder to determine whether we're picking a valid index register.
8619         Don't set store_ruid for an insn we're going to scan in the
8620         next iteration.
8621         (reload_combine): Remove unused code.
8622         (reload_combine_note_use): When updating use information for
8623         an old insn, ignore a use that occurs after store_ruid.
8624         * Makefile.in (postreload.o): Update dependencies.
8625
8626         * function.c (record_hard_reg_sets): Restrict the previous change
8627         to cases where the incoming nominal mode is the same as the
8628         incoming promoted mode and everything happens in MODE_INT.
8629
8630 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
8631
8632         PR debug/45015
8633         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
8634         ASM_OPERANDS_OUTPUT_IDX.
8635         (adjust_insn): For inline asm with multiple sets ensure first
8636         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
8637         the insn.
8638
8639 2010-07-21  Richard Henderson  <rth@redhat.com>
8640
8641         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
8642         comparison for avoiding xmm register saves.  Emit the xmm register
8643         saves explicitly.
8644         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
8645         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
8646         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
8647         Remove patterns and the associated splitters.
8648
8649 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
8650
8651         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
8652         and imagine parts of a complex, so that they can have the same
8653         base and fall into the same group.
8654
8655 2010-07-21  Richard Guenther  <rguenther@suse.de>
8656
8657         PR lto/45018
8658         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
8659         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
8660         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
8661
8662 2010-07-21  Martin Jambor  <mjambor@suse.cz>
8663
8664         PR tree-optimization/44900
8665         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
8666         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
8667
8668 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
8669
8670         PR middle-end/44738
8671         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
8672
8673 2010-07-21  Richard Guenther  <rguenther@suse.de>
8674
8675         PR middle-end/45013
8676         * tree-ssa.c (useless_type_conversion_p): Dispatch to
8677         gimple_types_compatible_p only when in lto.
8678         * gimple.c (gimple_types_compatible_p): Use canonical types
8679         to speed up comparison.
8680
8681 2010-07-21  Richard Guenther  <rguenther@suse.de>
8682
8683         * tree-flow.h (referenced_var): Move define ...
8684         * tree-flow-inline.h (referenced_var): ... here as an inline
8685         function.  Assert here ...
8686         * tree-dfa.c (referenced_var_lookup): ... instead of here.
8687         * tree-ssa.c (maybe_optimize_var): Check if the variable
8688         is in referenced vars.
8689         (execute_update_addresses_taken): Remove old broken check.
8690         * gimple-pretty-print.c (pp_points_to_solution): Use
8691         referenced_var_lookup.
8692         * tree-into-ssa.c (dump_decl_set): Likewise.
8693
8694 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
8695
8696         PR debug/45003
8697         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
8698         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
8699         ZERO_EXTEND here.
8700
8701 2010-07-20  Richard Henderson  <rth@redhat.com>
8702
8703         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
8704
8705 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
8706
8707         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
8708         computing the sum of the stack pointer and a large constant.
8709         * config/arm/constraints.md (M): Remove superfluous parentheses.
8710         (Pc): New constraint.
8711
8712 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
8713
8714         PR debug/45006
8715         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
8716         operand's type if exp is tcc_unary class tree.
8717
8718 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
8719
8720         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
8721         Reverse sense of if_then_else condition.
8722
8723 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
8724
8725         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
8726         * config/rs6000/rs6000.c (rs6000_override_options): Set
8727         rs6000_block_move_inline_limit appropriately.
8728         (expand_block_move): Use rs6000_block_move_inline_limit.
8729         * doc/invoke.texi (mblock-move-inline-limit): Document.
8730
8731 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
8732
8733         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
8734         FROM and TO.  All callers changed.  Don't look for tracked uses,
8735         just scan the RTL for DEBUG_INSNs and substitute.
8736         (reload_combine_recognize_pattern): Call fixup_debug_insns.
8737         (reload_combine): Ignore DEBUG_INSNs.
8738
8739 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
8740
8741         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
8742         depth to 8 from 5.
8743
8744         PR debug/45003
8745         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
8746         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
8747         instead of the result's type.
8748
8749 2010-07-20  Richard Guenther  <rguenther@suse.de>
8750
8751         PR tree-optimization/44977
8752         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
8753         SSA form.
8754
8755 2010-07-20  Richard Guenther  <rguenther@suse.de>
8756
8757         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
8758         (lto_symtab_merge_decls_2): Likewise.
8759         * gimple.h (gimple_types_compatible_p): Declare.
8760         * gimple.c (gimple_queue_type_fixup): Remove.
8761         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
8762         (gimple_compatible_complete_and_incomplete_type_p): New function.
8763         (gimple_types_compatible_p): Adjust.
8764         (gimple_register_type): Remove type fixup code.
8765         (print_gimple_types_stats): Adjust.
8766         (free_gimple_type_tables): Likewise.
8767         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
8768         * tree-ssa.c (useless_type_conversion_p): Likewise.
8769
8770 2010-07-20  Richard Guenther  <rguenther@suse.de>
8771
8772         PR middle-end/44971
8773         PR middle-end/44988
8774         * tree-ssa.c (maybe_optimize_var): New function split out from ...
8775         (execute_update_addresses_taken): ... here.
8776         (non_rewritable_mem_ref_base): Likewise.
8777         (execute_update_addresses_taken): Do not iterate over all referenced
8778         vars but just all local decls and parms.
8779         Properly check call and asm arguments and rewrite call arguments.
8780
8781 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
8782
8783         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
8784         to top level.
8785         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
8786         definitions ...
8787         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
8788         New macro.
8789         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
8790
8791 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8792
8793         * gengtype.c (start_root_entry): New function, split out from
8794         write_root.  Check whether V is null and raise an error if so.
8795         (write_field_root): Check for V being null.  Don't raise an error here;
8796         set V to null instead.
8797         (write_root): Update comment above function.  Use start_root_entry.
8798
8799 2010-07-19  Xinliang David Li  <davidxl@google.com>
8800
8801         PR testsuite/44932
8802         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
8803         def edges.
8804         (find_uninit_use): Add dump.
8805         (is_use_properly_guarded): Ditto.
8806         (warn_uninitialized_phi): Ditto.
8807         (execute_late_warn_uninitialized): Ditto.
8808
8809 2010-07-19  Richard Guenther  <rguenther@suse.de>
8810
8811         PR middle-end/44941
8812         * expr.c (emit_block_move_hints): Move zero size check first.
8813         Move asserts to more useful places.
8814         * calls.c (load_register_parameters): Check for zero size.
8815
8816 2010-07-19  Richard Henderson  <rth@redhat.com>
8817
8818         * tree-optimize.c (execute_all_early_local_passes): New.  Change
8819         cgraph_state here ...
8820         (execute_early_local_optimizations): ... not here.  Remove.
8821         (pass_early_local_passes, pass_all_early_optimizations): Update.
8822
8823 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
8824
8825         * postreload.c (reload_combine_closest_single_use): Ignore the
8826         number of uses for DEBUG_INSNs.
8827         (fixup_debug_insns): New static function.
8828         (reload_combine_recognize_const_pattern): Use it.  Don't let the
8829         main loop be affected by DEBUG_INSNs.
8830         Really disallow moving adds past a jump insn.
8831         (reload_combine_recognize_pattern): Don't update use_ruid here.
8832         (reload_combine_note_use): Do it here.
8833         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
8834
8835 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
8836
8837         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
8838         of a loop.
8839         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
8840
8841 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
8842
8843         * config/i386/darwin.h: Define darwin_emit_branch_islands.
8844         (TARGET_MACHO_BRANCH_ISLANDS): New.
8845         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
8846         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
8847         default value.
8848         * config/i386/i386.c (output_pic_addr_const): Do not emit
8849         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
8850         (x86_output_mi_thunk): Adjust symbol creation.
8851         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
8852         Remove out of date comment.
8853         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
8854         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
8855         (DARWIN_GENERATE_ISLANDS): Ditto.
8856         (output_call):  Do not emit branch islands unless
8857         darwin_emit_branch_islands is set.
8858         * config/darwin.c: Declare darwin_emit_branch_islands.
8859         (machopic_indirect_data_reference): Do not emit unless
8860         darwin_emit_branch_islands is set.
8861         (darwin_override_options): Set darwin_emit_branch_islands
8862         where it is needed.
8863         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
8864
8865 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8866
8867         * doc/sourcebuild.texi (Effective-Target Keywords): Document
8868         sse_runtime, sse2_runtime.
8869
8870 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
8871
8872         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
8873         low half of a single-register SCmode return value before ORing
8874         it with the high half.
8875         * config/mips/mips16.S (MERGE_GPRf): Likewise.
8876
8877 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8878
8879         PR target/44805
8880         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
8881         on all targets.
8882
8883 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
8884
8885         PR target/42235
8886         * postreload.c (reload_cse_move2add): Return bool, true if anything.
8887         changed.  All callers changed.
8888         (move2add_use_add2_insn): Likewise.
8889         (move2add_use_add3_insn): Likewise.
8890         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
8891         reload_combine.
8892         (RELOAD_COMBINE_MAX_USES): Bump to 16.
8893         (last_jump_ruid): New static variable.
8894         (struct reg_use): New members CONTAINING_MEM and RUID.
8895         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
8896         (reload_combine_split_one_ruid, reload_combine_split_ruids,
8897         reload_combine_purge_insn_uses, reload_combine_closest_single_use
8898         reload_combine_purge_reg_uses_after_ruid,
8899         reload_combine_recognize_const_pattern): New static functions.
8900         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
8901         is true for our reg and that we have available index regs.
8902         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
8903         callers changed.  Use them to initialize fields in struct reg_use.
8904         (reload_combine): Initialize last_jump_ruid.  Be careful when to
8905         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
8906         Call reload_combine_recognize_const_pattern.
8907         (reload_combine_note_store): Update REAL_STORE_RUID field.
8908
8909 2010-07-16  Jason Merrill  <jason@redhat.com>
8910
8911         * Makefile.in (opts-common.o): Depend on options.h.
8912
8913 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
8914
8915         * tree.c (build_common_builtin_nodes): Use build_function_type_list
8916         instead of build_function_type.
8917         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
8918         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8919
8920 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
8921
8922         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
8923         do all the work.
8924         (rs6000_emit_int_cmove): Use function pointers for insn generation.
8925         Don't force values into registers unnecessarily.
8926         (output_isel): Assert that we're not given conditions we can't handle.
8927         Delete corresponding code.
8928         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
8929         scc_comparison_operator constraint.  Permit 0 for the consequent
8930         operand.  Permit any GPR for the alternative operand.
8931         (isel_unsigned_<mode>): Likewise.
8932
8933 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
8934
8935         PR target/44942
8936         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
8937         argument to const_tree.
8938         * config/i386/i386.c (function_arg_advance): If padding needs to be
8939         inserted before argument, increment cum->words by number of padding
8940         words as well.
8941         (contains_aligned_value_p): Change argument to const_tree.
8942         (ix86_function_arg_boundary): Change second argument to const_tree.
8943
8944 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
8945
8946         PR target/42235
8947         * function.c (record_hard_reg_sets): New static function.
8948         (assign_parm_setup_reg): If an optab for extending exists and the
8949         generated code clobbbers no hard regs, emit the insn directly and
8950         create a REG_EQUIV note.
8951
8952 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
8953
8954         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
8955         TREE_CHAIN.
8956         * c-typeck.c (push_init_level): Likewise.
8957         (process_init_element): Likewise.
8958
8959 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
8960
8961         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
8962         (integer_three_node): Add.
8963         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
8964         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
8965         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
8966         of call build_int_cst.
8967         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
8968         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
8969         (find_interesting_uses_address): Ditto.
8970         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
8971         * tree-eh.c (lower_eh_constructs_2): Ditto.
8972         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
8973         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
8974         * expmed.c (expand_divmod): Ditto.
8975         * tree-mudflap.c (mx_register_decls): Ditto.
8976         * varasm.c (array_size_for_constructor): Ditto.
8977         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
8978         * c-parser.c (c_parser_postfix_expression): Ditto.
8979
8980 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
8981
8982         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
8983         New static variables.
8984         (reload_combine_recognize_pattern): New static function, broken out
8985         of reload_combine.
8986         (reload_combine): Use it.  Only initialize first_index_reg and
8987         last_index_reg once.
8988
8989 2010-07-15  Richard Henderson  <rth@redhat.com>
8990
8991         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
8992         when done.
8993
8994 2010-07-15  Jan Hubicka  <jh@suse.cz>
8995
8996         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
8997         comdats for broken gold.
8998         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
8999
9000 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9001
9002         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
9003
9004 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9005
9006         * tree.h (DECL_CHAIN): Define.
9007         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
9008         * c-decl.c: Likewise.
9009         * c-parser.c: Likewise.
9010         * c-typeck.c: Likewise.
9011         * cfgexpand.c: Likewise.
9012         * cgraph.c: Likewise.
9013         * cgraphunit.c: Likewise.
9014         * combine.c: Likewise.
9015         * config/alpha/alpha.c: Likewise.
9016         * config/arm/arm.c: Likewise.
9017         * config/frv/frv.c: Likewise.
9018         * config/i386/i386.c: Likewise.
9019         * config/i386/winnt-cxx.c: Likewise.
9020         * config/ia64/ia64.c: Likewise.
9021         * config/iq2000/iq2000.c: Likewise.
9022         * config/mep/mep.c: Likewise.
9023         * config/mips/mips.c: Likewise.
9024         * config/pa/som.h: Likewise.
9025         * config/rs6000/rs6000.c: Likewise.
9026         * config/s390/s390.c: Likewise.
9027         * config/sh/sh.c: Likewise.
9028         * config/sh/symbian-cxx.c: Likewise.
9029         * config/sparc/sparc.c: Likewise.
9030         * config/spu/spu.c: Likewise.
9031         * config/stormy16/stormy16.c: Likewise.
9032         * config/vxworks.c: Likewise.
9033         * config/xtensa/xtensa.c: Likewise.
9034         * coverage.c: Likewise.
9035         * dbxout.c: Likewise.
9036         * dwarf2out.c: Likewise.
9037         * emit-rtl.c: Likewise.
9038         * expr.c: Likewise.
9039         * function.c: Likewise.
9040         * gimple-low.c: Likewise.
9041         * gimple-pretty-print.c: Likewise.
9042         * gimplify.c: Likewise.
9043         * integrate.c: Likewise.
9044         * ipa-inline.c: Likewise.
9045         * ipa-prop.c: Likewise.
9046         * ipa-split.c: Likewise.
9047         * ipa-struct-reorg.c: Likewise.
9048         * ipa-type-escape.c: Likewise.
9049         * langhooks.c: Likewise.
9050         * lto-cgraph.c: Likewise.
9051         * omp-low.c: Likewise.
9052         * stor-layout.c: Likewise.
9053         * tree-cfg.c: Likewise.
9054         * tree-complex.c: Likewise.
9055         * tree-dfa.c: Likewise.
9056         * tree-dump.c: Likewise.
9057         * tree-inline.c: Likewise.
9058         * tree-mudflap.c: Likewise.
9059         * tree-nested.c: Likewise.
9060         * tree-object-size.c: Likewise.
9061         * tree-pretty-print.c: Likewise.
9062         * tree-sra.c: Likewise.
9063         * tree-ssa-live.c: Likewise.
9064         * tree-ssa-loop-niter.c: Likewise.
9065         * tree-ssa-math-opts.c: Likewise.
9066         * tree-ssa-reassoc.c: Likewise.
9067         * tree-ssa-sccvn.c: Likewise.
9068         * tree-ssa-structalias.c: Likewise.
9069         * tree-tailcall.c: Likewise.
9070         * tree-vrp.c: Likewise.
9071         * tree.c: Likewise.
9072         * var-tracking.c: Likewise.
9073         * varasm.c: Likewise.
9074
9075 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9076
9077         PR target/44877
9078         * config/spu/spu.c (spu_expand_builtin_1): Allow references
9079         (as well as pointers) as argument to mask_for_load builtins.
9080
9081 2010-07-15  Richard Guenther  <rguenther@suse.de>
9082
9083         PR tree-optimization/44946
9084         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
9085         with accessing only padding properly.
9086
9087 2010-07-15  Jan Hubicka  <jh@suse.cz>
9088
9089         * ipa.c (function_and_variable_visibility): Variables marked as used
9090         should not be localized.
9091
9092 2010-07-15  Jan Hubicka  <jh@suse.cz>
9093
9094         * cgraph.c: Include lto-streamer.h
9095         (change_decl_assembler_name): Work when assembler name hash is at place.
9096         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
9097         be sure to rename it to avoid name clash.
9098         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
9099         Localize hidden symbols only when locally defined.
9100
9101 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
9102
9103         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
9104
9105 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
9106             Kevin F. Quinn  <kevquinn@gentoo.org>
9107
9108         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
9109         * common.opt: Add -Wtrampolines.
9110         * doc/invoke.texi: Add -Wtrampolines.
9111
9112 2010-07-15  Jie Zhang  <jie@codesourcery.com>
9113
9114         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
9115         cortex_a8_issue_ls.
9116
9117 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
9118
9119         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
9120         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
9121
9122 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9123
9124         * config/spu/spu.c (reg_names): Remove prototype.
9125         (call_used_regs): Likewise.
9126
9127 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
9128
9129         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
9130         "unused" with attribute "used".
9131         (__JCR_END__): Likewise.
9132         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
9133         "used" attribute.
9134         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
9135
9136 2010-07-14  Richard Guenther  <rguenther@suse.de>
9137
9138         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
9139         (maybe_fixup_decls): Likewise.
9140         (input_gimple_stmt): Do not fixup anything.
9141         * lto-streamer-out.c (output_gimple_stmt): Make sure all
9142         non-automatic variable uses are wrapped inside a MEM_REF.
9143
9144 2010-07-14  Richard Henderson  <rth@redhat.com>
9145
9146         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
9147         for functions.
9148         * varasm.c (assemble_variable): Remove early exit for functions;
9149         assert that we're given a variable.
9150
9151 2010-07-14  Jie Zhang  <jie@codesourcery.com>
9152
9153         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
9154         cortex_a8_default when neon_type is not none.
9155
9156 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9157
9158         * lower-subreg.c (subreg_context): New static bitmap.
9159         (decompose_multiword_subregs): Allocate and free it.
9160         (find_decomposable_subregs): Set a bit in it for a register that
9161         occurs in a subreg that changes mode but not size.
9162         (can_decompose_p): Test it instead of non_decomposable_context.
9163
9164 2010-07-14  Richard Guenther  <rguenther@suse.de>
9165
9166         PR tree-optimization/44824
9167         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
9168         is_gimple_mem_ref_addr.
9169         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
9170         non-decl_address_invariant_p addresses.
9171
9172 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9173
9174         * reload.c (find_reloads): Revert code to penalize small register
9175         classes that was brought in with the IRA merge.
9176
9177 2010-07-14  Richard Guenther  <rguenther@suse.de>
9178
9179         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
9180         as base of ARRAY_REFs.
9181
9182 2010-07-14  Richard Guenther  <rguenther@suse.de>
9183
9184         PR middle-end/44930
9185         * tree-pretty-print.c (do_niy): Do not print a newline.
9186
9187 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9188
9189         * ira-int.h (struct ira_object): New.
9190         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
9191         (struct ira_allocno): Remove members min, max,
9192         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
9193         conflict_allocnos_num and conflict_vec_p.  Add new member object.
9194         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
9195         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
9196         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
9197         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
9198         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
9199         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
9200         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
9201         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
9202         an ira_object_t rather than ira_allocno_t.  All uses changed.
9203         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9204         contains a vector of ira_object_t; all uses changed.
9205         (ira_objects_num): Declare variable.
9206         (ira_create_allocno_object): Declare function.
9207         (ira_conflict_vector_profitable_p): Adjust prototype.
9208         (ira_allocate_conflict_vec): Renamed from
9209         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
9210         (ira_allocate_object_conflicts): Renamed from
9211         ira_allocate_allocno_conflicts; first arg now ira_object_t.
9212         (struct ira_object_iterator): New.
9213         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
9214         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
9215         to conflict_vec_p.  All uses changed.
9216         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
9217         Changed to take into account that conflicts are now tracked for
9218         objects.
9219         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
9220         Args changed to accept ira_object_t.  All uses changed.
9221         (allocnos_conflict_p): New static function.
9222         (collected_conflict_objects): Renamed from collected_allocno_objects;
9223         now a vector of ira_object_t.  All uses changed.
9224         (build_conflict_bit_table): Changed to take into account that
9225         conflicts are now tracked for objects.
9226         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
9227         (print_allocno_conflicts, ira_build_conflicts): Likewise.
9228         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
9229         setup_allocno_left_conflicts_size, allocno_reload_assign,
9230         fast_allocation): Likewise.
9231         * ira-lives.c (make_hard_regno_born, make_allocno_born)
9232         process_single_reg_class_operands, process_bb_node_lives): Likewise.
9233         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
9234         Likewise.
9235         * ira-build.c (ira_objects_num): New variable.
9236         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9237         contains a vector of ira_object_t; all uses changed.
9238         (ira_object_id_map_vec): Corresponding change.
9239         (object_pool): New static variable.
9240         (initiate_allocnos): Initialize it.
9241         (finish_allocnos): Free it.
9242         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
9243         New functions.
9244         (ira_create_allocno): Don't set members that were removed.
9245         (ira_set_allocno_cover_class): Don't change conflict hard regs.
9246         (merge_hard_reg_conflicts): Changed to take into account that
9247         conflicts are now tracked for objects.
9248         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
9249         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
9250         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
9251         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
9252         setup_min_max_conflict_allocno_ids, ):  Likewise.
9253         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
9254         to ira_object_t; all callers changed.
9255         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
9256         to ira_object_t, all callers changed.
9257         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
9258         to ira_object_t, all callers changed.
9259         (conflict_check, curr_conflict_check_tick): Renamed from
9260         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
9261         changed.
9262         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
9263         arg changed to ira_object_t, all callers changed.
9264         (create_cap_allocno): Call ira_create_allocno_object.
9265         (finish_allocno): Free the corresponding object.
9266         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
9267         callers changed.  Adjusted for dealing with objects.
9268         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
9269         dealing with objects.
9270         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
9271
9272         * ira-int.h (struct live_range): Rename allocno member to object
9273         and change type to ira_object_t.
9274         (struct ira_object): New member live_ranges.
9275         (struct ira_allocno): Remove member live_ranges.
9276         (ALLOCNO_LIVE_RANGES): Remove.
9277         (OBJECT_LIVE_RANGES): New macro.
9278         (ira_create_live_range, ira_copy_live_range_list,
9279         ira_merge_live_range_list, ira_live_ranges_intersect_p,
9280         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
9281         * ira-build.c (ira_create_object): Initialize live ranges here.
9282         (ira_create_allocno): Not here.
9283         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
9284         changed to ira_object_t, all callers changed.
9285         (copy_live_range): Rename from copy_allocno_live_range, all callers
9286         changed.
9287         (ira_copy_live_range_list): Rename from
9288         ira_copy_allocno_live_range_list, all callers changed.
9289         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
9290         all callers changed.
9291         (ira_live_ranges_intersect_p): Rename from
9292         ira_allocno_live_ranges_intersect_p, all callers changed.
9293         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
9294         callers changed.
9295         (ira_finish_live_range_list): Rename from
9296         ira_finish_allocno_live_range_list, all callers changed.
9297         (change_object_in_range_list): Rename from change_allocno_in_range_list,
9298         last arg changed to ira_object_t, all callers changed.
9299         (finish_allocno): Changed to expect live ranges in the allocno's object.
9300         (move_allocno_live_ranges, copy_allocno_live_ranges,
9301         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
9302         ira_flattening, ira_build): Likewise.
9303         * ira-color.c (allocnos_have_intersected_live_ranges_p,
9304         slot_coalesced_allocno_live_ranges_intersect,
9305         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
9306         * ira-conflicts.c (build_conflict_bit_table): Likewise.
9307         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
9308         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
9309         make_allocno_dead, create_start_finish_chains,
9310         remove_some_program_points_and_update_live_ranges,
9311         ira_debug_live_range_list): Likewise.
9312
9313         * ira-int.h (ira_object_conflict_iterator): Rename from
9314         ira_allocno_conflict_iterator.
9315         (ira_object_conflict_iter_init): Rename from
9316         ira_allocno_conflict_iter_init, second arg changed to
9317         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
9318         FOR_EACH_ALLOCNO_CONFLICT.
9319         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
9320         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
9321         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
9322         * ira-conflicts.c (print_allocno_conflicts): Likewise.
9323
9324 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
9325
9326         PR other/44874
9327         * tree-dump.c (dump_options): Add enumerate_locals entry.
9328         Add TDF_NOID exclusion to all entry.
9329         * tree-dump.h (dump_enumerated_decls): Declare.
9330         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
9331         Don't display type uid.
9332         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
9333         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
9334         * tree-ssa-live.c: Include gimple.h.
9335         (numbered_tree_d): New struct.
9336         (numbered_tree): New typedef.
9337         (DEF_VEC_O (numbered_tree): New.
9338         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
9339         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
9340         (dump_enumerated_decls): Likewise.
9341         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
9342         debug info and flag_dump_final_insns, call dump_enumerated_decls.
9343         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
9344         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
9345
9346 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
9347
9348         * expmed.h (MAX_BITS_PER_WORD): Move to...
9349         * defaults.h (MAX_BITS_PER_WORD): ...here.
9350
9351 2010-07-13  DJ Delorie  <dj@redhat.com>
9352
9353         * config/h8300/h8300.c (h8300_init_once): Default to
9354         -fstrict_volatile_bitfields.
9355
9356         * config/sh/sh.c (sh_override_options): Default to
9357         -fstrict_volatile_bitfields.
9358
9359         * config/rx/rx.c (rx_option_override): New.
9360
9361         * config/m32c/m32c.c (m32c_override_options): Default to
9362         -fstrict_volatile_bitfields.
9363
9364 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
9365
9366         * tree.h (build_function_call_expr): Delete.
9367         (build_call_expr_loc_array): New function.
9368         (build_call_expr_loc_vec): New function.
9369         * tree-flow.h (struct omp_region): Change type of ws_args field
9370         to a VEC.
9371         * builtins.c (build_function_call_expr): Delete.
9372         (build_call_expr_loc_array): New function.
9373         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
9374         (build_call_expr): Likewise.
9375         (build_call_expr_loc_vec): New function.
9376         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
9377         build_function_call_expr.
9378         * expr.c (emutls_var_address): Likewise.
9379         * varasm.c (emutls_common_1): Likewise.
9380         * omp-low.c (expand_omp_atomic_mutex): Likewise.
9381         (expand_omp_taskreg): Adjust for new type of region->ws_args.
9382         (get_ws_args_for): Return a VEC instead of a tree.
9383         (expand_parallel_call): Call build_call_expr_loc_vec instead of
9384         build_function_call_expr.
9385         * stor-layout.c (self_referential_size): Likewise.
9386
9387 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
9388
9389         PR testsuite/44701
9390         * recog.c (constrain_operands): Allow side-effects in memory
9391         operands if either < or > constraint is used, rather than if
9392         both < and > is used.
9393
9394 2010-07-13  Richard Guenther  <rguenther@suse.de>
9395
9396         PR middle-end/44911
9397         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
9398         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
9399         without name.
9400
9401 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
9402
9403         PR target/44761
9404         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
9405         to variable emited.
9406         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
9407         * config/sh/sh.md (symGOT_load): Likewise.
9408         (symDTPOFF2reg): Likewise.
9409         (symTPOFF2reg): Likewise.
9410
9411 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9412
9413         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
9414         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
9415
9416 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9417
9418         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
9419         explanation.
9420         Find ucontext_t * on Solaris 11.
9421         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
9422         Handle new Solaris 11 __sighndlr patterns.
9423
9424 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
9425
9426         PR debug/44901
9427         * vec.h (VEC_block_remove): Fix comment.
9428         * tree-ssa-live.c (remove_unused_locals): Don't use
9429         VEC_unordered_remove on local_decls, instead replace a single
9430         vector element in each iteration if at least one element had
9431         to be removed and VEC_truncate at the end.
9432         * omp-low.c (expand_omp_taskreg): Likewise.
9433
9434 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9435
9436         * c-decl.c (finish_function): Fix typo in comment.
9437
9438 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
9439
9440         PR bootstrap/44921
9441         * postreload.c (move2add_use_add3_insn): Silence gcc warning
9442         on min_regno.
9443
9444 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
9445
9446         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
9447         (simplify_stmt_using_ranges): Use it.
9448
9449 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9450
9451         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
9452         member.  Do not mark as GTY(()).
9453         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
9454         (spu_builtin_decls): New static variable.
9455         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
9456         (spu_init_builtins): Likewise.
9457         (spu_builtin_mul_widen_even): Likewise.
9458         (spu_builtin_mul_widen_odd): Likewise.
9459         (spu_builtin_mask_for_load): Likewise.
9460         (spu_builtin_vec_perm): Likewise.
9461         * config/spu/spu-c.c: Include "target.h".
9462         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
9463         of using spu_builtins[].fndecl.
9464
9465 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9466
9467         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
9468         imply -minterlink-mips16.
9469
9470 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9471
9472         * config/mips/mips.h (mips16_globals): Declare.
9473         (SWITCHABLE_TARGET): Define.
9474         * config/mips/mips.c: Include target-globals.h.
9475         (mips16_globals): New variable.
9476         (mips_set_mips16_mode): Use save_target_globals and
9477         restore_target_globals instead of target_reinit.
9478
9479 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9480
9481         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
9482         to say that the function can be called more than once.
9483         * target-globals.c (save_target_globals): Call init_reg_sets.
9484
9485 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9486
9487         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
9488         * bb-reorder.h: New file.
9489         * bb-reorder.c (default_target_bb_reorder): New variable.
9490         (this_target_bb_reorder): New conditional variable.
9491         (uncond_jump_length): Redefine as a macro.
9492         * target-globals.h (this_target_bb_reorder): Declare.
9493         (target_globals): Add a bb_reorder field.
9494         (restore_target_globals): Copy the bb_reorder field to
9495         this_target_bb-reorder.
9496         * target-globals.c: Include bb-reorder.h.
9497         (default_target_globals): Initialize the bb_reorder field.
9498         (save_target_globals): Likewise.
9499
9500 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9501
9502         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
9503         * gcse.h: New file.
9504         * gcse.c: Include gcse.h.
9505         (default_target_gcse): New variable.
9506         (this_target_gcse): New conditional variable.
9507         (can_copy): Redefine as a macro.
9508         (can_copy_init_p): New macro.
9509         (can_copy_p): Remove can_copy_init_p.
9510         * target-globals.h (this_target_gcse): Declare.
9511         (target_globals): Add a gcse field.
9512         (restore_target_globals): Copy the gcse field to this_target_gcse.
9513         * target-globals.c: Include gcse.h.
9514         (default_target_globals): Initialize the gcse field.
9515         (save_target_globals): Likewise.
9516
9517 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9518
9519         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
9520         and x_ira_prohibited_mode_move_regs_initialized_p.
9521         (ira_prohibited_mode_move_regs): Redefine as a macro.
9522         * ira.c (ira_prohibited_mode_move_regs): Delete.
9523         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
9524
9525 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9526
9527         * reload.h (target_reload): Add x_cached_reg_save_code and
9528         x_cached_reg_restore_code.
9529         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
9530         Redefine as macros.
9531
9532 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9533
9534         * Makefile.in (target-globals.o): Depend on builtins.h.
9535         * builtins.h: New file.
9536         * builtins.c: Include builtins.h.
9537         (default_target_builtins): New variable.
9538         (this_target_builtins): New conditional variable.
9539         (apply_args_mode, apply_result_mode): Redefine as macros.
9540         * target-globals.h (this_target_builtins): Declare.
9541         (target_globals): Add a builtins field.
9542         (restore_target_globals): Copy the builtins field to
9543         this_target_builtins.
9544         * target-globals.c: Include builtins.h.
9545         (default_target_globals): Initialize the builtins field.
9546         (save_target_globals): Likewise.
9547
9548 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9549
9550         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
9551         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
9552         from expmed.c.
9553         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
9554         (alg_hash, alg_hash_used_p): New macros.
9555         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
9556         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
9557         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
9558
9559 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9560
9561         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
9562         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
9563         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
9564         (this_op_costs, costs_classes): Redefine as macros.
9565         (record_reg_classes): Don't take op_costs as a parameter.
9566         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
9567         (scan_one_insn): Update call to record_operand_costs.
9568
9569 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9570
9571         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
9572         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
9573         (target_ira_int): New structure.
9574         (default_target_ira_int): Declare.
9575         (this_target_ira_int): Declare as a variable or define as a macro.
9576         (ira_reg_mode_hard_regset, ira_register_move_cost)
9577         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
9578         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
9579         (prohibited_class_mode_regs, ira_important_classes_num)
9580         (ira_important_classes, ira_reg_class_intersect)
9581         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
9582         (ira_reg_class_union): Redefine as macros.
9583         * ira.h (target_ira): New structure.
9584         (default_target_ira): Declare.
9585         (this_target_ira): Declare as a variable or define as a macro.
9586         (ira_available_class_regs, ira_hard_regno_cover_class)
9587         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
9588         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
9589         (ira_class_hard_regs_num): Redefine as macros.
9590         * ira.c (default_target_ira, default_target_ira_int): New variables.
9591         (this_target_ira, this_target_ira_int): New conditional variables.
9592         (ira_reg_mode_hard_regset, ira_memory_move_cost)
9593         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
9594         (ira_class_subset_p): Delete.
9595         (no_unit_alloc_regs): Redefine as a macro.
9596         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
9597         (ira_class_hard_regs_num, ira_class_hard_reg_index)
9598         (ira_available_class_regs): Delete.
9599         (alloc_reg_class_subclasses): Redefine as a macro.
9600         (ira_reg_class_cover_size, ira_reg_class_cover)
9601         (ira_important_classes_num, ira_important_classes)
9602         (ira_important_class_nums, ira_class_translate): Delete.
9603         (cover_class_order): Document the variable's lifetime.
9604         (reorder_important_classes): Don't set ira_important_class_nums.
9605         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
9606         (ira_reg_class_super_classes, ira_reg_class_union)
9607         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
9608         Delete.
9609         (setup_reg_class_nregs): Don't set ira_max_regs.
9610         (prohibited_class_mode_regs): Delete.
9611         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
9612         (target_globals): Add ira and ira_int fields.
9613         (restore_target_globals): Copy the ira field to this_target_ira
9614         and the ira_int field to this_target_ira_int.
9615         * target-globals.c: Include ira-int.h.
9616         (default_target_globals): Initialize the ira and ira_int fields.
9617         (save_target_globals): Likewise.
9618
9619 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9620
9621         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
9622         * cfgloop.h (target_cfgloop): New structure.
9623         (default_target_cfgloop): Declare.
9624         (this_target_cfgloop): Declare as a variable or define as a macro.
9625         (target_avail_regs, target_clobbered_regs, target_res_regs)
9626         (target_reg_cost, target_spill_cost): Redefine as macros.
9627         * cfgloopanal.c (default_target_cfgloop): New variable.
9628         (this_target_cfgloop): New conditional variable.
9629         (target_avail_regs, target_clobbered_regs, target_res_regs)
9630         (target_reg_cost, target_spill_cost): Delete.
9631         * target-globals.h (this_target_cfgloop): Declare.
9632         (target_globals): Add a cfgloop field.
9633         (restore_target_globals): Copy the cfgloop field to
9634         this_target_cfgloop.
9635         * target-globals.c: Include cfgloop.h.
9636         (default_target_globals): Initialize the cfgloop field.
9637         (save_target_globals): Likewise.
9638
9639 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9640
9641         * regs.h (target_regs): Add x_direct_load, x_direct_store and
9642         x_float_extend_from_mem.
9643         (direct_load, direct_store, float_extend_from_mem): New macros.
9644         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
9645
9646 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9647
9648         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
9649         (target-globals.o): Depend on $(LIBFUNCS_H).
9650         * libfuncs.h: Include hashtab.h.
9651         (libfunc_entry): Moved from optabs.c.
9652         (target_libfuncs): New structure.
9653         (default_target_libfuncs): Declare.
9654         (this_target_libfuncs): Declare as a variable or define as a macro.
9655         (libfunc_table): Redefine as a macro.
9656         * optabs.c (default_target_libfuncs): New variable.
9657         (this_target_libfuncs): New conditional variable.
9658         (libfunc_table): Delete.
9659         (libfunc_entry): Moved to optabs.h.
9660         (libfunc_hash): Redefine as a macro.
9661         (hash_libfunc, eq_libfunc): Fix comments.
9662         (init_optabs): Use libfunc_hash to detect cases where the function
9663         has already been called.  Clear the hash table instead of
9664         recreating it.
9665         * target-globals.h (this_target_libfuncs): Declare.
9666         (target_globals): Add a libfuncs field.
9667         (restore_target_globals): Copy the libfuncs field to
9668         this_target_libfuncs.
9669         * target-globals.c: Include libfuncs.h.
9670         (default_target_globals): Initialize the libfuncs field.
9671         (save_target_globals): Likewise.
9672
9673 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9674
9675         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
9676         in all dependency lists.
9677
9678 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9679
9680         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
9681         * optabs.h (target_optabs): New structure.
9682         (default_target_optabs): Declare.
9683         (this_target_optabs): Declare as a variable or define as a macro.
9684         (optab_table, convert_optab_table, direct_optab_table): Redefine
9685         as macros.
9686         * optabs.c (default_target_optabs): New variable.
9687         (this_target_optabs): New conditional variable.
9688         (optab_table, convert_optab_table, direct_optab_table): Delete.
9689         * target-globals.h (this_target_optabs): Declare.
9690         (target_globals): Add a optabs field.
9691         (restore_target_globals): Copy the optabs field to
9692         this_target_optabs.
9693         * target-globals.c: Include expr.h and optabs.h.
9694         (default_target_globals): Initialize the optabs field.
9695         (save_target_globals): Likewise.
9696
9697 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9698
9699         * flags.h (target_flagstate): Add x_flag_excess_precision.
9700         (flag_excess_precision): Redefine as a macro.
9701         * toplev.c (flag_excess_precision): Delete.
9702
9703 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9704
9705         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
9706         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
9707         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
9708         (no_caller_save_reg_set): Redefine as a macro.
9709         * reload.h (target_reload): Add x_caller_save_initialized_p and
9710         x_regno_save_mode.
9711         (caller_save_initialized_p): Redefine as a macro.
9712         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
9713         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
9714         (regno_save_mode): Redefine as a macro.
9715
9716 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9717
9718         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
9719         * expmed.h: New file.
9720         * expmed.c (default_target_costs): New variable.
9721         (this_target_costs): New conditional variable.
9722         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
9723         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
9724         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
9725         * target-globals.h (this_target_expmed): Declare.
9726         (target_globals): Add a expmed field.
9727         (restore_target_globals): Copy the expmed field to
9728         this_target_expmed.
9729         * target-globals.c: Include expmed.h.
9730         (default_target_globals): Initialize the expmed field.
9731         (save_target_globals): Likewise.
9732
9733 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9734
9735         * Makefile.in (target-globals.o): Depend on reload.h.
9736         * reload.h (target_reload): New structure.
9737         (default_target_reload): Declare.
9738         (this_target_reload): Declare as a variable or define as a macro.
9739         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
9740         * reload1.c (default_target_reload): New variable
9741         (this_target_reload): New conditional variable.
9742         (indirect_symref_ok, double_reg_address_ok): Delete.
9743         (spill_indirect_levels): Redefine as a macro.
9744         * target-globals.h (this_target_reload): Declare.
9745         (target_globals): Add a reload field.
9746         (restore_target_globals): Copy the reload field to
9747         this_target_reload.
9748         * target-globals.c: Include hard-reg-set.h.
9749         (default_target_globals): Initialize the reload field.
9750         (save_target_globals): Likewise.
9751
9752 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9753
9754         * rtl.h (target_rtl): Add x_static_reg_base_value.
9755         * alias.c (static_reg_base_value): Redefine as a macro.
9756
9757 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9758
9759         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
9760         (GTFILES): Remove reginfo.c.
9761         * rtl.h (target_rtl): Add x_top_of_stack.
9762         (top_of_stack): New macro.
9763         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
9764         (top_of_stack): Delete.
9765
9766 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9767
9768         * regs.h (target_regs): Add x_hard_regs_of_mode,
9769         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
9770         x_may_move_out_cost and x_last_mode_for_init_move_cost.
9771         (have_regs_of_mode, contains_reg_of_mode, move_cost)
9772         (may_move_in_cost, may_move_out_cost): Redefine as macros.
9773         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
9774         (may_move_in_cost, may_move_out_cost): Delete.
9775         (last_mode_for_init_move_cost): Redefine as a macro.
9776
9777 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9778
9779         * hard-reg-set.h (target_hard_regs): New structure.
9780         (default_target_hard_regs): Declare.
9781         (this_target_hard_regs): Declare as a variable or define as a macro.
9782         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
9783         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
9784         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
9785         (reg_class_size, reg_class_subclasses, reg_class_subunion)
9786         (reg_class_superunion, reg_names): Redefine as macros.
9787         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
9788         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
9789         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
9790         (reg_class_contents, reg_class_size, reg_class_subclasses)
9791         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
9792         (default_target_hard_regs): New variable
9793         (this_target_hard_regs, initial_call_really_used_regs)
9794         (initial_reg_alloc_order): New conditional variables.
9795         (initial_reg_names): New variable.
9796         (init_reg_sets): Assert that initial_call_really_used_regs,
9797         initial_reg_alloc_order and initial_reg_names
9798         are all the same size as their variable counterparts.  Use them to
9799         initialize those counterparts.
9800         * target-globals.h (this_target_hard_regs): Declare.
9801         (target_globals): Add a hard_regs field.
9802         (restore_target_globals): Copy the hard_regs field to
9803         this_target_hard_regs.
9804         * target-globals.c: Include hard-reg-set.h.
9805         (default_target_globals): Initialize the hard_regs field.
9806         (save_target_globals): Likewise.
9807
9808 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9809
9810         * Makefile.in (target-globals.o): Depend on $(RTL_H).
9811         * rtl.h (target_rtl): New structure.
9812         (default_target_rtl): Declare.
9813         (this_target_rtl): Declare as a variable or define as a macro.
9814         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
9815         Redefine as macros.
9816         * emit-rtl.c (default_target_rtl): New variable.
9817         (this_target_rtl): New conditional variable.
9818         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
9819         (return_address_pointer_rtx): Delete.
9820         (initial_regno_reg_rtx): New macro.
9821         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
9822         (init_emit_regs): Likewise.
9823         * target-globals.h (this_target_rtl): Declare.
9824         (target_globals): Add a rtl field.
9825         (restore_target_globals): Copy the rtl field to this_target_rtl.
9826         * target-globals.c: Include rtl.h.
9827         (default_target_globals): Initialize the rtl field.
9828         (save_target_globals): Likewise.
9829
9830 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9831
9832         * Makefile.in (target-globals.o): Depend on $(REGS_H).
9833         * regs.h (target_reg_modes): New structure.
9834         (default_target_reg_modes): Declare.
9835         (this_target_reg_modes): Declare as a variable or define as a macro.
9836         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
9837         * reginfo.c (default_target_reg_modes): New variable.
9838         (this_target_reg_modes): New conditional variable.
9839         (hard_regno_nregs, reg_raw_mode): Delete.
9840         * target-globals.h (this_target_regs): Declare.
9841         (target_globals): Add a regs field.
9842         (restore_target_globals): Copy the regs field to this_target_regs.
9843         * target-globals.c: Include regs.h.
9844         (default_target_globals): Initialize the regs field.
9845         (save_target_globals): Likewise.
9846
9847 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9848
9849         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
9850         * doc/tm.texi: Regenerate.
9851         * Makefile.in (OBJS-common): Add target-globals.o.
9852         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
9853         and target-globals.h.
9854         (target-globals.o): New rule.
9855         (GTFILES): Include $(srcdir)/target-globals.h.
9856         * defaults.h (SWITCHABLE_TARGET): Define.
9857         * gengtype.c (open_base_files): Add target-globals.h to the
9858         list of includes.
9859         * target-globals.h: New file.
9860         * target-globals.c: Likewise.
9861
9862         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
9863         * flags.h (target_flag_state): New structure.
9864         (default_target_flag_state): Declare.
9865         (this_target_flag_state): Declare as a variable or define as a macro.
9866         (align_loops_log): Redefine as a macro.
9867         (align_loops_max_skip, align_jumps_log): Likewise.
9868         (align_jumps_max_skip, align_labels_log): Likewise.
9869         (align_labels_max_skip, align_functions_log): Likewise.
9870         * toplev.c (default_target_flag_state): New variable.
9871         (this_target_flag_state): New conditional variable.
9872         (align_loops_log): Delete.
9873         (align_loops_max_skip, align_jumps_log): Likewise.
9874         (align_jumps_max_skip, align_labels_log): Likewise.
9875         (align_labels_max_skip, align_functions_log): Likewise.
9876         * target-globals.h (this_target_flag_state): Declare.
9877         (target_globals): Add a flag_state field.
9878         (restore_target_globals): Copy the flag_state field to
9879         this_target_flag_state.
9880         * target-globals.c: Include flags.h.
9881         (default_target_globals): Initialize the flag_state field.
9882         (save_target_globals): Likewise.
9883
9884 2010-07-12  Jie Zhang  <jie@codesourcery.com>
9885
9886         * postreload.c (reg_symbol_ref[]): New.
9887         (move2add_use_add2_insn): New.
9888         (move2add_use_add3_insn): New.
9889         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
9890         (move2add_note_store): Likewise.
9891
9892 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
9893
9894         PR rtl-optimization/44752
9895         * genautomata.c (main): Don't emit an empty file even if there
9896         is no automaton.
9897
9898 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9899
9900         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
9901         ix86_solaris_return_in_memory.
9902         * config/i386-protos.h: Reflect this.
9903         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
9904         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
9905         Move ...
9906         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
9907
9908 2010-07-12  Jie Zhang  <jie@codesourcery.com>
9909
9910         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
9911         align the stack when it's going to be saved.
9912
9913 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9914
9915         PR pch/14940
9916         * config/host-solaris.c (mmap_fixed): New function.
9917         (sol_gt_pch_get_address): Use it.
9918         (sol_gt_pch_use_address): Likewise.
9919
9920 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9921
9922         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
9923         pentiumpro on Solaris 8 and 9/x86.
9924         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
9925         Document SSE/SSE2 support.
9926         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
9927
9928 2010-07-12  Andi Kleen  <ak@linux.intel.com>
9929
9930         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
9931         instead of gcc_assert to print better error message for multiple
9932         prevailing defs.
9933
9934 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
9935
9936         * config/i386/i386.c (ix86_asm_output_function_label): Change format
9937         string placeholder from 0x%x to %#x.
9938         (ix86_code_end): Use putc to output '\n'.
9939         (ix86_print_operand) <case ';'>: Use putc to output ';'.
9940
9941 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
9942
9943         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
9944         in directive -export.
9945
9946 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
9947
9948         * reginfo.h (reg_classes_intersect_p): Change arguments type to
9949         reg_class_t.
9950         * rtl.h (reg_classes_intersect_p): Adjust prototype.
9951
9952         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9953         Remove macros.
9954         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
9955         rs6000_memory_move_cost): Remove
9956         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
9957         TARGET_MEMORY_MOVE_COST): Define.
9958         (rs6000_register_move_cost): Make static. Change arguments type from
9959         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
9960         (rs6000_memory_move_cost): Make static. Change arguments type from
9961         'enum reg_class' to reg_class_t.
9962
9963 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
9964
9965         PR middle-end/42505
9966         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
9967         lookup code into....
9968         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
9969         new functions.
9970         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
9971         * cfgloopanal.c (target_clobbered_regs): Define.
9972         (init_set_costs): Initialize target_clobbered_regs.
9973         (estimate_reg_pressure_cost): Add call_p argument.  When true,
9974         adjust the number of available registers to exclude the
9975         call-clobbered registers.
9976         * cfgloop.h (target_clobbered_regs): Declare.
9977         (estimate_reg_pressure_cost): Adjust declaration.
9978         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
9979         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
9980         (determine_set_costs): Dump target_clobbered_regs.
9981         (loop_body_includes_call): New function.
9982         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
9983         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
9984         call_p flag through.
9985         (best_gain_for_invariant): Likewise.
9986         (find_invariants_to_move): Likewise.
9987         (move_single_loop_invariants): Likewise, using already-computed
9988         has_call field.
9989
9990 2010-07-10  Richard Guenther  <rguenther@suse.de>
9991             Joern Rennecke  <joern.rennecke@embecosm.com>
9992
9993         PR debug/44832
9994         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
9995         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
9996         unless they have DECL_IGNORED_P set.
9997
9998 2010-07-10  Richard Guenther  <rguenther@suse.de>
9999
10000         PR lto/44889
10001         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
10002         helper function.
10003         (gimple_types_compatible_p): Similar to pointed-to
10004         types allow and merge a mix of complete and incomplete aggregate.
10005         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
10006         (iterative_hash_gimple_type): Adjust for that.
10007
10008 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
10009
10010         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
10011
10012 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
10013
10014         PR objc/44140
10015         * config/darwin.c (output_objc_section_asm_op): Save and restore
10016         section when outputting ObjC section list.
10017
10018 2010-07-09  Jan Hubicka  <jh@suse.cz>
10019
10020         * lto-streamer-out.c (produce_symtab): Do not write alias
10021         cgraph/varpool nodes.
10022
10023 2010-07-09  Jan Hubicka  <jh@suse.cz>
10024
10025         * tree-inline.c (declare_return_variable): Fix ICE while
10026         inlining DECL_BY_VALUE function not in SSA form
10027
10028 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
10029
10030         PR tree-optimization/44576
10031         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
10032         New.  Pull out from is_loop_prefetching_profitable to implement
10033         the trip count to ahead ratio heuristic.
10034         (mem_ref_count_reasonable_p): New.  Pull out from
10035         is_loop_prefetching_profitable to implement the instruction to
10036         memory reference ratio heuristic.  Also consider not reasonable if
10037         the memory reference count is above a threshold (to avoid
10038         explosive compilation time.
10039         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
10040         is_loop_prefetching_profitable to implement the instruction to
10041         prefetch ratio heuristic.
10042         (is_loop_prefetching_profitable): Removed.
10043         (loop_prefetch_arrays): Distribute the cost analysis across the
10044         function to allow early exit of the prefetch analysis.
10045         is_loop_prefetching_profitable is splitted into three functions,
10046         with each one called as early as possible.
10047         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
10048         number of memory references in a loop is considered too many.
10049
10050 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
10051
10052         * reload.c (find_reloads): Don't clear badop if we have a winreg
10053         alternative, but not win, and the class only has fixed regs.
10054         * hard-reg-set.h (class_only_fixed_regs): Declare.
10055         * reginfo.c (class_only_fixed_regs): New array.
10056         (init_reg_sets_1): Initialize it.
10057         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
10058         discourage alternatives using the stack pointer.
10059
10060         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
10061
10062         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
10063
10064         * config/arm/arm.md (cbranchqi4): Fix array size.
10065         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
10066         calculating length.
10067
10068 2010-07-09  Richard Guenther  <rguenther@suse.de>
10069
10070         * gimple.c (struct type_fixup_s): New struct and VEC type.
10071         (gimple_register_type_fixups): New static global.
10072         (gimple_queue_type_fixup): New function.
10073         (gimple_types_compatible_p): Queue type fixups instead of
10074         applying them here.
10075         (gimple_register_type): Apply queued fixups for the
10076         canonical type.  Empty the type fixup queue.
10077
10078 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10079
10080         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
10081         * configure: Regenerate.
10082         * config.in: Ditto.
10083
10084 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
10085             Denys Vlasenko  <dvlasenk@redhat.com>
10086             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10087
10088         PR tree-optimization/28632
10089         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
10090         (extract_range_from_binary_expr): Further optimize
10091         BIT_AND_EXPR and BIT_IOR_EXPR.
10092
10093 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
10094
10095         * tree-if-conv.c (fold_or_predicates): New.
10096         (add_to_predicate_list): Call it.
10097
10098 2010-07-09  Richard Guenther  <rguenther@suse.de>
10099
10100         PR middle-end/44890
10101         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
10102         if base is a pointer.
10103         * tree-cfg.c (verify_expr): Update MEM_REF checking.
10104
10105 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10106
10107         PR target/44877
10108         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
10109         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
10110         builtin mask for load/store builtins.
10111
10112 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10113
10114         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
10115         for "lock addl".
10116         * configure: Regenerate.
10117         * config/i386/i386.c (ix86_print_operand) <case ';'>:
10118         Remove TARGET_MACHO.
10119
10120 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
10121
10122         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
10123         default ISA flags.
10124         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
10125
10126 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
10127
10128         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
10129
10130 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10131
10132         * config/picochip/picochip.md (commsTestPort): Emit more
10133         efficient sequence for tstport instruction.
10134
10135 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10136
10137         * config/i386/i386.c (ix86_veclib_handler): Make static.
10138
10139 2010-07-09  Richard Guenther  <rguenther@suse.de>
10140
10141         PR tree-optimization/44852
10142         * tree-ssa-alias.c: Include toplev.h for exact_log2.
10143         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
10144         in MEM_REF.
10145         (indirect_refs_may_alias_p): Likewise.
10146         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
10147
10148 2010-07-09  Richard Guenther  <rguenther@suse.de>
10149
10150         PR tree-optimization/44882
10151         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
10152         sets do conflict.
10153         (vectorizable_load): Likewise.
10154
10155 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
10156
10157         PR target/40657
10158         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
10159         All callers changed.
10160         Handle the case when we're called for the epilogue.
10161         (thumb_unexpanded_epilogue): Use it.
10162         (thumb1_expand_epilogue): Likewise.
10163
10164 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
10165
10166         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
10167         both ranges are range_int_cst_p with non-negative minimum,
10168         try harder to derive smaller range.
10169
10170 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10171
10172         * genrecog.c: Include diagnostic-core.h before toplev.h.
10173         * genoutput.c: Likewise.
10174         * genextract.c: Likewise.
10175         * genautomata.c: Likewise.
10176         * genemit.c: Likewise.
10177         * genpeep.c: Likewise.
10178         * genattrtab.c: Likewise.
10179         * genconditions.c: Likewise.
10180         * genpreds.c: Likewise.
10181
10182 2010-07-08  Andi Kleen  <ak@linux.intel.com>
10183
10184         * lto-section-in.c (lto_section_name): Add missing comma.
10185
10186 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
10187
10188         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
10189         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
10190         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
10191         (ia64_override_options): Rename to...
10192         (ia64_option_override): ... this one. Make static.
10193
10194 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10195
10196         PR middle-end/44843
10197         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
10198         pointed-to type of the offset in a MEM_REF to compute the alignment.
10199
10200 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
10201
10202         * final.c (final_scan_insn): Replace
10203         TARGET_UNWIND_INFO macro check by unwind_emit
10204         hook NULL check.
10205         * targhooks.c (default_unwind_emit): Removed.
10206         * targhooks.h (default_unwind_emit): Likewise.
10207         * target.def (unwind_emit): Set default value to NULL.
10208
10209         * config/i386/i386-protos.h (ix86_asm_output_function_label):
10210         New prototype.
10211         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
10212         for NULL fntype argument and allow 64-bit targets.
10213         (ix86_asm_output_function_label): New function.
10214         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
10215         (ix86_handle_fndecl_attribute): Likewise.
10216         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
10217         * doc/doc/tm.texi: Regenerated.
10218         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
10219         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
10220         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
10221         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
10222         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10223         * config/elfos.h: Likewise.
10224         * config/i386/cygming.h: Likewise.
10225         * config/netbsd-aout.h: Likewise.
10226         * config/openbsd.h: Likewise.
10227         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
10228         by ix86_asm_output_function_label function call.
10229         * varasm.c (assemble_start_function): Use
10230         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10231
10232 2010-07-08  Jan Hubicka  <jh@suse.cz>
10233
10234         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
10235         New function.
10236         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
10237         Declare.
10238         * ipa-cp.c (ipcp_estimate_growth): Use it.
10239         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
10240         Likewise.
10241
10242 2010-07-08  Jan Hubicka  <jh@suse.cz>
10243
10244         * tree-inline.c (declare_return_variable): Allocate annotation for new
10245         temporary.
10246
10247 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10248
10249         PR tree-optimization/44710
10250         * tree-if-conv.c (parse_predicate): New.
10251         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
10252         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
10253
10254 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10255
10256         * common.opt (ftree-loop-if-convert): New flag.
10257         * doc/invoke.texi (ftree-loop-if-convert): Documented.
10258         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
10259         when flag_tree_loop_if_convert is set.
10260
10261 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
10262
10263         * config/i386/i386.c: Use short syntax for function calls
10264         through function pointers.
10265         * config/i386/i386.md: Ditto.
10266
10267 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10268
10269         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
10270
10271 2010-07-08  Richard Guenther  <rguenther@suse.de>
10272
10273         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
10274         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
10275
10276 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
10277
10278         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
10279         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
10280         (loc_list_from_tree): Likewise.
10281         (output_loc_operands): Handle outputting DW_OP_const[48]u
10282         with loc->dtprel set.
10283         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
10284
10285 2010-07-08  Jan Hubicka  <jh@suse.cz>
10286
10287         * ipa.c: Include pointer-set.h
10288         (cgraph_externally_visible_p): New attribute ALIASED;
10289         when in LTO, hidden symbols are local unless they are aliased.
10290         (function_and_variable_visibility): Compute aliased nodes;
10291         handle LTO and hidden symbol on functions and vars.
10292         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
10293         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
10294
10295 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10296
10297         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
10298         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10299         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10300         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10301         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10302         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
10303         (ix86_gen_probe_stack_range): Likewise.
10304         (override_options): Set them.
10305         (ix86_target_stack_probe): New function.
10306         (ix86_compute_frame_layout): Force use of push instructions to
10307         save registers if stack checking with probes is enabled.
10308         (get_scratch_register_on_entry): New function.
10309         (release_scratch_register_on_entry): Likewise.
10310         (ix86_adjust_stack_and_probe): Likewise.
10311         (output_adjust_stack_and_probe): Likewise.
10312         (ix86_emit_probe_stack_range): Likewise.
10313         (output_probe_stack_range): Likewise.
10314         (ix86_expand_prologue): Emit stack checking code if static built-in
10315         stack checking is enabled.
10316         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
10317         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
10318         (output_adjust_stack_and_probe): Likewise.
10319         (output_probe_stack_range): Likewise.
10320         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
10321         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
10322         TARGET_STACK_PROBE.
10323         (allocate_stack_worker_64): Likewise.
10324         (allocate_stack): Likewise.
10325         (adjust_stack_and_probe): New insn.
10326         (probe_stack_range): Likewise.
10327
10328 2010-07-08  Richard Guenther  <rguenther@suse.de>
10329
10330         PR tree-optimization/44831
10331         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
10332         a MEM_REF preserving TBAA info of the original dereference.
10333         Dereference the original pointer if the address is not invariant.
10334         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
10335         at least one invariant address that we are going to dereference.
10336
10337 2010-07-08  Richard Guenther  <rguenther@suse.de>
10338
10339         PR tree-optimization/44861
10340         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
10341         information when building MEM_REFs.
10342         (vectorizable_load): Likewise.
10343         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
10344
10345 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10346
10347         * config/sol2-c.c: Do not include diagnostic-core.h.
10348
10349 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10350
10351         PR bootstrap/44768
10352         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
10353         with respect to current_function_decl. Pass decl of the function.
10354         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
10355         * ipa-inline.c (compute_inline_parameters): Pass decl to
10356         estimated_stack_frame_size.
10357
10358 2010-07-08  Richard Guenther  <rguenther@suse.de>
10359
10360         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
10361         New function.
10362         (valueize_refs): Call it.
10363
10364 2010-07-08  Richard Guenther  <rguenther@suse.de>
10365
10366         PR rtl-optimization/44838
10367         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
10368         SSA form do not use pointer equivalence.
10369
10370 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10371
10372         * dwarf2out.c (AT_linkage_name): Delete.
10373         (add_linkage_attr): New function.
10374         (add_linkage_name): Call it to emit the linkage attribute.
10375         (dwarf2out_finish): Likewise.
10376         (move_linkage_attr): Explicitly accept both attribute variants.
10377
10378 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10379
10380         * toplev.h: Do not include diagnostic-core.h.
10381         Include diagnostic-core.h in every file that includes toplev.h.
10382         * c-tree.h: Do not include toplev.h.
10383         * pretty-print.h: Update comment.
10384         * Makefile.in: Update dependencies.
10385         * alias.c: Include diagnostic-core.h in every file that includes
10386         toplev.h.
10387         * attribs.c: Likewise.
10388         * auto-inc-dec.c: Likewise.
10389         * bb-reorder.c: Likewise.
10390         * bt-load.c: Likewise.
10391         * caller-save.c: Likewise.
10392         * calls.c: Likewise.
10393         * cfg.c: Likewise.
10394         * cfganal.c: Likewise.
10395         * cfgbuild.c: Likewise.
10396         * cfgcleanup.c: Likewise.
10397         * cfghooks.c: Likewise.
10398         * cfgloop.c: Likewise.
10399         * combine.c: Likewise.
10400         * config/alpha/alpha.c: Likewise.
10401         * config/arc/arc.c: Likewise.
10402         * config/arm/arm.c: Likewise.
10403         * config/arm/pe.c: Likewise.
10404         * config/avr/avr.c: Likewise.
10405         * config/bfin/bfin.c: Likewise.
10406         * config/cris/cris.c: Likewise.
10407         * config/crx/crx.c: Likewise.
10408         * config/darwin-c.c: Likewise.
10409         * config/darwin.c: Likewise.
10410         * config/fr30/fr30.c: Likewise.
10411         * config/frv/frv.c: Likewise.
10412         * config/h8300/h8300.c: Likewise.
10413         * config/host-darwin.c: Likewise.
10414         * config/i386/i386.c: Likewise.
10415         * config/i386/netware.c: Likewise.
10416         * config/i386/nwld.c: Likewise.
10417         * config/i386/winnt-cxx.c: Likewise.
10418         * config/i386/winnt-stubs.c: Likewise.
10419         * config/i386/winnt.c: Likewise.
10420         * config/ia64/ia64-c.c: Likewise.
10421         * config/ia64/ia64.c: Likewise.
10422         * config/iq2000/iq2000.c: Likewise.
10423         * config/lm32/lm32.c: Likewise.
10424         * config/m32c/m32c-pragma.c: Likewise.
10425         * config/m32c/m32c.c: Likewise.
10426         * config/m32r/m32r.c: Likewise.
10427         * config/m68hc11/m68hc11.c: Likewise.
10428         * config/m68k/m68k.c: Likewise.
10429         * config/mcore/mcore.c: Likewise.
10430         * config/mep/mep-pragma.c: Likewise.
10431         * config/mep/mep.c: Likewise.
10432         * config/mmix/mmix.c: Likewise.
10433         * config/mn10300/mn10300.c: Likewise.
10434         * config/moxie/moxie.c: Likewise.
10435         * config/pa/pa.c: Likewise.
10436         * config/pdp11/pdp11.c: Likewise.
10437         * config/picochip/picochip.c: Likewise.
10438         * config/rs6000/rs6000-c.c: Likewise.
10439         * config/rs6000/rs6000.c: Likewise.
10440         * config/rx/rx.c: Likewise.
10441         * config/s390/s390.c: Likewise.
10442         * config/score/score.c: Likewise.
10443         * config/score/score3.c: Likewise.
10444         * config/score/score7.c: Likewise.
10445         * config/sh/sh.c: Likewise.
10446         * config/sh/symbian-base.c: Likewise.
10447         * config/sh/symbian-c.c: Likewise.
10448         * config/sh/symbian-cxx.c: Likewise.
10449         * config/sol2-c.c: Likewise.
10450         * config/sol2.c: Likewise.
10451         * config/sparc/sparc.c: Likewise.
10452         * config/spu/spu.c: Likewise.
10453         * config/stormy16/stormy16.c: Likewise.
10454         * config/v850/v850-c.c: Likewise.
10455         * config/v850/v850.c: Likewise.
10456         * config/vax/vax.c: Likewise.
10457         * config/vxworks.c: Likewise.
10458         * config/xtensa/xtensa.c: Likewise.
10459         * convert.c: Likewise.
10460         * cse.c: Likewise.
10461         * cselib.c: Likewise.
10462         * dbgcnt.c: Likewise.
10463         * dbxout.c: Likewise.
10464         * ddg.c: Likewise.
10465         * dominance.c: Likewise.
10466         * emit-rtl.c: Likewise.
10467         * explow.c: Likewise.
10468         * expmed.c: Likewise.
10469         * fixed-value.c: Likewise.
10470         * fold-const.c: Likewise.
10471         * fwprop.c: Likewise.
10472         * gcse.c: Likewise.
10473         * ggc-common.c: Likewise.
10474         * ggc-page.c: Likewise.
10475         * ggc-zone.c: Likewise.
10476         * gimple-low.c: Likewise.
10477         * gimplify.c: Likewise.
10478         * graph.c: Likewise.
10479         * haifa-sched.c: Likewise.
10480         * ifcvt.c: Likewise.
10481         * implicit-zee.c: Likewise.
10482         * integrate.c: Likewise.
10483         * ira-build.c: Likewise.
10484         * ira-color.c: Likewise.
10485         * ira-conflicts.c: Likewise.
10486         * ira-costs.c: Likewise.
10487         * ira-lives.c: Likewise.
10488         * ira.c: Likewise.
10489         * lists.c: Likewise.
10490         * loop-doloop.c: Likewise.
10491         * loop-iv.c: Likewise.
10492         * lto-opts.c: Likewise.
10493         * lto-symtab.c: Likewise.
10494         * main.c: Likewise.
10495         * modulo-sched.c: Likewise.
10496         * optabs.c: Likewise.
10497         * params.c: Likewise.
10498         * plugin.c: Likewise.
10499         * postreload-gcse.c: Likewise.
10500         * postreload.c: Likewise.
10501         * predict.c: Likewise.
10502         * profile.c: Likewise.
10503         * real.c: Likewise.
10504         * regcprop.c: Likewise.
10505         * reginfo.c: Likewise.
10506         * regmove.c: Likewise.
10507         * reorg.c: Likewise.
10508         * resource.c: Likewise.
10509         * rtl.c: Likewise.
10510         * rtlanal.c: Likewise.
10511         * sched-deps.c: Likewise.
10512         * sched-ebb.c: Likewise.
10513         * sched-rgn.c: Likewise.
10514         * sdbout.c: Likewise.
10515         * sel-sched-dump.c: Likewise.
10516         * sel-sched-ir.c: Likewise.
10517         * simplify-rtx.c: Likewise.
10518         * stmt.c: Likewise.
10519         * stor-layout.c: Likewise.
10520         * store-motion.c: Likewise.
10521         * targhooks.c: Likewise.
10522         * tree-cfg.c: Likewise.
10523         * tree-cfgcleanup.c: Likewise.
10524         * tree-dump.c: Likewise.
10525         * tree-eh.c: Likewise.
10526         * tree-inline.c: Likewise.
10527         * tree-nomudflap.c: Likewise.
10528         * tree-object-size.c: Likewise.
10529         * tree-optimize.c: Likewise.
10530         * tree-outof-ssa.c: Likewise.
10531         * tree-phinodes.c: Likewise.
10532         * tree-profile.c: Likewise.
10533         * tree-ssa-ccp.c: Likewise.
10534         * tree-ssa-coalesce.c: Likewise.
10535         * tree-ssa-live.c: Likewise.
10536         * tree-ssa-loop-niter.c: Likewise.
10537         * tree-ssa-loop-prefetch.c: Likewise.
10538         * tree-ssa-loop.c: Likewise.
10539         * tree-ssa-structalias.c: Likewise.
10540         * tree-ssa-uninit.c: Likewise.
10541         * tree-ssa.c: Likewise.
10542         * tree-vect-data-refs.c: Likewise.
10543         * tree-vect-loop-manip.c: Likewise.
10544         * tree-vect-loop.c: Likewise.
10545         * tree-vect-patterns.c: Likewise.
10546         * tree-vect-stmts.c: Likewise.
10547         * tree-vrp.c: Likewise.
10548         * varasm.c: Likewise.
10549         * vec.c: Likewise.
10550         * web.c: Likewise.
10551         * xcoffout.c: Likewise.
10552
10553 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
10554
10555         * gengtype.c (write_field_root): New function.
10556         (write_root): Use it.
10557
10558 2010-07-07  Wei Guozhi  <carrot@google.com>
10559
10560         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10561         of lowest bits to lshift/compare): Add a missing line.
10562
10563 2010-07-07  Wei Guozhi  <carrot@google.com>
10564
10565         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10566         of lowest bits to lshift/compare): New.
10567
10568 2010-07-07  Tom Tromey  <tromey@redhat.com>
10569
10570         * doc/tm.texi: Update.
10571         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
10572         Add @hook.
10573         * target.def (want_debug_pub_sections): New hook.
10574         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
10575         * dwarf2out.c (add_pubname_string): Check
10576         targetm.want_debug_pub_sections.
10577         (add_pubname): Likewise.
10578         (add_pubtype): Likewise.
10579
10580 2010-07-07  Jie Zhang  <jie@codesourcery.com>
10581
10582         * genautomata.c (output_automata_list_min_issue_delay_code):
10583         Correctly decompress min_issue_delay.
10584
10585 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10586
10587         PR rtl-optimization/44404
10588         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
10589         possible, use reg_overlap_mentioned_p instead.
10590
10591 2010-07-07  Duncan Sands  <baldrick@free.fr>
10592
10593         PR middle-end/41355
10594         * tree.c (build_function_type_skip_args): Copy the original type using
10595         build_distinct_type_copy rather than copy_node.
10596
10597 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10598
10599         PR target/44850
10600         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
10601         revision 161876.
10602         (ix86_expand_prologue): Likewise.
10603         (ix86_handle_fndecl_attribute): Likewise.
10604         (ix86_asm_declare_function_name): Likewise.
10605         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10606         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10607         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
10608         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
10609         * doc/extend.texi: Likewise.
10610
10611 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10612
10613         PR target/44844
10614         * config/i386/i386.md (rdrand<mode>): Changed to expand to
10615         retry if the carry flag isn't valid.
10616         (rdrand<mode>_1): New.
10617
10618 2010-07-07  Richard Guenther  <rguenther@suse.de>
10619
10620         PR middle-end/44790
10621         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
10622         for expanding the constant offset for MEM_REFs.
10623
10624 2010-07-07  Richard Guenther  <rguenther@suse.de>
10625
10626         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
10627         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
10628         * gimple.h (is_gimple_operand): Remove.
10629         * gimple.c (is_gimple_operand): Likewise.
10630         (walk_gimple_op): Fix wi->val_only setting for calls.
10631         * tree-cfg.c (verify_gimple_call): Fix argument validation.
10632         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
10633         invalid gimple calls.
10634
10635 2010-07-06  Jan Hubicka  <jh@suse.cz>
10636
10637         * lto-cgraph.c (output_cgraph): Add missing declaration.
10638
10639 2010-07-06  Jan Hubicka  <jh@suse.cz>
10640
10641         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
10642         partition.
10643
10644 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
10645
10646         * doc/gimple.texi (GIMPLE_DEBUG): Document.
10647         * doc/rtl.texi (Debug Information): New node.
10648         (NOTE_INSN_VAR_LOCATION): Document.
10649         (debug_insn): Likewise.
10650         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
10651
10652 2010-07-07  Jan Hubicka  <jh@suse.cz>
10653
10654         With parts by Richard Guenther.
10655
10656         PR middle-end/44813
10657         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
10658         for functions passed by reference.
10659         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
10660         in memory when passed by reference.
10661         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
10662         beggining.
10663         * ipa-split.c (split_function): Cleanup way return value is passed;
10664         handle SSA DECL_BY_REFERENCE retvals.
10665         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
10666         DECL_BY_REFERENCE is set.
10667         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
10668         find_what_p_points_to): Handle RESULT_DECL.
10669         * tree-inline.c (declare_return_variable): Get new entry_block argument;
10670         when passing by reference ensure that RESULT_DECL is gimple_val.
10671         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
10672         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
10673
10674 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10675
10676         PR rtl-optimization/44787
10677         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
10678         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
10679
10680 2010-07-06  Jan Hubicka  <jh@suse.cz>
10681
10682         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
10683         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
10684         with body can prevail.
10685         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
10686         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
10687         * cgraph.c (cgraph_get_node_or_alias): New function.
10688         * cgraph.h (cgraph_get_node_or_alias): Declare.
10689
10690 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
10691
10692         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
10693         support.
10694         (ix86_expand_prologue): Likewise.
10695         (ix86_handle_fndecl_attribute): Likewise.
10696         (ix86_asm_declare_function_name): New function for
10697         ASM_DECLARE_FUNCTION_NAME.
10698         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
10699         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
10700         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
10701         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
10702         * doc/extend.texi: Adjust documentation about ms_hook_prologue
10703         attribute.
10704
10705 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10706
10707         * config/i386/i386.md (immediate_operand): New mode attribute.
10708
10709         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
10710         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
10711         using P mode iterator.
10712         (pro_epilogue_adjust_stack_di_2): Rename from
10713         pro_epilogue_adjust_stack_rex64_2.
10714
10715         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
10716
10717 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10718
10719         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
10720         through gen_mov_insv_1 function pointer.
10721         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
10722         gen_truncxf<mode>2 through gen_truncxf function pointer.
10723         (remainder<mode>3): Ditto.
10724         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
10725         (allocate_stack): Call gen_allocate_stack_worker_64 or
10726         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
10727         function pointer.
10728         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
10729         function pointer.
10730
10731 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10732
10733         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
10734         operand constraint instead of <r><i>m.
10735
10736 2010-07-06  Richard Guenther  <rguenther@suse.de>
10737
10738         PR middle-end/44828
10739         * convert.c (convert_to_integer): Watch out for overflowing
10740         MULT_EXPR as well.
10741
10742 2010-07-05  Jan Hubicka  <jh@suse.cz>
10743
10744         * lto-streamer.c (write_symbol_vec): Rename to ...
10745         (write_symbol) ... this one; write only symbol given and when
10746         present in cache. Sanity check that what is defined is present
10747         in cgraph/varpool with body/finalized decl.
10748         (write_symbols_of_kind): Remove.
10749         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
10750         pairs to produce symtab.
10751         (produce_asm_for_decls): Update call of produce_symtab; don't do so
10752         when doing WPA streaming.
10753
10754 2010-07-05  Jan Hubicka  <jh@suse.cz>
10755
10756         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
10757         function is still available to fold into.
10758
10759 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
10760
10761         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
10762         * function.h (struct_function): Change type of local_decls field
10763         to a VEC.
10764         (add_local_decl): New function.
10765         (FOR_EACH_LOCAL_DECL): New macro.
10766         * cfgexpand.c (init_vars_expansion): Adjust for new type of
10767         cfun->local_decls.
10768         (estimated_stack_frame_size): Likewise.
10769         (expand_used_vars): Likewise.
10770         * cgraphbuild.c (build_cgraph_edges): Likewise.
10771         * function.c (instantiate_decls_1): Likewise.
10772         * ipa-struct-reorg.c (build_data_structure): Likewise.
10773         * ipa-type-escape.c (analyze_function): Likewise.
10774         * lto-streamer-in.c (input_function): Likewise.
10775         * lto-streamer-out.c (output_function): Likewise.
10776         * tree-ssa-live.c (remove_unused_locals): Likewise.
10777         * tree.c (free_lang_data_in_decl): Likewise.
10778         (find_decls_types_in_node): Likewise.
10779         * omp-low.c (remove_exit_barrier): Likewise.
10780         (expand_omp_taskreg): Likewise.
10781         (list2chain): Rename to...
10782         (vec2chain): ...this.  Adjust.
10783         * cgraphunit.c (assemble_thunk): Call add_local_decl.
10784         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
10785         * gimple-low.c (record_vars_into): Likewise.
10786         * tree-inline.c (remap_decls): Likewise.
10787         (declare_return_variable): Likewise.
10788         (declare_inline_vars): Likewise.
10789         (copy_forbidden): Adjust for new type of cfun->local_decls.
10790         (add_local_variables): New function.
10791         (expand_call_inline): Call it.
10792         (tree_function_versioning): Likewise.
10793
10794 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
10795
10796         AVX Programming Reference (June, 2010)
10797         * config/i386/cpuid.h (bit_F16C): New.
10798         (bit_RDRND): Likewise.
10799         (bit_FSGSBASE): Likewise.
10800
10801         * config/i386/i386-builtin-types.def: Add
10802         "DEF_FUNCTION_TYPE (UINT16)", function types for
10803         float16 <-> float conversions and
10804         "DEF_FUNCTION_TYPE (VOID, UINT64)".
10805
10806         * config/i386/i386-c.c (ix86_target_macros_internal): Support
10807         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
10808         OPTION_MASK_ISA_F16C.
10809
10810         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
10811         (OPTION_MASK_ISA_RDRND_SET): Likewise.
10812         (OPTION_MASK_ISA_F16C_SET): Likewise.
10813         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
10814         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
10815         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
10816         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
10817         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
10818         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
10819         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
10820         (override_options): Handle them.
10821         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
10822         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
10823         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
10824         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
10825         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
10826         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
10827         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
10828         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
10829         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
10830         (bdesc_args): Likewise.
10831         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
10832         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
10833         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
10834         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
10835         Handle non-memory store.
10836
10837         * config/i386/i386.h (TARGET_FSGSBASE): New.
10838         (TARGET_RDRND): Likewise.
10839         (TARGET_F12C): Likewise.
10840
10841         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
10842         (UNSPEC_VCVTPS2PH): Likewise.
10843         (UNSPECV_RDFSBASE): Likewise.
10844         (UNSPECV_RDGSBASE): Likewise.
10845         (UNSPECV_WRFSBASE): Likewise.
10846         (UNSPECV_WRGSBASE): Likewise.
10847         (UNSPECV_RDRAND): Likewise.
10848         (rdfsbase<mode>): Likewise.
10849         (rdgsbase<mode>): Likewise.
10850         (wrfsbase<mode>): Likewise.
10851         (wrgsbase<mode>): Likewise.
10852         (rdrand<mode>): Likewise.
10853
10854         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
10855
10856         * config/i386/immintrin.h (_rdrand_u16): New.
10857         (_rdrand_u32): Likewise.
10858         (_readfsbase_u32): Likewise.
10859         (_readfsbase_u64): Likewise.
10860         (_readgsbase_u32): Likewise.
10861         (_readgsbase_u64): Likewise.
10862         (_writefsbase_u32): Likewise.
10863         (_writefsbase_u64): Likewise.
10864         (_writegsbase_u32): Likewise.
10865         (_writegsbase_u64): Likewise.
10866         (_rdrand_u64): Likewise.
10867         (_cvtsh_ss): Likewise.
10868         (_mm_cvtph_ps): Likewise.
10869         (_mm256_cvtph_ps): Likewise.
10870         (_cvtss_sh): Likewise.
10871         (_mm_cvtps_ph): Likewise.
10872         (_mm256_cvtps_ph): Likewise.
10873
10874         * config/i386/sse.md (vcvtph2ps): New.
10875         (*vcvtph2ps_load): Likewise.
10876         (vcvtph2ps256): Likewise.
10877         (vcvtps2ph): Likewise.
10878         (*vcvtps2ph): Likewise.
10879         (*vcvtps2ph_store): Likewise.
10880         (vcvtps2ph256): Likewise.
10881
10882         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
10883
10884         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
10885
10886 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
10887
10888         PR bootstrap/44512
10889         * genenums.c (main): Output include of insn-constants.h
10890         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
10891
10892 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
10893
10894         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
10895         (override_options): Initialize it.
10896         (ix86_expand_prologue): Use it.
10897
10898 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
10899
10900         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
10901
10902 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
10903
10904         * double-int.h (fit_double_type): Remove declaration.
10905         * double-int.c (fit_double_type): Remove function.
10906         * tree.h (int_fits_type_p): Adjust prototype.
10907         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
10908         instead of fit_double_type.
10909         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
10910         instead of fit_double_type and build_int_cst_wide.
10911         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
10912         instead of fit_double_type and build_int_cst_wide.
10913         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
10914         of fit_double_type.
10915
10916 2010-07-05  Jan Hubicka  <jh@suse.cz>
10917
10918         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
10919         in_other_partition.
10920         * lto-cgraph.c (referenced_from_other_partition_p,
10921         reachable_from_other_partition_p): Use in_other_partition flags.
10922         (output_node, output_varpool_node): COMDAT nodes always have private
10923         copies and thus are never used from other partition.
10924
10925 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
10926
10927         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
10928         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
10929         * config/ia64/ia64.c Include reload.h.
10930         (ia64_memory_move_cost): New function.
10931         (TARGET_MEMORY_MOVE_COST): Define.
10932         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
10933         memory_move_cost.
10934
10935 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
10936
10937         PR middle-end/42505
10938         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
10939         comments about cost model.
10940         (try_add_cand_for):  Add second strategy for choosing initial set
10941         based on original IVs, controlled by ORIGINALP argument.
10942         (get_initial_solution): Add ORIGINALP argument.
10943         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
10944         (find_optimal_iv_set): Try two different strategies for choosing
10945         the IV set, and return the one with lower cost.
10946
10947 2010-07-05  Richard Guenther  <rguenther@suse.de>
10948
10949         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
10950
10951 2010-07-05  Richard Guenther  <rguenther@suse.de>
10952
10953         * tree.c (reference_alias_ptr_type): New function.
10954         * tree.h (reference_alias_ptr_type): Declare.
10955         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
10956         allow non-TARGET_MEM_REF new refs.
10957         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
10958         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
10959         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
10960         (create_mem_ref): Get alias pointer type.  Adjust calls to
10961         create_mem_ref_raw.
10962         (maybe_fold_tmr): Likewise.
10963         * tree-flow.h (create_mem_ref): Adjust prototype.
10964
10965 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
10966
10967         PR c++/44808
10968         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
10969         *from_p is VAR_DECL.
10970
10971 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
10972
10973         * tree.h (build_call_list): Remove.
10974         * tree.c (build_call_list): Remove.
10975
10976 2010-07-05  Richard Guenther  <rguenther@suse.de>
10977
10978         * double-int.h (double_int_sub): Declare.
10979         * double-int.c (double_int_sub): New function.
10980         * dwarf2out.c (field_byte_offset): Use it.
10981         * fixed-value.c (do_fixed_add): Likewise.
10982         (do_fixed_multiply): Likewise.
10983         (do_fixed_divide): Likewise.
10984         * tree-predcom.c (add_ref_to_chain): Likewise.
10985         (determine_roots_comp): Likewise.
10986         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
10987
10988 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
10989
10990         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
10991         implementations.
10992
10993 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
10994
10995         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
10996         * arm-modes.def (CC_NOTB): Don't define.
10997         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
10998         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
10999         (LTUGEU): New code_iterator.
11000         (cnb, optab): New corresponding code_attrs.
11001         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
11002         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
11003         using LTUGEU.
11004         (addsi3_carryin_shift_<optab>): Likewise.
11005         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
11006         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
11007         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
11008         (subsi3_compare): Renamed from subsi3_compare0_c.
11009         Change CC_NOTB to CC.
11010         (arm_subsi3_insn): Allow constants for operand 0.
11011         (compare_scc peephole for eq case): New.
11012         (compare_scc splitters): Change CC_NOTB to CC.
11013
11014 2010-07-05  Richard Guenther  <rguenther@suse.de>
11015
11016         * tree-ssa-loop-im.c (for_each_index): Do not handle
11017         ALIGN_INDIRECT_REF.
11018         (gen_lsm_tmp_name): Likewise.
11019         * tree-dump.c (dequeue_and_dump): Likewise.
11020         * tree-pretty-print.c (dump_generic_node): Likewise.
11021         (op_code_prio): Likewise.
11022         (op_symbol_code): Likewise.
11023         * tree.c (staticp): Likewise.
11024         (build1_stat): Likewise.
11025         * tree.h (INDIRECT_REF_P): Likewise.
11026         * fold-const.c (maybe_lvalue_p): Likewise.
11027         (operand_equal_p): Likewise.
11028         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11029         (ao_ref_init_from_vn_reference): Likewise.
11030         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11031         (find_interesting_uses_address): Likewise.
11032         * dwarf2out.c (loc_list_from_tree): Likewise.
11033         * gimplify.c (gimplify_expr): Likewise.
11034         * tree-eh.c (tree_could_trap_p): Likewise.
11035         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11036         * cfgexpand.c (expand_debug_expr): Likewise.
11037         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11038         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11039         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11040         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
11041         * tree-ssa-operands.c (get_expr_operands): Likewise.
11042         * expr.c (safe_from_p): Likewise.
11043         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
11044         * tree-vect-data-refs.c (vect_setup_realignment): Build
11045         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
11046         * tree-vect-stmts.c (vectorizable_load): Likewise.
11047         * tree.def (ALIGN_INDIRECT_REF): Remove.
11048
11049 2010-07-05  Richard Guenther  <rguenther@suse.de>
11050
11051         PR tree-optimization/44784
11052         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
11053         for inserted stmts.
11054         (find_or_generate_expression): Fix SCCVN insertion check.
11055
11056 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
11057
11058         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
11059         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
11060         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
11061         directives.
11062
11063 2010-07-05  Ira Rosen  <irar@il.ibm.com>
11064
11065         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
11066         statements that are not vectorized.
11067         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
11068         in INSIDE_COST.
11069
11070 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
11071
11072         PR bootstrap/44820
11073         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
11074
11075 2010-07-05  Richard Guenther  <rguenther@suse.de>
11076
11077         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
11078         RESULT_DECLs properly.
11079
11080 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
11081
11082         PR rtl-optimization/44695
11083         * config/i386/i386.md (extract_code): Removed.
11084         (<u>divmodqi4): Likewise.
11085         (divmodqi4): New.
11086         (udivmodqi4): Likewise.
11087         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
11088         (udivmodhiqi3): Likewise.
11089
11090 2010-07-04  Jan Hubicka  <jh@suse.cz>
11091
11092         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
11093
11094 2010-07-04  Jan Hubicka  <jh@suse.cz>
11095
11096         * cgraphunit.c (init_cgraph): Only initialize dump file if it
11097         is not already initialized.
11098
11099 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11100
11101         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
11102         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
11103         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
11104         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
11105         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
11106         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
11107         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
11108         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
11109         (sync_new_nand_optab): Redefine as macros.
11110         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
11111         Delete.
11112         (direct_optab_index): New enum.
11113         (direct_optab_d): New structure.
11114         (direct_optab): New typedef.
11115         (direct_optab_table): Declare.
11116         (direct_optab_handler, set_direct_optab_handler): New functions.
11117         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
11118         (sync_lock_release_optab): New macros.
11119         * optabs.c (direct_optab_table): New variable.
11120         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
11121         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
11122         cmpstr_optab and cmpstrn_optab.
11123         (emit_conditional_move): Likewise for movcc_optab.
11124         (can_conditionally_move_p): Likewise for movcc_gen_code.
11125         (init_insn_codes): Clear direct_optab_table.
11126         (init_optabs): Don't initialize the new "direct optabs" here.
11127         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
11128         vcond_gen_code.
11129         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
11130         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
11131         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
11132         (expand_sync_operation): Likewise other sync_*_optabs.
11133         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
11134         to sync_compare_and_swap_optab.
11135         (expand_sync_lock_test_and_set): Use direct_optab_handler for
11136         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
11137         to the names of both.
11138         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
11139         cmpstr_optab and cmpstrn_optab.
11140         (expand_builtin_lock_release): Likewise sync_lock_release.
11141         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
11142         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
11143         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
11144         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
11145         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
11146         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
11147         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
11148         (sync_lock_test_and_set, sync_lock_release): Delete.
11149         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
11150         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
11151         * genopinit.c (optabs): Use set_direct_optab_handler for the new
11152         macro optabs.
11153         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
11154         the "optab" local variable.  Use direct_optab_handler for optab and
11155         sync_compare_and_swap_optab.
11156         * reload1.c (reload_in_optab, reload_out_optab): Delete.
11157         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
11158         reload_in_optab and reload_out_optab.
11159         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
11160         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
11161         * config/pa/pa.c (pa_secondary_reload): Likewise.
11162         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
11163         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
11164         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
11165         (VMSupportsCS8_builtin): Likewise.
11166
11167 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11168
11169         * optabs.h (optab_handlers): Change type of insn_code to int.
11170         (optab_handler, set_optab_handler, convert_optab_handler)
11171         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
11172         CODE_FOR_nothing".
11173         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
11174         (init_insn_codes): Zero both the above arrays.
11175         (init_optabs): Never call init_insn_codes first time around.
11176
11177 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11178
11179         * optabs.h (optab_handler, convert_optab_handler): Turn into
11180         inline functions that return an insn code.
11181         (set_optab_handler, set_convert_optab_handler): New functions.
11182         * builtins.c: Replace optab_handler(X)->insn_code with
11183         optab_handler or set_optab_handler thoughout.  Likewise
11184         convert_optab_handler(X)->insn_code with convert_optab_handler
11185         and set_convert_optab_handler.
11186         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
11187         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
11188         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
11189         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
11190         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
11191         config/spu/spu.c: Likewise.
11192
11193 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11194
11195         PR target/44531
11196         * config.gcc (sh*-*-*): Use regular expressions instead of
11197         the 'i' modifier for sed substitutions.
11198
11199 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
11200
11201         * gimple.c (gimple_body): Comments added.
11202
11203 2010-07-04  Richard Guenther  <rguenther@suse.de>
11204
11205         PR middle-end/44809
11206         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
11207         of an INDIRECT_REF.
11208
11209 2010-07-04  Richard Guenther  <rguenther@suse.de>
11210
11211         PR tree-optimization/44479
11212         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
11213         extra SSA name copy statements which preserves points-to
11214         information.
11215         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
11216         Copy points-to information for all pointers.  Properly handle
11217         MEM_REFs.
11218         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
11219         copy statements.
11220         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
11221         dependency.
11222
11223 2010-07-04  Richard Guenther  <rguenther@suse.de>
11224
11225         PR middle-end/44785
11226         * tree-inline.c (initialize_inlined_parameters): Do not
11227         re-use pointer-map slot over remap_type call.
11228
11229 2010-07-04  Richard Guenther  <rguenther@suse.de>
11230
11231         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
11232
11233 2010-07-04  Richard Guenther  <rguenther@suse.de>
11234
11235         PR tree-optimization/44656
11236         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
11237         again after value-replacing in the defintions lhs.
11238
11239 2010-07-04  Ira Rosen  <irar@il.ibm.com>
11240             Revital Eres  <eres@il.ibm.com>
11241
11242         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
11243         Document new arguments.
11244         * doc/tm.texi: Regenerate.
11245         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
11246         Handle unaligned store.
11247         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
11248         * target.def (builtin_vectorization_cost): Add new arguments.
11249         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
11250         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
11251         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
11252         (vect_vfa_segment_size): Fix indentation.
11253         * tree-vectorizer.h (struct _vect_peel_info): New.
11254         (struct _vect_peel_extended_info): New.
11255         (struct _loop_vec_info): Add new field for peeling hash table and a
11256         macro for its access.
11257         (VECT_MAX_COST): Define.
11258         (vect_get_load_cost): Declare.
11259         (vect_get_store_cost, vect_get_known_peeling_cost,
11260         vect_get_single_scalar_iteraion_cost): Likewise.
11261         (vect_supportable_dr_alignment): Add new argument.
11262         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
11263         field.
11264         (destroy_loop_vec_info): Free peeling hash table.
11265         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
11266         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
11267         vect_analyze_slp. Fix indentation.
11268         (vect_get_single_scalar_iteraion_cost): New function.
11269         (vect_get_known_peeling_cost): Likewise.
11270         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
11271         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
11272         statement. Move outside cost calculation inside unknown peeling case.
11273         Call vect_get_known_peeling_cost for known amount of peeling.
11274         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
11275         reference to the print message of forced alignment.
11276         (vect_verify_datarefs_alignment): Update call to
11277         vect_supportable_dr_alignment.
11278         (vect_get_data_access_cost): New function.
11279         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
11280         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
11281         vect_peeling_hash_choose_best_peeling): Likewise.
11282         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
11283         to store all the accesses in the loop and find best possible access to
11284         align using peeling for known alignment case. For unknown alignment
11285         check if stores are preferred or if peeling is worthy.
11286         (vect_find_same_alignment_drs): Analyze pairs of loads too.
11287         (vect_supportable_dr_alignment): Add new argument and check aligned
11288         accesses according to it.
11289         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
11290         (cost_for_stmt): Call vect_get_stmt_cost.
11291         (vect_model_simple_cost): Likewise.
11292         (vect_model_store_cost): Call vect_get_stmt_cost. Call
11293         vect_get_store_cost to calculate the cost of the statement.
11294         (vect_get_store_cost): New function.
11295         (vect_model_load_cost): Call vect_get_stmt_cost. Call
11296         vect_get_load_cost to calculate the cost of the statement.
11297         (vect_get_load_cost): New function.
11298         (vectorizable_store): Update call to vect_supportable_dr_alignment.
11299         (vectorizable_load): Likewise.
11300         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
11301         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
11302         arguments. Handle unaligned store.
11303         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
11304         (rs6000_builtin_support_vector_misalignment): Return true for word and
11305         double word alignments for VSX.
11306         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
11307         vect_supportable_dr_alignment and builtin_vectorization_cost.
11308
11309 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11310
11311         PR target/44597
11312         * config/pa/predicates.md (prefetch_cc_operand): Remove.
11313         (prefetch_nocc_operand): Likewise.
11314         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
11315         (prefetch_20): New insn.
11316         (prefetch_cc): Remove.
11317         (prefetch_nocc): Likewise.
11318
11319 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11320
11321         * expr.c (vector_mode_valid_p): Move to c-common.c.
11322         * expr.h (vector_mode_valid_p): Do not declare here.
11323         * system.h: Poison GCC_EXPR_H in front-ends.
11324         * Makefile.in: Update dependencies.
11325
11326 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11327
11328         PR target/44705
11329         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
11330
11331 2010-07-03  Jan Hubicka  <jh@suse.cz>
11332
11333         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
11334         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
11335         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
11336         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
11337         Likewise.
11338
11339         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
11340         Update timevars.V
11341         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
11342         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
11343         TV_IPA_LTO_DECL_OUT): New.
11344         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
11345
11346 2010-07-03  Jan Hubicka  <jh@suse.cz>
11347
11348         * ipa-inline.c (update_edge_key): Break out from ...
11349         update_callers_keys): ... here;
11350         (update_callee_keys): Update only the edges from caller to callee.
11351         (update_all_calle_keys): Do what update_calle_keys did.
11352         (decide_inlining_of_small_functions): Avoid recomputing of all
11353         callees when badness increase.
11354
11355 2010-07-03  Jie Zhang  <jie@codesourcery.com>
11356
11357         * config/arm/arm.c (arm_attr_length_move_neon): New.
11358         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
11359         * config/arm/neon.md (define_mode_attr V_slen): Remove.
11360         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
11361         to compute length attribute.
11362
11363 2010-07-03  Jie Zhang  <jie@codesourcery.com>
11364
11365         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
11366         as predicate for operand 1 and remove its constraint.
11367         * config/arm/predicates.md (vfp_register_operand): New.
11368         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
11369         (*push_fp_multi): Likewise.
11370
11371 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
11372
11373         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
11374
11375 2010-07-03  Jan Hubicka  <jh@suse.cz>
11376
11377         * config/i386/i386.c (override_options): Revert accidental commit.
11378
11379 2010-07-02  Le-Chun Wu  <lcwu@google.com>
11380
11381         PR c++/44128
11382         * doc/invoke.texi: Update documentation of -Wshadow.
11383
11384 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
11385             Julian Brown  <julian@codesourcery.com>
11386             Sandra Loosemore  <sandra@codesourcery.com>
11387
11388         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
11389         comparisons.  Adjust to take both operands.
11390         (arm_select_cc_mode): Handle DImode comparisons.
11391         (arm_gen_compare_reg): Generate a scratch register for DImode
11392         comparisons which require one.  Use xor for Thumb equality checks.
11393         (arm_const_double_by_immediates): New.
11394         (arm_print_operand): Allow 'Q' and 'R' for constants.
11395         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
11396         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
11397         arm_canonicalize_comparison.
11398         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
11399         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
11400         prototype.
11401         (arm_const_double_by_immediates): Declare.
11402         * config/arm/constraints.md (Di): New constraint.
11403         * config/arm/predicates.md (arm_immediate_di_operand)
11404         (arm_di_operand, cmpdi_operand): New.
11405         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
11406         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
11407         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
11408         (cstoredi4): Handle non-Cirrus also.
11409
11410 2010-07-02  Julian Brown  <julian@codesourcery.com>
11411             Sandra Loosemore  <sandra@codesourcery.com>
11412
11413         PR target/43703
11414         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
11415         (smax<mode>3): Disable for NEON float modes when
11416         flag_unsafe_math_optimizations is false.
11417         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
11418         (*mul<mode>3_neon)
11419         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
11420         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
11421         for NEON float modes when flag_unsafe_math_optimizations is false.
11422         (quad_halves_<code>v4sf): Only enable if
11423         flag_unsafe_math_optimizations is true.
11424         * doc/invoke.texi (ARM Options): Add note about floating point
11425         vectorization requiring -funsafe-math-optimizations.
11426
11427 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11428             Julian Brown  <julian@codesourcery.com>
11429
11430         * config/arm/neon.md (UNSPEC_VABA): Delete.
11431         (UNSPEC_VABAL): Delete.
11432         (UNSPEC_VABS): Delete.
11433         (UNSPEC_VMUL_N): Delete.
11434         (adddi3_neon): New.
11435         (subdi3_neon): New.
11436         (mul<mode>3add<mode>_neon): Make the pattern named.
11437         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
11438         (neon_vadd<mode>): Replace with define_expand, and move the remaining
11439         unspec parts...
11440         (neon_vadd<mode>_unspec): ...to this.
11441         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
11442         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
11443         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
11444         (neon_vaba<mode>): Rewrite in terms of vabd.
11445         (neon_vabal<mode>): Rewrite in terms of vabdl.
11446         (neon_vabs<mode>): Rewrite without unspec.
11447         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
11448         (*arm_subdi3): Likewise.
11449         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
11450         No_op attribute to disable assembly output checks.
11451         * config/arm/arm_neon.h: Regenerated.
11452         * doc/arm-neon-intrinsics.texi: Regenerated.
11453
11454 2010-07-02  Jan Hubicka  <jh@suse.cz>
11455
11456         * ipa-split.c (split_function): For aggregate values, set the return
11457         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
11458         *<retval> = fncall.part ().
11459         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
11460
11461 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11462
11463         * config/arm/neon.md (UNSPEC_VAND): Delete.
11464         (UNSPEC_VBIC): Delete.
11465         (UNSPEC_VCLZ): Delete.
11466         (UNSPEC_VCNT): Delete.
11467         (UNSPEC_VEOR): Delete.
11468         (UNSPEC_VORN): Delete.
11469         (UNSPEC_VORR): Delete.
11470         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
11471         core registers too.
11472         (anddi3_neon): Likewise.
11473         (orndi3_neon): Likewise.
11474         (bicdi3_neon): Likewise.
11475         (xordi3_neon): Likewise.
11476         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
11477         rid of unspec and handle unused operand.
11478         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
11479         * config/arm/predicates.md (imm_for_neon_logic_operand):
11480         Require TARGET_NEON.
11481         (imm_for_neon_inv_logic_operand): Likewise.
11482         * config/arm/arm.md (define_split for logical_binary_operator):
11483         Disable for NEON registers.
11484         (anddi3): Add new define_expand, and rename the insn.  Disable
11485         this insn for NEON, where anddi3_neon now applies.
11486         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
11487         (iordi3): As for anddi3.
11488         (xordi3): Likewise.
11489         * config/arm/neon.ml (Vand): Split DImode variants and mark them
11490         as No_op to disable testing for exact instruction match.
11491         (Vorr): Likewise.
11492         (Veor): Likewise.
11493         (Vbic): Likewise.
11494         (Vorn): Likewise.
11495         * config/arm/arm_neon.h: Regenerated.
11496         * doc/arm-neon-intrinsics.texi: Regenerated.
11497
11498 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11499
11500         * expr.h (emit_stack_probe): Declare.
11501         * explow.c (emit_stack_probe): Make global.
11502         (anti_adjust_stack_and_probe): Fix comments.
11503         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
11504         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11505         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11506         * config/sparc/sparc.c: Include except.h.
11507         (sparc_emit_probe_stack_range): New function.
11508         (output_probe_stack_range): Likewise.
11509         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
11510         built-in stack checking is enabled.
11511         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
11512         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
11513         (probe_stack_range): New insn.
11514
11515 2010-07-02  Richard Guenther  <rguenther@suse.de>
11516
11517         PR target/43958
11518         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
11519         for argument alignment.
11520
11521 2010-07-02  Jan Hubicka  <jh@suse.cz>
11522
11523         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
11524         walk backwards from entry_bb to check only those basic block of header
11525         that might lead to execution of split part.
11526         (consider_split) ... here.
11527         (find_return_bb): Allow assignment in return BB.
11528         (find_retval): New.
11529         (split_function): Fix name of cloned function; take care of updating
11530         return value in return_bb containing move.
11531
11532 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
11533
11534         PR target/44771
11535         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
11536         used variable insn.
11537
11538 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11539
11540         * implicit-zee.c (combine_reaching_defs): Fix long lines.
11541         (is_set_with_extension_DI): Delete.
11542         (struct zero_extend_info): New structure.
11543         (add_removable_zero_extend): New function.
11544         (find_removable_zero_extends): Use note_stores to find SETs.
11545         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
11546
11547 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
11548
11549         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
11550         is_miss_rate_acceptable. Pull total_positions computation
11551         out of the loops.  Early return if miss_positions exceeds
11552         the acceptable threshold.
11553         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
11554         is_miss_rate_acceptable after renaming of compute_miss_rate.
11555
11556 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
11557
11558         PR middle-end/44576
11559         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
11560         of 1000) for miss rate if the address diference is greater than or
11561         equal to the cache line size (the two reference will never hit the
11562         same cache line).
11563
11564 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
11565
11566         PR target/42835
11567         * config/arm/arm-modes.def (CC_NOTB): New mode.
11568         * config/arm/arm.c (get_arm_condition_code): Handle it.
11569         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
11570         * config/arm/arm.md (subsi3_compare0_c): New pattern.
11571         (compare_scc): Now a define_and_split.  Add a number of extra
11572         splitters before it.
11573
11574         PR target/42172
11575         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
11576         and ZERO_EXTEND.
11577         (arm_rtx_costs_1): Likewise.
11578         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
11579         * config/arm/arm.md (is_arch6): New attribute.
11580         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
11581         extendqisi2): Tighten the code somewhat, avoiding invalid
11582         RTL to occur in the expander patterns.
11583         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
11584         (thumb1_zero_extendhisi2_v6): Delete.
11585         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
11586         (thumb1_extendhisi2_v6): Delete.
11587         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
11588         (thumb1_extendqisi2_v6): Delete.
11589         (zero_extendhisi2 for register input splitter): New.
11590         (zero_extendqisi2 for register input splitter): New.
11591         (thumb1_extendhisi2 for register input splitter): New.
11592         (extendhisi2 for register input splitter): New.
11593         (extendqisi2 for register input splitter): New.
11594         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
11595         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
11596         and add support for a register alternative requiring a split.
11597         (thumb1_zero_extendqisi2): Likewise.
11598         (arm_zero_extendqisi2): Likewise.
11599         (arm_extendhisi2): Likewise.
11600         (arm_extendqisi2): Likewise.
11601
11602 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11603
11604         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
11605         instead of an unspec.
11606         (neon_expand_vector_init): Likewise.
11607         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
11608         (UNSPEC_VDUP_LANE): Delete.
11609         (UNSPEC VDUP_N): Delete.
11610         (UNSPEC_VGET_HIGH): Delete.
11611         (UNSPEC_VGET_LANE): Delete.
11612         (UNSPEC_VGET_LOW): Delete.
11613         (UNSPEC_VMVN): Delete.
11614         (UNSPEC_VSET_LANE): Delete.
11615         (V_double_vector_mode): New.
11616         (vec_set<mode>_internal): Make code emitted match that for the
11617         corresponding intrinsics.
11618         (vec_setv2di_internal): Likewise.
11619         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
11620         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
11621         (neon_vset_lane<mode>): Combine double and quad patterns and
11622         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
11623         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
11624         (neon_vdup_n<mode>): Rewrite RTL without unspec.
11625         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
11626         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
11627         with neon_vdup_lanev2di, adjusting the pattern from the latter
11628         to be predicable for consistency.
11629         (neon_vdup_lane<mode>_internal): New.
11630         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
11631         to avoid using an unspec.
11632         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
11633         (neon_vdup_lanev2di): Turn into a define_expand.
11634         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
11635         (neon_vget_high<mode>): Replace with....
11636         (neon_vget_highv16qi): New pattern using canonical RTL.
11637         (neon_vget_highv8hi): Likewise.
11638         (neon_vget_highv4si): Likewise.
11639         (neon_vget_highv4sf): Likewise.
11640         (neon_vget_highv2di): Likewise.
11641         (neon_vget_low<mode>): Replace with....
11642         (neon_vget_lowv16qi): New pattern using canonical RTL.
11643         (neon_vget_lowv8hi): Likewise.
11644         (neon_vget_lowv4si): Likewise.
11645         (neon_vget_lowv4sf): Likewise.
11646         (neon_vget_lowv2di): Likewise.
11647
11648         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
11649         test for this emitting vmov.
11650         (Vset_lane): Likewise.
11651         (Vdup_n): Likewise.
11652         (Vmov_n): Likewise.
11653
11654         * doc/arm-neon-intrinsics.texi: Regenerated.
11655
11656 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11657
11658         * config/arm/neon.md (vec_extractv2di): Correct error in register
11659         numbering to reconcile with neon_vget_lanev2di.
11660
11661 2010-07-02  Richard Guenther  <rguenther@suse.de>
11662
11663         * tree-ssa-structalias.c (pt_solution_set_var): New function.
11664         * tree-ssa-alias.h (pt_solution_set_var): Declare.
11665         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
11666         points-to information.
11667
11668 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
11669
11670         * config/s390/s390.c (override_options): Adopt prefetching
11671         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
11672
11673 2010-07-02  Jan Hubicka  <jh@suse.cz>
11674
11675         * df-problems.c (df_kill_notes): Do not collect dead  notes.
11676         (df_set_note): Just call add_reg_note.
11677         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
11678         df_create_unused_note): Do not deal with lists of old notes.
11679         (df_note_bb_compute): Likewise.
11680
11681 2010-07-02  Richard Guenther  <rguenther@suse.de>
11682
11683         * tree-ssa-structalias.c (find_func_aliases): Handle
11684         pointer alignment via BIT_AND_EXPR.
11685         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
11686
11687 2010-07-02  Richard Guenther  <rguenther@suse.de>
11688
11689         * tree-data-ref.c (initialize_data_dependence_relation): Handle
11690         mismatching number of dimensions properly.
11691
11692 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11693
11694         PR target/44707
11695         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
11696         (lo_sum (high ...) ...) patterns generated by earlier passes.
11697
11698 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11699
11700         * doc/install.texi (Prerequisites): Document Perl requirement on
11701         Solaris 2.
11702         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
11703
11704 2010-07-02  Richard Guenther  <rguenther@suse.de>
11705
11706         PR middle-end/44777
11707         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
11708
11709 2010-07-02  Jan Hubicka  <jh@suse.cz>
11710
11711         PR middle-end/44706
11712         * predict.c (predict_paths_for_bb): Handle case when control dependence
11713         BB has only abnormal edges.
11714
11715 2010-07-02  Richard Guenther  <rguenther@suse.de>
11716
11717         PR tree-optimization/44748
11718         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
11719         the embedded conversion in MEM_REFs.
11720
11721 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
11722
11723         * reload.c: Include toplev.h.
11724         * recog.c:  Likewise.
11725         * Makefile.in: Adjust dependencies.
11726
11727 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
11728
11729         PR debug/44694
11730         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
11731         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
11732
11733 2010-07-01  Richard Guenther  <rguenther@suse.de>
11734
11735         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
11736         types for offsets.
11737
11738 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11739
11740         PR target/44732
11741         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
11742         Fix argument types.
11743
11744 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
11745
11746         PR target/44727
11747         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
11748         Make sure operand 0 dies.
11749
11750 2010-07-01  Richard Guenther  <rguenther@suse.de>
11751
11752         PR middle-end/42834
11753         PR middle-end/44468
11754         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
11755         * doc/generic.texi (References to storage): Document MEM_REF.
11756         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
11757         (print_call_name): Likewise.
11758         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
11759         (build_simple_mem_ref_loc): New function.
11760         (mem_ref_offset): Likewise.
11761         * tree.h (build_simple_mem_ref_loc): Declare.
11762         (build_simple_mem_ref): Define.
11763         (mem_ref_offset): Declare.
11764         * fold-const.c: Include tree-flow.h.
11765         (operand_equal_p): Handle MEM_REF.
11766         (build_fold_addr_expr_with_type_loc): Likewise.
11767         (fold_comparison): Likewise.
11768         (fold_unary_loc): Fold
11769         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
11770         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
11771         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
11772         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
11773         (ptr_deref_may_alias_ref_p_1): Likewise.
11774         (ao_ref_base_alias_set): Properly differentiate base object for
11775         offset and TBAA.
11776         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
11777         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
11778         (indirect_refs_may_alias_p): Likewise.
11779         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
11780         chasing code.
11781         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
11782         (call_may_clobber_ref_p_1): Likewise.
11783         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
11784         * expr.c (expand_assignment): Handle MEM_REF.
11785         (store_expr): Handle MEM_REFs from STRING_CSTs.
11786         (store_field): If expanding a MEM_REF of a non-addressable
11787         decl use bitfield operations.
11788         (get_inner_reference): Handle MEM_REF.
11789         (expand_expr_addr_expr_1): Likewise.
11790         (expand_expr_real_1): Likewise.
11791         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
11792         * alias.c (ao_ref_from_mem): Handle MEM_REF.
11793         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
11794         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
11795         (dr_analyze_indices): Likewise.
11796         (dr_analyze_alias): Likewise.
11797         (object_address_invariant_in_loop_p): Likewise.
11798         * gimplify.c (mark_addressable): Handle MEM_REF.
11799         (gimplify_cond_expr): Build MEM_REFs.
11800         (gimplify_modify_expr_to_memcpy): Likewise.
11801         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
11802         (gimple_fold_indirect_ref): Adjust.
11803         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
11804         * tree.def (MEM_REF): New tree code.
11805         * tree-dfa.c: Include toplev.h.
11806         (get_ref_base_and_extent): Handle MEM_REF.
11807         (get_addr_base_and_unit_offset): New function.
11808         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
11809         * gimple-fold.c (may_propagate_address_into_dereference): Handle
11810         MEM_REF.
11811         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
11812         accesses if the array has just one dimension.  Remove always true
11813         parameter.  Do not require type compatibility here.
11814         (maybe_fold_offset_to_component_ref): Remove.
11815         (maybe_fold_stmt_indirect): Remove.
11816         (maybe_fold_reference): Remove INDIRECT_REF handling.
11817         Fold back to non-MEM_REF.
11818         (maybe_fold_offset_to_address): Simplify.  Deal with type
11819         mismatches here.
11820         (maybe_fold_reference): Likewise.
11821         (maybe_fold_stmt_addition): Likewise.  Also handle
11822         &ARRAY + I in addition to &ARRAY[0] + I.
11823         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
11824         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
11825         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
11826         * tree-ssa.c (useless_type_conversion_p): Make most pointer
11827         conversions useless.
11828         (warn_uninitialized_var): Handle MEM_REF.
11829         (maybe_rewrite_mem_ref_base): New function.
11830         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
11831         to SSA form.
11832         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
11833         INDIRECT_REF handling.
11834         (copy_tree_body_r): Handle MEM_REF.
11835         * gimple.c (is_gimple_addressable): Adjust.
11836         (is_gimple_address): Likewise.
11837         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
11838         invariant base are invariant.
11839         (is_gimple_min_lval): Adjust.
11840         (is_gimple_mem_ref_addr): New function.
11841         (get_base_address): Handle MEM_REF.
11842         (count_ptr_derefs): Likewise.
11843         (get_base_loadstore): Likewise.
11844         * gimple.h (is_gimple_mem_ref_addr): Declare.
11845         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
11846         * tree-cfg.c (verify_address): New function, split out from ...
11847         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
11848         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
11849         INDIRECT_REFs.
11850         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
11851         INDIRECT_REF.  Allow conversions.
11852         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
11853         a register does not change its size.
11854         (verify_types_in_gimple_reference): Verify MEM_REF.
11855         (verify_gimple_assign_single): Disallow INDIRECT_REF.
11856         Handle MEM_REF.
11857         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
11858         New.
11859         (mark_address_taken): Handle MEM_REF.
11860         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
11861         (get_asm_expr_operands): Pass opf_not_non_addressable.
11862         (get_expr_operands): Handle opf_[not_]non_addressable.
11863         Handle MEM_REF.  Remove INDIRECT_REF handling.
11864         * tree-vrp.c (check_array_ref): Handle MEM_REF.
11865         (search_for_addr_array): Likewise.
11866         (check_array_bounds): Likewise.
11867         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
11868         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
11869         (ref_always_accessed_p): Likewise.
11870         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
11871         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
11872         Handle MEM_REF.
11873         * cgraphbuild.c (mark_load): Properly check for NULL result
11874         from get_base_address.
11875         (mark_store): Likewise.
11876         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
11877         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
11878         handling for MEM_REF.
11879         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
11880         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
11881         * builtins.c (stabilize_va_list_loc): Use the function ABI
11882         valist type if we couldn't canonicalize the argument type.
11883         Always dereference with the canonical va-list type.
11884         (maybe_emit_free_warning): Handle MEM_REF.
11885         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
11886         memmove to memcpy.
11887         * builtins.c (fold_builtin_memory_op): Use ref-all types
11888         for all memcpy foldings.
11889         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
11890         (build_outer_var_ref): Likewise.
11891         (scan_omp_1_op): Likewise.
11892         (lower_rec_input_clauses): Likewise.
11893         (lower_lastprivate_clauses): Likewise.
11894         (lower_reduction_clauses): Likewise.
11895         (lower_copyprivate_clauses): Likewise.
11896         (expand_omp_atomic_pipeline): Likewise.
11897         (expand_omp_atomic_mutex): Likewise.
11898         (create_task_copyfn): Likewise.
11899         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
11900         Remove old union trick.  Initialize constant offsets.
11901         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
11902         INDIRECT_REF.  Init base_alias_set properly.
11903         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
11904         (vn_reference_fold_indirect): Adjust for MEM_REFs.
11905         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
11906         for ARRAY_REFs.
11907         (may_insert): Remove.
11908         (visit_reference_op_load): Do not test may_insert.
11909         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
11910         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
11911         a field to store the constant offset this op applies.
11912         (run_scc_vn): Adjust prototype.
11913         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
11914         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
11915         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
11916         bother about volatile qualifiers on pointers.
11917         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
11918         * tree-ssa-loop-ivopts.c
11919         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
11920         (strip_offset_1): Likewise.
11921         (find_interesting_uses_address): Replace INDIRECT_REF handling with
11922         MEM_REF handling.
11923         (get_computation_cost_at): Likewise.
11924         * ipa-pure-const.c (check_op): Handle MEM_REF.
11925         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
11926         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
11927         and constants.
11928         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
11929         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
11930         (eliminate_local_variables_1): Likewise.
11931         (create_call_for_reduction_1): Likewise.
11932         (create_loads_for_reductions): Likewise.
11933         (create_loads_and_stores_for_name): Likewise.
11934         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
11935         (ssa_accessed_in_tree): Handle MEM_REF.
11936         (ssa_accessed_in_assign_rhs): Likewise.
11937         (update_type_size): Likewise.
11938         (analyze_accesses_for_call_stmt): Likewise.
11939         (analyze_accesses_for_assign_stmt): Likewise.
11940         (transform_access_sites): Likewise.
11941         (transform_allocation_sites): Likewise.
11942         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
11943         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
11944         not handle INDIRECT_REF.
11945         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
11946         (cond_store_replacement): Likewise.
11947         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
11948         MEM_REF, no not handle INDIRECT_REFs.
11949         (insert_into_preds_of_block): Properly initialize avail.
11950         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
11951         for ARRAY_REFs.  Properly handle reference lookups that
11952         require a bit re-interpretation.
11953         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
11954         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
11955         (build_ref_for_offset_1): Remove.
11956         (build_ref_for_offset): Build MEM_REFs.
11957         (gate_intra_sra): Disable for now.
11958         (sra_ipa_modify_expr): Handle MEM_REF.
11959         (ipa_early_sra_gate): Disable for now.
11960         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
11961         MEM_REF handling.
11962         (disqualify_base_of_expr): Likewise.
11963         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
11964         MEM_REF handling.
11965         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
11966         Use mem_ref_offset.  Remove bogus folding.
11967         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
11968         (make_fancy_name_1): Add support for MEM_REF.
11969         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
11970         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
11971         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
11972         (compute_complex_ancestor_jump_func): Likewise.
11973         (ipa_analyze_virtual_call_uses): Likewise.
11974         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
11975         INDIRECT_REF folding with more generalized MEM_REF folding.
11976         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
11977         (forward_propagate_addr_into_variable_array_index): Also handle
11978         &ARRAY + I in addition to &ARRAY[0] + I.
11979         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
11980         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
11981         creates assignments with overlap.
11982         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
11983         (get_frame_field): Likewise.
11984         (get_nonlocal_debug_decl): Likewise.
11985         (convert_nonlocal_reference_op): Likewise.
11986         (struct nesting_info): Add mem_refs pointer-set.
11987         (create_nesting_tree): Allocate it.
11988         (convert_local_reference_op): Insert to be folded mem-refs.
11989         (fold_mem_refs): New function.
11990         (finalize_nesting_tree_1): Perform defered folding of mem-refs
11991         (free_nesting_tree): Free the pointer-set.
11992         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
11993         (vectorizable_load): Likewise.
11994         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
11995         (propagate_with_phi): Likewise.
11996         * tree-object-size.c (addr_object_size): Handle MEM_REFs
11997         instead of INDIRECT_REFs.
11998         (compute_object_offset): Handle MEM_REF.
11999         (plus_stmt_object_size): Handle MEM_REF.
12000         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
12001         for &MEM_REF.
12002         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
12003         (symbol_marked_for_renaming): Likewise.
12004         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
12005         (fold-const.o): Add $(TREE_FLOW_H).
12006         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
12007         (find_func_clobbers): Likewise.
12008         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
12009         (decompose_access): Likewise.
12010         (replace_field_acc): Likewise.
12011         (replace_field_access_stmt): Likewise.
12012         (insert_new_var_in_stmt): Likewise.
12013         (get_stmt_accesses): Likewise.
12014         (reorg_structs_drive): Disable.
12015         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
12016         (ix86_canonical_va_list_type): Likewise.
12017
12018 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
12019
12020         PR other/44566
12021         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
12022         * target.def (struct gcc_target): Replace enum reg_class with
12023         reg_class_t in hook argument / return types.
12024         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
12025         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
12026         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
12027         * targhooks.h (default_branch_target_register_class): Likewise.
12028         (default_ira_cover_classes, default_secondary_reload): Likewise.
12029         (default_memory_move_cost, default_register_move_cost): Likewise.
12030         * targhooks.c (default_branch_target_register_class): Likewise.
12031         (default_ira_cover_classes, default_secondary_reload): Likewise.
12032         (default_memory_move_cost, default_register_move_cost): Likewise.
12033         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
12034         * bt-load.c (branch_target_load_optimize): Likewise.
12035         * ira.c (setup_cover_and_important_classes): Likewise.
12036         * ira-costs.c (copy_cost): Likewise.
12037         * reload1.c (emit_input_reload_insns): Likewise.
12038         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
12039         * config/frv/frv.c (frv_secondary_reload): Likewise.
12040         * config/s390/s390.c (s390_secondary_reload): Likewise.
12041         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
12042         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
12043         (ix86_register_move_cost): Likewise.
12044         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
12045         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
12046         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
12047         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
12048         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
12049         (rs6000_ira_cover_classes): Likewise.
12050         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
12051         * config/picochip/picochip-protos.h (picochip_secondary_reload):
12052         Likewise.
12053         * config/pa/pa.c (pa_secondary_reload): Likewise.
12054         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
12055         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
12056         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
12057         * doc/tm.texi: Regenerate.
12058
12059 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
12060
12061         PR bootstrrap/44726
12062         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
12063         use.
12064         (build_alias_set_optimal_p): Likewise.
12065         (build_base_obj_set_for_drs): Likewise.
12066
12067 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
12068
12069         * target.def: Remove comment about licensing problems of function
12070         declarations.
12071
12072         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
12073         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
12074         * doc/tm.texi: Regenerate.
12075
12076         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
12077         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
12078
12079         * target.def (enum_va_list_p): Use DEFHOOK.
12080         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
12081         Rename ptype to ptree.
12082         * doc/tm.texi: Regenerate.
12083
12084         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
12085         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
12086         * doc/tm.texi: Regenerate.
12087
12088         * target.def (memory_move_cost): Use DEFHOOK.
12089         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
12090         Rename regclass AKA class to rclass.
12091         * doc/tm.texi: Regenerate.
12092
12093         * target.def (pragma_parse): Use DEFHOOK.
12094         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
12095         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
12096         * doc/tm.texi: Regenerate.
12097
12098         * target.def (pass_by_reference): Use DEFHOOK.
12099         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
12100         * doc/tm.texi: Regenerate.
12101
12102         * target.def (resolve_overloaded_builtin): Rename params to arglist.
12103         Use DEFHOOK.
12104         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
12105         * doc/tm.texi: Regenerate.
12106
12107         * target.def (return_pops_args): Use DEFHOOK.
12108         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
12109         Rename stack-size to size.
12110         * doc/tm.texi: Regenerate.
12111
12112         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
12113         last-sched_cycle to last_clock, cur_cycle to clock.
12114         * doc/tm.texi.in: Use @hook.
12115         * doc/tm.texi: Regenerate.
12116
12117         * target.def (print_operand, print_operand_address): Update comment.
12118         (print_operand_punct_valid_p): Likewise.
12119
12120 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12121
12122         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
12123         to rtl.h.
12124         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
12125         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
12126         * rtl-error.h: New.
12127         * regrename.c: Do not include toplev.h. Include rtl-error.h.
12128         * rtl-error.c: Likewise.
12129         * reload.c: Likewise.
12130         * recog.c:  Likewise.
12131         * sel-sched.c: Likewise.
12132         * function.c: Likewise.
12133         * reg-stack.c: Likewise.
12134         * cfgrtl.c: Likewise.
12135         * reload1.c: Likewise.
12136         * final.c: Include rtl-error.
12137         * Makefile.in: Adjust dependencies.
12138
12139 2010-06-30  Jan Hubicka  <jh@suse.cz>
12140
12141         PR middle-end/PR44706
12142         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
12143         to return the value.
12144
12145 2010-06-30  Michael Matz  <matz@suse.de>
12146
12147         PR bootstrap/44699
12148         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
12149         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
12150         a gimple reg, attach the original VDEF to the last store in the
12151         sequence.
12152
12153 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
12154
12155         PR other/44034
12156         * config/darwin.c (darwin_override_options): Use renamed
12157         targetm.asm_out.emit_unwind_label.
12158
12159 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
12160
12161         PR tree-optimization/39799
12162         * tree-inline.c (remap_ssa_name): Initialize variable only if
12163         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12164
12165 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
12166
12167         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
12168
12169 2010-06-30  Richard Guenther  <rguenther@suse.de>
12170
12171         PR target/44722
12172         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
12173         against oscillation with reverse peephole2.
12174
12175 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
12176
12177         PR target/44721
12178         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12179         Fix last commit.
12180
12181 2010-06-30  Nick Clifton  <nickc@redhat.com>
12182
12183         * config/rx/rx-modes.def: New file.
12184         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
12185         (CC_REGNUM): Define.
12186         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
12187         register.
12188         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
12189         (SELECT_CC_MODE): Define.
12190         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
12191         (reg:CC CC_REG) instead of (cc0).
12192         (attr "cc"): Delete.
12193         (cbranchsi4): Do not split compare and branch here. Instead move
12194         it to...
12195         (cbranchsi4_<code>): ... here.  New patterns.
12196         (cmpsi): Call rx-compare_redundant to find out if it is necessary
12197         to emit the compare instruction.
12198         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
12199         cc_status flags.
12200         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
12201         FIRST_PSEUDO_REGNUM.
12202         (rx_expand_prologue, rx_expand_epilogue): Likewise.
12203         (rx_notice_update_cc): Delete.
12204         (rx_cc_modes_compatible): New function.
12205         (flags_needed_for_conditional): New function.
12206         (flags_from_mode): New function.
12207         (rx_compare_redundant): New function - scans backwards through
12208         insn list to find out if condition flags are already set correctly.
12209         (TARGET_CC_MODES_COMPATIBLE): Define.
12210         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
12211
12212         * config/rx/rx.h (BRANCH_COST): Define.
12213         (REGISTER_MOVE_COST): Define.
12214         * config/rx/predicates (rx_source_operand): Allow all constant types.
12215         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
12216         (tstsi4): New pattern.
12217         * config/rx/rx.c (rx_memory_move_cost): Define.
12218         (TARGET_MEMORY_MOVE_COST): Define.
12219
12220 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12221
12222         * tree.h (block_may_fallthru): Declare here.
12223         * tree-flow.h (block_may_fallthru): Do not declare here.
12224         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
12225         bitmap.h
12226         * Makefile.in (c-typeck.o): Update dependencies.
12227
12228 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
12229
12230         PR debug/44694
12231         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
12232         * cselib.c (cfa_base_preserved_regno): New static variable.
12233         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
12234         of REGNO (cfa_base_preserved_val->locs->loc).
12235         (cselib_preserve_cfa_base_value): Add regno argument, set
12236         cfa_base_preserved_regno to it.
12237         (cselib_invalidate_regno): Allow removal of registers other than
12238         cfa_base_preserved_regno from cfa_base_preserved_val.
12239         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
12240         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
12241         of MEM addresses, if not on LHS.
12242         (reverse_op): Don't add reverse ops for cfa_base_rtx.
12243         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
12244
12245 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
12246
12247         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
12248         static variables.
12249         (peep2_buf_position): New static function.
12250         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
12251         peephole2_optimize): Use it.
12252         (peep2_attempt, peep2_update_life): New static functions, broken out
12253         of peephole2_optimize.
12254         (peep2_fill_buffer): New static function.
12255         (peephole2_optimize): Change the main loop to try to fill the buffer
12256         with the maximum number of insns before matching them against
12257         peepholes.  Use a forward scan.  Remove special case for targets with
12258         conditional execution.
12259         * genrecog.c (change_state): Delete dead code.
12260         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12261         Rewrite so as not to expect the second insn to have had a peephole
12262         applied yet.
12263
12264 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12265
12266         * genhooks.c (emit_findices): Cast field precision to int.
12267         (emit_documentation): Likewise.
12268
12269 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
12270
12271         PR tree-optimization/43801
12272         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
12273         if old_decl was DECL_ONE_ONLY.
12274
12275         PR debug/44668
12276         * dwarf2out.c (add_accessibility_attribute): New function.
12277         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
12278         instead of adding DW_AT_accessibility manually.
12279         (gen_enumeration_type_die, gen_struct_or_union_type_die,
12280         gen_typedef_die): Use it.
12281
12282 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12283
12284         * vmsdbgout.c (full_name): Just output the file name if not native.
12285
12286 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12287
12288         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
12289         (funcnam_table): New static table.
12290         (funcnum_table): New static table.
12291         (write_rtnbeg): Write value saved in funcnum_table.
12292         (write_rtnend): Write value saved in funcnum_table.
12293         (vmsdbgout_begin_function): Save current function info in
12294         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
12295         (vmsdbgout_finish): Iterate over funcnum_table.
12296
12297 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12298
12299         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
12300         (vmsdbgout_type_decl): Declare
12301         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
12302         (FUNC_EPILOGUE_LABEL): New macro
12303         (vmsdbgout_begin_epilogue): New function.
12304         (vmsdbgout_type_decl): New function.
12305
12306 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12307
12308         * vmsdbg.h: Update copyright.
12309
12310 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12311
12312         * vmsdbg.h (DST_K_TBG): New DST constant.
12313         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
12314         (write_modbeg): Cast module_language to avoid warning.
12315         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
12316
12317 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
12318
12319         PR other/44034
12320         * target.def, doc/tm.texi.in, genhooks.c: New files.
12321         * target.h: Instead of defining individual hook members,
12322         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
12323         include target.def.
12324         * target-def.h: Instead of defining individual hook initializers,
12325         include target-hooks-def.h.
12326         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
12327         targetm.live_on_entry -> targetm.extra_live_on_entry
12328         targetm.sched.md_finish ->targetm.sched.finish
12329         targetm.sched.md_init -> targetm.sched.init
12330         targetm.sched.md_init_global -> targetm.sched.init_global
12331         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
12332         targetm.asm_out.except_table_label ->
12333           targetm.asm_out.emit_except_table_label
12334         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
12335         targetm.target_help -> targetm.help
12336         targetm.vectorize.builtin_support_vector_misalignment ->
12337           targetm.vectorize.support_vector_misalignment
12338         targetm.file_start_app_off -> targetm.asm_file_start_app_off
12339         targetm.file_start_file_directive ->
12340          targetm.asm_file_start_file_directive
12341         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
12342         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
12343         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
12344         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
12345           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
12346         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
12347           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
12348         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
12349         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
12350         * Makefile.in (TARGET_H): Depend on target.def.
12351         (TARGET_DEF_H): Depend on target-hooks-def.h.
12352         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
12353         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
12354         * doc/tm.texi: Regenerate.
12355
12356         * Makefile.in (s-tm-texi): Remove stray tab / rule.
12357
12358         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
12359         (targetm.sched.init): Likewise.
12360
12361 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12362
12363         PR bootstrap/44713
12364         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
12365         (function_arg_advance_32): Const-ify TYPE parameter.
12366         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
12367         (ix86_function_arg_advance): Change type of NAMED to bool.
12368         (function_arg_32): Const-ify CUM and TYPE parameters.
12369         (function_arg_64): Likewise.  Change type of NAMED to bool.
12370         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
12371         to bool.
12372         (ix86_function_arg): Change type of NAMED to bool.
12373         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
12374         last argument as a bool.
12375
12376 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
12377
12378         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
12379         (OVERRIDE_OPTIONS): Add note of obsolescence.
12380         Replace references with references to TARGET_OPTION_OVERRIDE.
12381         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
12382          the macro).
12383         * targhooks.c (default_target_option_override): New function.
12384         * targhooks.h (default_target_option_override): Declare.
12385         * target.h (struct gcc_target): Add override member to
12386         target_option member.
12387         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
12388         targetm.target_option.override call.
12389         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
12390         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
12391
12392 2010-06-29  Jan Hubicka  <jh@suse.cz>
12393
12394         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
12395
12396 2010-06-29  Jan Hubicka  <jh@suse.cz>
12397
12398         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
12399         unreachable.
12400         (rebuild_frequencies): New function.
12401         * predict.h (rebuild_frequencies): Declare.
12402         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
12403         entry block and edge reaching new_entry.
12404         (tree_function_versioning): When doing partial cloning, rebuild
12405         frequencies when done.
12406         * passes.c (execute_function_todo): Use rebild_frequencies.
12407
12408 2010-06-29  Richard Guenther  <rguenther@suse.de>
12409
12410         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
12411         * tree-flow.h (enum noalias_state): Remove.
12412         (struct var_ann_d): Remove noalias_state member.
12413
12414 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
12415
12416         PR target/43902
12417         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
12418         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
12419         (maddhidi4): Likewise.
12420
12421         Revert parts of the change for PR25130.
12422         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
12423         MEM_ALIAS_SET.
12424
12425 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12426
12427         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
12428         targetm.calls.function_incoming_arg, and
12429         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
12430         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
12431         * target.h (struct gcc_target): Add function_arg_advance,
12432         function_arg, and function_incoming_arg fields.
12433         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
12434         (TARGET_FUNCTION_INCOMING_ARG): Define.
12435         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
12436         and TARGET_FUNCTION_INCOMING_ARG.
12437         * targhooks.h (default_function_arg_advance): Declare.
12438         (default_function_arg, default_function_incoming_arg): Declare.
12439         * targhooks.c (default_function_arg_advance): New function.
12440         (default_function_arg, default_function_incoming_arg): New function.
12441         * config/i386/i386.c (function_arg_advance): Rename to...
12442         (ix86_function_arg_advance): ...this.  Make static.
12443         (function_arg): Rename to...
12444         (ix86_function_arg): ...this.  Make static.
12445         (TARGET_FUNCTION_ARG_ADVANCE): Define.
12446         (TARGET_FUNCTION_ARG): Define.
12447         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
12448         (FUNCTION_ARG): Delete.
12449         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
12450         (function_arg): Delete prototype.
12451
12452 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12453
12454         * reginfo.c (init_reg_sets_1): Adjust comments.
12455         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
12456         * calls.c (prepare_call_address): Likewise.
12457         (emit_call_1): Use targetm.calls.return_pops_args.
12458         (expand_call): Likewise.
12459         * function.c (assign_parms): Likewise.
12460         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
12461         * target.h (struct gcc_target) [struct calls]: Add
12462         return_pops_args field.
12463         * targhooks.h (default_return_pops_args): Declare.
12464         * targhooks.c (default_return_pops_args): Define.
12465         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
12466         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
12467         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
12468         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
12469         documentation.
12470         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
12471         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
12472         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
12473         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
12474         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
12475         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
12476         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
12477         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
12478         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
12479         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
12480         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
12481         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
12482         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
12483         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
12484         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
12485         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
12486         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
12487         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
12488         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
12489         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
12490         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
12491         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
12492         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
12493         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
12494         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
12495         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
12496         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
12497         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
12498         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
12499         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
12500         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
12501         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
12502         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
12503         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
12504         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
12505         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
12506         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
12507         * config/i386/i386.c (ix86_return_pops_args): Make static.
12508         Constify arguments.
12509         (TARGET_RETURN_POPS_ARGS): Define.
12510         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
12511         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
12512         (TARGET_RETURN_POPS_ARGS): Define.
12513         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
12514         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
12515         (TARGET_RETURN_POPS_ARGS): Define.
12516
12517 2010-06-29  Richard Guenther  <rguenther@suse.de>
12518
12519         PR middle-end/44667
12520         * tree-inline.c (initialize_inlined_parameters): Make sure
12521         to remap the inlined parameter variable substitutions types.
12522
12523 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
12524
12525         PR rtl-optimization/44659
12526         * combine.c (make_compound_operation) <SUBREG>: Do not return the
12527         result of force_to_mode if it partially re-expanded the compound.
12528
12529 2010-06-28  Jan Hubicka  <jh@suse.cz>
12530
12531         PR middle-end/44671
12532         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
12533         RESULT_DECL.
12534
12535 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
12536
12537         * double-int.h (force_fit_type_double): Remove declaration.
12538         * double-int.c (force_fit_type_double): Move to tree.c.
12539         * tree.h (force_fit_type_double): Declare.
12540         * tree.h (force_fit_type_double): Moved from double-int.c. Use
12541         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
12542         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
12543         * convert.c (convert_to_pointer): Adjust call to
12544         force_fit_type_double.
12545         * tree-vrp.c (extract_range_from_assert,
12546         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
12547         * fold-const.c: Update comment.
12548         (int_const_binop, fold_convert_const_int_from_int,
12549         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
12550         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
12551         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
12552         round_up_loc): Adjust call to force_fit_type_double.
12553
12554 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
12555
12556         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
12557
12558 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12559
12560         * tree-sra.c (convert_callers): New parameter, change fndecls of
12561         recursive calls.
12562         (modify_function): Pass the old decl to convert_callers.
12563
12564 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12565
12566         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
12567         ipa_check_create_node_params and ipa_initialize_node_params with
12568         checking asserts they are not necessary.
12569
12570 2010-06-28  Jan Hubicka  <jh@suse.cz>
12571
12572         PR tree-optimization/44687
12573         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
12574
12575 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12576
12577         PR c++/44535
12578         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
12579         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
12580         instead of BINFO_BASE_BINFO.
12581
12582 2010-06-28  Michael Matz  <matz@suse.de>
12583
12584         PR middle-end/44592
12585         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
12586         proper VDEF chain for intermediate stores in the sequence.
12587
12588 2010-06-28  Jan Hubicka  <jh@suse.cz>
12589
12590         PR tree-optimization/44357
12591         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
12592         uninlinable functions.
12593
12594 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
12595
12596         * config.gcc (powerpc*-*-*): Handle titan.
12597         * config/rs6000/rs6000.c (titan_cost): New costs.
12598         (rs6000_override_options): Add "titan" to processor_target_table.
12599         Add Titan to branch alignment logic.
12600         Correctly set rs6000_cost for titan.
12601         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
12602         * config/rs6000/titan.md: New file.
12603         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
12604
12605 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
12606
12607         * tree-browser.c (TB_history_stack): Convert to a VEC.
12608         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
12609         (TB_history_prev): Likewise.
12610
12611 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
12612
12613         * vec.h (vec_heap_free): Add parentheses around free.
12614
12615 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
12616
12617         * system.h: Poison GCC_EXCEPT_H for front-end files.
12618
12619         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
12620         langhook.
12621         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
12622         Define to NULL by default.
12623         * except.h: Define GCC_EXCEPT_H.
12624         (doing_eh): Remove prototype.
12625         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
12626         (lang_protect_cleanup_actions): Remove.
12627         * except.c (lang_protect_cleanup_actions): Remove.
12628         (doing_eh): Remove.
12629         (gen_eh_region): Don't check doing_eh here.
12630         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
12631         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
12632         instead of lang_protect_cleanup_actions.
12633         * omp-low.c (maybe_catch_exception): Likewise.
12634         * Makefile.in: Update dependencies.
12635
12636 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
12637
12638         * cgraph.h (struct varpool_node): new used_from_object_file flag.
12639         (struct cgraph_local_info): new used_from_object_file flag.
12640         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
12641         (cgraph_clone_node): initialize used_from_object_file.
12642         (cgraph_create_virtual_clone): initialize used_from_object_file.
12643         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
12644         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
12645         when compiling with -fwhole-program.
12646         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
12647         internal resolver.
12648         * ipa.c (function_and_variable_visibility): Set externally_visible
12649         flag of varpool_node if used_from_object_file flag is set.
12650         (cgraph_externally_visible_p): check used_from_object_file flag.
12651         * doc/invoke.texi (-fwhole-program option): Change description of
12652         externally_visible attribute accordingly.
12653         * doc/extend.texi (externally_visible): Ditto.
12654
12655 2010-06-27  Jan Hubicka  <jh@suse.cz>
12656
12657         * params.def (max-inline-insns-auto): Default to 40.
12658         * doc/invoke.texi (max-inline-insns-auto): Document the change.
12659
12660 2010-06-27  Jan Hubicka  <jh@suse.cz>
12661
12662         PR middle-end/44671
12663         PR middle-end/44686
12664         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
12665         signature change.
12666         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
12667         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
12668
12669 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
12670
12671         * target.h (struct gcc_target): Add register_move_cost field.
12672         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
12673         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
12674         * targhooks.c (default_register_move_cost): New function.
12675         * targhooks.h (default_register_move_cost): Declare function.
12676         * defaults.h (REGISTER_MOVE_COST): Delete.
12677         * ira-int.h (ira_register_move_cost): Update comment.
12678         * ira.c (ira_register_move_cost): Update comment.
12679         * reload.h (register_move_cost): Declare.
12680         * reginfo.c (register_move_cost): New function.
12681         (move_cost): Update comment.
12682         (init_move_cost, memory_move_secondary_cost): Replace
12683         REGISTER_MOVE_COST with register_move_cost.
12684         * postreload.c (reload_cse_simplify_set): (Ditto.).
12685         * reload.c (find_valid_class, find_reloads): (Ditto.).
12686         * reload1.c (choose_reload_regs): (Ditto.).
12687         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
12688         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
12689         * doc/md.texi (can_create_pseudo_p): Update documentation.
12690
12691         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
12692         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
12693         * config/i386/i386.h (ix86_memory_move_cost): Make static.
12694         (TARGET_MEMORY_MOVE_COST): Define.
12695
12696         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
12697         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
12698         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
12699         (TARGET_MEMORY_MOVE_COST): Define.
12700
12701 2010-06-27  Richard Guenther  <rguenther@suse.de>
12702
12703         PR tree-optimization/44683
12704         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
12705         false edge from the inverted condition.
12706
12707 2010-06-27  Richard Guenther  <rguenther@suse.de>
12708
12709         PR middle-end/44684
12710         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
12711         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
12712         for register LHS.  Or non-store assignments.
12713
12714 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
12715
12716         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
12717         (sparc_emit_set_const64): Likewise.  Remove disabled code.
12718         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
12719         (sparc_emit_set_const64): Likewise.
12720
12721 2010-06-26  Catherine Moore  <clm@codesourcery.com>
12722
12723         * config/mips/mips.md (alu_type): New attribute.
12724         (type): Infer type from alu_type.
12725         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
12726         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
12727         *subsi3_extended, negsi2, negdi2, *low<mode>,
12728         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
12729         xor<mode>3, *nor<mode>3,
12730         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
12731         *zero_extendhi_truncqi):  Set alu_type instead of type.
12732
12733 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
12734
12735         * config/alpha/alpha.c (alpha_need_linkage): Adjust
12736         splay_tree_new_ggc call.
12737         (alpha_use_linkage): Likewise.
12738
12739 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
12740
12741         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
12742         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
12743         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
12744         (static_specs): Remove switches_need_spaces.
12745         (process_command, do_self_spec): Hardcode handling "-o" instead of
12746         checking switches_need_spaces.
12747         * system.h (SWITCHES_NEED_SPACES): Poison.
12748
12749 2010-06-26  Richard Guenther  <rguenther@suse.de>
12750
12751         PR tree-optimization/44393
12752         * tree-loop-distribution.c (generate_loops_for_partition): Fix
12753         stmt removal and VOP renaming.
12754         (generate_memset_zero): Remove redundant stmt updating.
12755         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
12756         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
12757
12758 2010-06-26  Jan Hubicka  <jh@suse.cz>
12759
12760         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
12761         edges comming from header are equivalent.
12762         (visit_bb): Handle PHIs correctly.
12763         * tree-inline.c (copy_phis_for_bb): Be able to copy
12764         PHI from entry edge.
12765         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
12766
12767 2010-06-26  Richard Guenther  <rguenther@suse.de>
12768
12769         PR middle-end/44674
12770         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
12771         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
12772
12773 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
12774
12775         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
12776         add_infile, alloc_switch): New.
12777         (process_command): Remove variable lang_n_infiles.  Process
12778         options in a single pass.  Use new functions for allocating
12779         infiles and switches arrays.  Properly skip operands of
12780         -Xpreprocessor and -Xassembler.
12781
12782 2010-06-26  Jan Hubicka  <jh@suse.cz>
12783
12784         PR middle-end/44671
12785         * cgraphunit.c (cgraph_function_versioning): Remove wrong
12786         cgraph_make_decl_local call; fix typo copying RTL data.
12787
12788 2010-06-25  DJ Delorie  <dj@redhat.com>
12789
12790         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
12791         (m32c_output_aligned_common): Likewise.
12792         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
12793         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
12794         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
12795         (m32c_register_pragmas): Register it.
12796         * config/m32c/m32c.c (m32c_get_pragma_address): New.
12797         (m32c_insert_attributes): Set #pragma address decls volatile.
12798         (pragma_entry_eq): New.
12799         (pragma_entry_hash): New.
12800         (m32c_note_pragma_address): New.
12801         (m32c_get_pragma_address): New.
12802         (m32c_output_aligned_common): New.
12803         * doc/extend.texi: Document the new pragma.
12804
12805         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
12806         also.
12807         * config/m32c/predicates.md (m32c_any_operand): Check the code
12808         instead of memory_operand so as to allow matching volatile MEMs.
12809         (m32c_nonimmediate_operand): Likewise.
12810         (mra_operand): Allow volatiles.
12811
12812 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
12813
12814         PR debug/44610
12815         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
12816         address if the offset is unknown.
12817
12818 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
12819
12820         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
12821         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
12822         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
12823         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
12824         to ia64_start_function. Invoke it.
12825         * config/ia64/ia64.c (ia64_start_function): Call new function
12826         dwarf2out_vms_debug_main_pointer.
12827
12828 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12829
12830         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
12831         statements computing the true predicate.
12832
12833 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12834
12835         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
12836         to boolean_true_node.
12837         (reset_bb_predicate): New.
12838         (predicate_bbs): Call reset_bb_predicate.
12839
12840 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12841
12842         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
12843         (tree_if_conversion): Returns true when something has been changed.
12844         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
12845         changed something.
12846
12847 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12848
12849         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
12850         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
12851         * tree-if-conv.c: Include dbgcnt.h.
12852         (tree_if_conversion): Use if_conversion_tree to count the number of
12853         if-convertible loops.
12854
12855 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
12856
12857         * common.opt (fprefetch-loop-arrays): Re-define
12858         -fprefetch-loop-arrays as a tri-state option with the initial
12859         value of -1.
12860         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
12861         pass only when flag_prefetch_loop_arrays > 0.
12862         * toplev.c (process_options): Note that, with tri-states,
12863         flag_prefetch_loop_arrays>0 means prefetching is enabled.
12864         * config/i386/i386.c (override_options): Enable prefetching at -O3
12865         for a set of CPUs that sw prefetching is helpful.
12866         (software_prefetching_beneficial_p): New.  Return TRUE if software
12867         prefetching is beneficial for the given CPU.
12868
12869 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
12870
12871         PR rtl-optimization/44326
12872         * implicit-zee.c (find_removable_zero_extends): Replace
12873         INSN_P with NONDEBUG_INSN_P.
12874
12875 2010-06-25  Martin Jambor  <mjambor@suse.cz>
12876
12877         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
12878         (struct ipa_node_params): Removed the modification_analysis_done flag.
12879         (ipa_is_param_modified): Removed.
12880         (ipa_analyze_node): Declare.
12881         (ipa_compute_jump_functions): Remove declaration.
12882         (ipa_count_arguments): Likewise.
12883         (ipa_detect_param_modifications): Likewise.
12884         (ipa_analyze_params_uses): Likewise.
12885         * ipa-prop.c (struct param_analysis_info): New type.
12886         (visit_store_addr_for_mod_analysis): Removed.
12887         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
12888         moved down in the file.
12889         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
12890         (ipa_count_arguments): Made static.
12891         (mark_modified): New function.
12892         (is_parm_modified_before_call): New function.
12893         (compute_pass_through_member_ptrs): New parameter parms_info, call
12894         is_parm_modified_before_call instead of ipa_is_param_modified.
12895         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
12896         it to compute_pass_through_member_ptrs.
12897         (ipa_compute_jump_functions): New parameter parms_info, pass it to
12898         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
12899         on the callee if it is analyzed.  Made static.
12900         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
12901         is_parm_modified_before_call instead of ipa_is_param_modified.
12902         (ipa_analyze_call_uses): New parameter parms_info, pass it to
12903         ipa_analyze_indirect_call_uses.
12904         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
12905         ipa_analyze_call_uses.
12906         (ipa_analyze_params_uses): New parameter parms_info, pass it to
12907         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
12908         (ipa_analyze_node): New function.
12909         (ipa_print_node_params): Do not dump the modified flag.
12910         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
12911         it.  Do not stream the modified parameter flag.
12912         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
12913         it.  Do not stream the modified parameter flag.
12914         * ipa-cp.c (ipcp_analyze_node): Removed.
12915         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
12916         with only a call to ipa_analyze_node.
12917         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
12918         node with only a call to ipa_analyze_node.
12919
12920 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12921
12922         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
12923
12924 2010-06-25  Jan Hubicka  <jh@suse.cz>
12925
12926         * tree-pass.h (pass_split_functions): Declare.
12927         * opts.c (decode_options): Enable function splitting at -O2
12928         * timevar.def (TV_IPA_FNSPLIT): New macro.
12929         * ipa-split.c: New file.
12930         * common.opt (-fpartial-inlining): New flag.
12931         * Makefile.in (ipa-split.o): New object file.
12932         * passes.c (init_optimization_passes): Add ipa-split.
12933         * params.def (partial-inlining-entry-probability): New parameters.
12934         * doc/invoke.texi (-fpartial-inlining): New.
12935
12936 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12937
12938         PR 44665
12939         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
12940         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
12941         (gimplify_expr): Likewise.
12942
12943 2010-06-25  Martin Jambor  <mjambor@suse.cz>
12944
12945         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
12946         statements instead of bailing out on them.
12947         (ipa_analyze_indirect_call_uses): Do not require that loads from the
12948         parameter are in the same BB as the condition.  Update comments.
12949
12950 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
12951
12952         PR middle-end/43866
12953         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
12954         true or always false, return NULL_TREE.
12955         (tree_unswitch_single_loop): Optimize conditions even when reaching
12956         max-unswitch-level parameter.  If num > 0, optimize first all conditions
12957         using entry checks, then do still reachable block discovery and consider
12958         only conditions in still reachable basic blocks in the loop.
12959
12960         PR tree-optimization/44539
12961         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
12962         the call doesn't have LHS, but has VDEF.
12963
12964 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
12965
12966         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
12967         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
12968         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
12969         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
12970         * system.h (MODIFY_TARGET_NAME): Poison.
12971
12972 2010-06-25  Alan Modra  <amodra@gmail.com>
12973
12974         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
12975         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
12976         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12977         CMODEL_LARGE as default.
12978         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
12979         (offsettable_ok_by_alignment): Delete.
12980         (rs6000_emit_move): Remove mcmodel=medium optimization.
12981
12982 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
12983
12984         With large parts from Jim Wilson:
12985         PR target/43902
12986         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
12987         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
12988         * optabs.c (optab_for_tree_code): Likewise.
12989         (expand_widen_pattern_expr): Likewise.
12990         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
12991         out of execute_optimize_widening_mul.
12992         (convert_plusminus_to_widen): New function.
12993         (execute_optimize_widening_mul): Use the two new functions.
12994         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
12995         Remove code to generate widening multiply-accumulate.  Add support
12996         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
12997         * gimple-pretty-print.c (dump_ternary_rhs): New function.
12998         (dump_gimple_assign): Call it when appropriate.
12999         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
13000         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
13001         (expand_gimple_stmt_1): Likewise.
13002         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
13003         WIDEN_MULT_MINUS_EXPR.
13004         * tree-ssa-operands.c (get_expr_operands): Likewise.
13005         * tree-inline.c (estimate_operator_cost): Likewise.
13006         * gimple.c (extract_ops_from_tree_1): Renamed from
13007         extract_ops_from_tree.  Add new arg for a third operand; fill it.
13008         (gimple_build_assign_stat): Support operations with three operands.
13009         (gimple_build_assign_with_ops_stat): Likewise.
13010         (gimple_assign_set_rhs_from_tree): Likewise.
13011         (gimple_assign_set_rhs_with_ops_1): Renamed from
13012         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
13013         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
13014         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
13015         WIDEN_MULT_MINUS_EXPR.
13016         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
13017         (extract_ops_from_tree_1): Adjust declaration.
13018         (gimple_assign_set_rhs_with_ops_1): Likewise.
13019         (gimple_build_assign_with_ops): Pass NULL for last operand.
13020         (gimple_build_assign_with_ops3): New macro.
13021         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
13022         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
13023         functions.
13024         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
13025         (verify_gimple_assign): Call it.
13026         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
13027         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
13028         functions for dealing with three-operand statements.
13029         * tree.c (commutative_ternary_tree_code): New function.
13030         * tree.h (commutative_ternary_tree_code): Declare it.
13031         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
13032         ternary statements.
13033         (gimple_assign_nonzero_warnv_p): Likewise.
13034         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
13035         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
13036         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
13037         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
13038         (struct hashtable_expr): New member ternary in the union.
13039         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
13040         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
13041         (iterative_hash_hashable_expr): Likewise.
13042         (print_expr_hash_elt): Handle EXPR_TERNARY.
13043         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
13044         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
13045         statements.  Handle GIMPLE_TERNARY_RHS.
13046
13047 2010-06-25  Jan Hubicka  <jh@suse.cz>
13048
13049         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
13050
13051 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
13052
13053         PR c/44517
13054         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
13055         parameters are not good.
13056         (c_parser_parameter_declaration): Error unknown type name if the type
13057         name can't start declaration specifiers.
13058
13059 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
13060
13061         * gcc.c (translate_options): Don't mention +e in comment.
13062         (process_command): Don't handle +e specially.
13063
13064 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
13065
13066         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
13067
13068         * ira-build.c (merge_hard_reg_conflicts): New function.
13069         (create_cap_allocno, copy_info_to_removed_store_destinations,
13070         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
13071         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
13072         (remove_unnecessary_allocnos, remove_low_level_allocnos)
13073         copy_nifo_to_removed_store_destination): Use them.
13074         * ira-lives.c (make_hard_regno_born): New function, split out of
13075         make_regno_born.
13076         (make_allocno_born): Likewise.
13077         (make_hard_regno_dead): New function, split out of make_regno_dead.
13078         (make_allocno_dead): Likewise.
13079         (inc_register_pressure): New function, split out of set_allocno_live.
13080         (dec_register_pressure): New function, split out of clear_allocno_live.
13081         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
13082         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
13083         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
13084         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
13085         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
13086         mark_pseudo_regno_live.
13087         (process_bb_node_lives): Use mark_pseudo_regno_live,
13088         make_hard_regno_born and make_allocno_dead.
13089         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
13090         set_allocno_live, clear_allocno_live): Delete functions.
13091
13092         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
13093         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
13094         functions.
13095         (ira_flattening): Use ira_parent_allocno.
13096         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
13097         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
13098
13099         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
13100         statement.
13101
13102         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
13103         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
13104         minmax_set_iter_cond, minmax_set_iter_next,
13105         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
13106         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
13107         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
13108         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
13109         uses changed.
13110
13111         * ira-int.h (struct live_range, live_range_t): Renamed from struct
13112         ira_allocno_live_range and allocno_live_range_t; all uses changed.
13113         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
13114         All uses changed.
13115
13116 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
13117
13118         * thumb2.md (thumb2_tlobits_cbranch): Delete.
13119         (peephole2 to convert zero_extract/compare of single bit to
13120          lshift/compare): New.
13121
13122 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
13123
13124         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
13125         recursive call and call to 'int_const_binop'.
13126         (build_range_check, fold_cond_expr_with_comparison, unextend,
13127         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
13128         multiple_of_p): Adjust call to const_binop.
13129
13130 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
13131
13132         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
13133         determine size of XFmode operand.
13134         (XFmode extended DFmode push splitter): Ditto.
13135         (XFmode extended SFmode push splitter): Ditto.
13136
13137 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
13138
13139         PR target/44588
13140         * config/i386/i386.md (extract_code): New.
13141         (<u>divmodqi4): Likewise.
13142         (divmodhiqi3): Likewise.
13143         (udivmodhiqi3): Likewise.
13144         (<u>divqi3): Remvoved.
13145
13146 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
13147
13148         PR middle-end/44492
13149         * recog.h (struct recog_data): Add is_asm field.
13150         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
13151         present in constraints of inline-asm operand and memory operand
13152         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
13153         (extract_insn): Initialize recog_data.is_asm.
13154         * doc/md.texi (Constraints): Document operand side-effect rules.
13155
13156 2010-06-24  Andi Kleen  <ak@linux.intel.com>
13157
13158         * c-parser.c (c_parser_conditional_expression): Call
13159         warn_for_omitted_condop.
13160         * doc/invoke.texi: Document omitted condop warning.
13161
13162 2010-06-24  Nick Clifton<nickc@redhat.com>
13163
13164         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
13165         insn in the sequence is a jump insn before setting its label.
13166
13167 2010-06-24  Alan Modra  <amodra@gmail.com>
13168
13169         * collect2.c (main): Match exactly --version and --help.
13170
13171 2010-06-24  DJ Delorie  <dj@redhat.com>
13172
13173         * config/m32c/m32c-pragma.c: Don't include rtl.h.
13174
13175 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
13176
13177         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
13178         using X87MODEF mode iterator.
13179         (pushsf splitter): Macroize splitter using P mode iterator.
13180         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
13181         mode iterator.
13182
13183         (*movxf_internal): Rename from *movxf_integer.
13184         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
13185         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
13186         (*movdf_internal): Rename from *movdf_integer.
13187         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
13188         (*movsf_internal): Rename from *movdf_1.
13189
13190 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
13191
13192         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
13193         (const_gimple_seq_node): Removed typedefs.
13194
13195         * gimple.h (gimple_seq_node_d, gimple_seq_node)
13196         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
13197
13198 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
13199
13200         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
13201         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
13202         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
13203         and CODE_FOR_vec_extract_lo_v4df.
13204
13205         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
13206         Changed to define_insn_and_split.
13207         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
13208         (vec_extract_lo_v16hi): Likewise.
13209         (vec_extract_lo_v32qi): Likewise.
13210         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
13211         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
13212
13213 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
13214
13215         PR target/44640
13216         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
13217         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
13218         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
13219         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
13220         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
13221
13222         PR target/44640
13223         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
13224
13225         PR other/44644
13226         * df-core.c (struct df): Rename to df_d.
13227         * df.h (struct df): Likewise.
13228         * dse.h (struct df): Remove forward declaration.
13229         * recog.h (struct insn_data): Rename to:
13230         (struct_insn_data_d).  Adjusted all users.
13231
13232 2010-06-23  Arnaud Charlet  <charlet@adacore.com
13233
13234         PR ada/22220
13235         * doc/install.texi: Update requirements to build GNAT.
13236
13237 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
13238
13239         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
13240         enum type.
13241         (m68k_sched_attr_opx_type): Remove unreachable return.
13242         (m68k_sched_attr_opy_type): Likewise.
13243         (m68k_sched_attr_size): Likewise.
13244         (sched_get_opxy_mem_type): Likewise.
13245         (m68k_sched_attr_op_mem): Likewise.
13246
13247 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
13248
13249         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
13250         new statement and adjust VDEF only if necessary.  Remove superfluous
13251         call to maybe_clean_or_replace_eh_stmt.
13252         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
13253         copy the flags.
13254         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
13255         * tree-inline.c (copy_bb): ...and not there.
13256
13257 2010-06-22  Cary Coutant  <ccoutant@google.com>
13258
13259         * dwarf2out.c (is_nested_in_subprogram): New function.
13260         (should_move_die_to_comdat): Use it.
13261         (copy_ancestor_tree): Don't mark DIEs here.
13262         (copy_decls_walk): Start walk from root of newly-added tree;
13263         mark DIEs here instead.
13264
13265 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
13266
13267         * config/i386/i386.md (unit): Also check sseishft1.
13268
13269 2010-06-22  Jan Hubicka  <jh@suse.cz>
13270
13271         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
13272         enabled.
13273
13274 2010-06-22  Jan Hubicka  <jh@suse.cz>
13275
13276         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
13277         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
13278         Return true if something changed.
13279         * df.h (df_confluence_function_n): Return bool.
13280         * df-core.c (df_worklist_propagate_forward,
13281         df_worklist_propagate_backward): Track changes and ages.
13282         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
13283         track ages.
13284         * dse.c (dse_confluence_n): Return always true.
13285
13286 2010-06-22  Jan Hubicka  <jh@suse.cz>
13287
13288         * bitmap.c (bitmap_clear_bit): Micro optimize.
13289
13290 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
13291
13292         * config/i386/i386.md (SWI1248x): New mode iterator.
13293         (SWI48x): Ditto.
13294         (SWI12): Ditto.
13295         (SWI24): Ditto.
13296
13297         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
13298         SWI1248x mode iterator.
13299         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
13300         using SWI124 mode iterator.
13301         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
13302         mode iterator.
13303         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
13304         *pushdi2_prologue_rex64 using P mode iterator.
13305         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
13306         using SWI48 mode iterator.
13307         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
13308         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
13309         using SWI1248x mode iterator.
13310         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
13311         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
13312         SWI48 mode iterator.
13313         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
13314         iterator.
13315         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
13316         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
13317         SWI12 mode iterator.
13318         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
13319         SWI12 mode iterator.
13320         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
13321         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
13322         SWI24 mode iterator.
13323         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
13324         SWI48 mode iterator.
13325         (mov<mode>_insn_1): New expander.
13326         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
13327         using SWI48x mode iterator.
13328
13329         (*movoi_internal_avx): Rename from *movoi_internal.
13330         (*movti_internal_rex64): Rename from *movti_rex64.
13331         (*movti_internal_sse): Rename from *movti_sse.
13332         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
13333         (*movdi_internal): Rename from *movdi_2.
13334         (*movsi_internal): Rename from *movsi_1.
13335         (*movhi_internal): Rename from *movhi_1.
13336         (*movqi_internal): Rename from *movqi_1.
13337
13338         (insv): Update the call to gen_movsi_insv_1 for rename.
13339         * config/i386/i386.c (promote_duplicated_reg): Ditto.
13340
13341 2010-06-22  Jan Hubicka  <jh@suse.cz>
13342
13343         * passes.c (execute_function_todo): Move call of statistics_fini_pass
13344         to ...
13345         (execute_todo) ... this one.
13346
13347 2010-06-22  Alan Modra  <amodra@gmail.com>
13348
13349         PR target/44364
13350         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
13351         * caller-save.c (insert_restore, insert_save): Use non-validate
13352         form of adjust_address.
13353
13354 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13355
13356         PR target/39690
13357         * config/pa/pa.c (override_options): Disable
13358         -freorder-blocks-and-partition.
13359
13360 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
13361
13362         PR target/44615
13363         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
13364
13365         * config/i386/i386.md (type): Add sseishft1
13366
13367         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
13368         (ppro_insn_load): Likewise.
13369         (ppro_insn_store): Likewise.
13370         (ppro_insn_both): Likewise.
13371
13372         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
13373         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
13374         for type.
13375         (*vec_extractv2di_1_avx): Likewise.
13376         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
13377         type.  Remove atom_unit.
13378         (*vec_extractv2di_1_sse2): Likewise.
13379
13380 2010-06-21  DJ Delorie  <dj@redhat.com>
13381
13382         * diagnostic.h (diagnostic_classification_change_t): New.
13383         (diagnostic_context): Add history and push/pop list.
13384         (diagnostic_push_diagnostics): Declare.
13385         (diagnostic_pop_diagnostics): Declare.
13386         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
13387         from pragmas in a history chain instead of the global table.
13388         (diagnostic_push_diagnostics): New.
13389         (diagnostic_pop_diagnostics): New.
13390         (diagnostic_report_diagnostic): Scan history chain to find state
13391         of diagnostics as of the diagnostic location.
13392         * opts.c (set_option): Pass UNKNOWN_LOCATION to
13393         diagnostic_classify_diagnostic.
13394         (enable_warning_as_error): Likewise.
13395         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
13396         use in the history chain.
13397         * doc/extend.texi: Document pragma GCC diagnostic changes.
13398
13399 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
13400
13401         * dwarf2out.c (add_linkage_name): New function.  Don't add
13402         anything to DW_TAG_member DIEs.
13403         (add_name_and_src_coords_attributes): Use it.
13404         (gen_variable_die): Call it for C++ static data members if
13405         specification is DW_TAG_member.
13406
13407         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
13408         C++ char16_t and char32_t.
13409
13410         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
13411         * genattrtab.c: Include vecprim.h.
13412         (cached_attrs, cached_attr_count, attrs_seen_once,
13413         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
13414         attrs_cached_after): New variables.
13415         (find_attrs_to_cache): New function.
13416         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
13417         (write_test_expr): Add attrs_cached argument, return it too,
13418         attempt to cache non-const attributes used more than once in
13419         a single case handling.
13420         (write_attr_get): Use find_attrs_to_cache, for caching candidates
13421         emit cached_* variables.  Adjust write_attr_set callers.
13422         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
13423         to find attributes that should be cached in this block.  Adjust
13424         write_test_expr callers.
13425         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
13426         callers.
13427         (make_automaton_attrs): Adjust write_test_expr caller.
13428
13429         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
13430         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
13431         (make_automaton_attrs): If find_tune_attr returns non-NULL,
13432         write separate internal_dfa_insn_code_* and insn_default_latency_*
13433         functions for each attribute's value and emit init_sched_attrs
13434         function and function pointers.
13435         * genattr.c (const_attrs, reservations): New variables.
13436         (gen_attr): Add const attributes to const_attrs vector.
13437         (check_tune_attr, find_tune_attr): New functions.
13438         (main): Add reservations to reservations vector.  If find_tune_attr
13439         returns true, add prototype for init_sched_attrs and make
13440         internal_dfa_insn_code and insn_default_latency function pointers,
13441         otherwise define init_sched_attrs as dummy macro.
13442         * cfgexpand.c: Include insn-attr.h.
13443         (gimple_expand_cfg): Call init_sched_attrs.
13444
13445         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
13446
13447         PR target/44575
13448         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
13449         va_arg from a set of register save slots into a temporary,
13450         if the container is bigger than type size, do the copying
13451         using smaller mode or using memcpy.
13452
13453         PR bootstrap/44426
13454         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
13455         prototype.
13456         (sel_print_to_dot): Remove macro.
13457         (sel_print): Likewise.  New prototype.
13458         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
13459         (sel_print): New function.
13460
13461 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13462
13463         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
13464         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
13465
13466 2010-06-21  Nick Clifton  <nickc@redhat.com>
13467
13468         * config/rx/rx.h (PTRDIFF_TYPE): Define.
13469         (SMALL_REGISTER_CLASS): Define (to zero).
13470         (PRINT_OPERAND): Delete.
13471         (PRINT_OPERAND_ADDRESS): Delete.
13472         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
13473         (rx_print_operand_address): Delete prototype.
13474         * config/rx/rx.c (rx_print_operand): Make static.
13475         Allow %H and %L to handle CONST_DOUBLEs.
13476         (rx_print_operand_address): Make static.
13477         (rx_gen_move_template): Rename local variable 'template' to
13478         out_template.
13479         (rx_function_arg): Do not pass unknown sized objects in registers.
13480         (TARGET_PRINT_OPERAND): Define.
13481         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13482
13483 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
13484
13485         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
13486
13487 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
13488
13489         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
13490         stack-alignment for simple leaf-functions.
13491
13492 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
13493
13494         * doc/install.texi: Document bootstrap-lto.
13495
13496 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
13497
13498         PR debug/44248
13499         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
13500         (input_function): Drop them here, if VTA is disabled.
13501
13502 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
13503
13504         PR target/44546
13505         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
13506         New predicate.
13507         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
13508         ix86_swapped_fp_comparsion_operator instead of
13509         ix86_fp_comparison_operator.
13510
13511         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
13512         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
13513         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
13514         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
13515         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
13516         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
13517
13518 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
13519
13520         PR other/32998
13521         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
13522         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
13523         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
13524         (decode_cmdline_option): Update for this return value.  Set
13525         orig_option_with_args_text field.  Set arg field for unknown
13526         options.  Make static.
13527         (decode_cmdline_options_to_array): New.
13528         (prune_options): Update handling of find_opt return value.
13529         * opts.c (read_cmdline_option): Take decoded option.  Return void.
13530         (read_cmdline_options): Take decoded options.
13531         (decode_options): Add parameters for decoded options.  Use
13532         decode_cmdline_options_to_array.  Use decoded options for -O
13533         scan.  Use integral_argument for -O parameters.  Update call to
13534         read_cmdline_options.
13535         (enable_warning_as_error): Update handling of find_opt return value.
13536         * opts.h: Update comment on unknown options.
13537         (struct cl_decoded_option): Update comments on opt_index and arg.
13538         Add orig_option_with_args_text.
13539         (decode_cmdline_option): Remove.
13540         (decode_cmdline_options_to_array): Declare.
13541         (decode_options): Update prototype.
13542         * toplev.c (save_argv): Remove.
13543         (save_decoded_options, save_decoded_options_count): New.
13544         (read_integral_parameter): Remove.
13545         (print_switch_values): Use decoded options.
13546         (toplev_main): Don't set save_argv.  Update call to decode_options.
13547         * toplev.h (read_integral_parameter): Remove.
13548         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
13549
13550 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
13551
13552         PR target/44072
13553         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
13554         immediate.
13555         * constraints.md (Pw, Px): New constraints.
13556         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
13557
13558 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
13559
13560         * config/i386/sse.md (fma4modesuffixf4): Removed.
13561         (ssemodesuffixf2s): Likewise.
13562         (ssemodesuffixf4): Likewise.
13563         (ssemodesuffixf2c): Likewise.
13564         (ssescalarmodesuffix2s): Likewise.
13565         (avxmodesuffixf2c): Likewise.
13566         (ssemodesuffix): New.
13567         (ssescalarmodesuffix): Likewise.
13568         Update patterns with ssemodesuffix and ssescalarmodesuffix.
13569
13570 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
13571
13572         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
13573
13574 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
13575
13576         * stor-layout.c (debug_rli): Remove unused local variables.
13577
13578 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
13579
13580         PR rtl-optimization/40900
13581         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
13582         original expression for later reuse.
13583         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
13584         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
13585
13586 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
13587
13588         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
13589         double_int_fits_in_uhwi_p): Implement as static inline.
13590         (double_int_xor): New inline function.
13591         (double_int_lrotate, double_int_rrotate, double_int_max,
13592         double_int_umax, double_int_smax, double_int_min, double_int_umin,
13593         double_int_smin): Declare.
13594         (lrotate_double, rrotate_double): Remove declaration.
13595         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
13596         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
13597         (double_int_lrotate, double_int_rrotate, double_int_max,
13598         double_int_umax, double_int_smax, double_int_min, double_int_umin,
13599         double_int_smin): New function.
13600         * fold-const.c (int_const_binop): Clean up, use double_int_*
13601         functions.
13602         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
13603         double_int_* and immed_double_int_const functions.
13604
13605 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
13606
13607         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
13608         * function.c (types_used_by_cur_var_decl): Likewise.
13609         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
13610
13611 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
13612
13613         * tree.h (record_layout_info): Change type of pending_statics field
13614         to a VEC.
13615         * stor-layout.c (start_record_layout): Store NULL into
13616         pending_statics.
13617         (debug_rli): Call debug_vec_tree instead of debug_tree.
13618         (place_field): Likewise.
13619         (finish_record_layout): Likewise.
13620
13621 2010-06-18  Alan Modra  <amodra@gmail.com>
13622
13623         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
13624
13625 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13626
13627         PR target/43740
13628         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
13629         for SET source operand from SET destination operand.
13630
13631 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
13632
13633         PR rtl-optimization/39871
13634         * reload1.c (init_eliminable_invariants): For flag_pic, disable
13635         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
13636         (function_invariant_p): Rule out a plus of frame or arg pointer with
13637         a SYMBOL_REF.
13638         * ira.c (find_reg_equiv_invariant_const): Likewise.
13639
13640 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
13641
13642         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
13643         print_operand_address and puts to output the operand for CONST.
13644
13645 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
13646
13647         PR debug/44572
13648         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
13649         hook.
13650
13651 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13652
13653         * v850-protos.h (print_operand): Delete.
13654         (print_operand_address): Delete.
13655         * v850.h (PRINT_OPERAND): Delete.
13656         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13657         (PRINT_OPERAND_ADDRESS): Delete.
13658         * v850.c (print_operand_address): Rename to...
13659         (v850_print_operand_address): ...this.  Make static. Call
13660         v850_print_operand.
13661         (print_operand): Rename to...
13662         (v850_print_operand): ...this.  Make static.  Call
13663         v850_print_operand_address.
13664         (v850_print_operand_punct_valid_p): New function.
13665         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13666         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13667
13668 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13669
13670         * config/sh/sh-protos.h (print_operand): Delete.
13671         (print_operand_address): Delete.
13672         * config/sh/sh.h (PRINT_OPERAND): Delete.
13673         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13674         (PRINT_OPERAND_ADDRESS): Delete.
13675         * config/sh/sh.c (sh_print_operand_address): Make static.
13676         (sh_print_operand): Make static.  Call sh_print_operand_address
13677         and sh_print_operand.
13678         (sh_print_operand_punct_valid_p): New function.
13679         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13680         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13681
13682 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13683
13684         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
13685         (mcore_print_operand_address): Delete.
13686         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
13687         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13688         (PRINT_OPERAND_ADDRESS): Delete.
13689         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
13690         (mcore_print_operand): Make static.
13691         (mcore_print_operand_punct_valid_p): New function.
13692         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
13693         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13694
13695 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13696
13697         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
13698         (print_operand_address): Delete.
13699         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
13700         (PRINT_OPERAND_ADDRESS): Delete.
13701         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
13702         static.
13703         (m68hc11_print_operand): Make static.
13704         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13705
13706 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13707
13708         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
13709         (m32r_print_operand_address): Delete.
13710         * config/m32r/m32r.h (m32r_punct_chars): Delete.
13711         (PRINT_OPERAND): Delete.
13712         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13713         (PRINT_OPERAND_ADDRESS): Delete.
13714         * config/m32r/m32r.c (m32r_punct_chars): Make static.
13715         (m32r_print_operand_address): Make static.
13716         (m32r_print_operand): Make static.
13717         (m32r_print_operand_punct_valid_p): New function.
13718         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13719         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13720
13721 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13722
13723         * config/iq2000/iq2000-protos.h (print_operand): Delete.
13724         (print_operand_address): Delete.
13725         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
13726         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13727         (PRINT_OPERAND_ADDRESS): Delete.
13728         (iq2000_print_operand_punct): Delete.
13729         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
13730         (iq2000_print_operand_address): Make static.
13731         (iq2000_print_operand): Make static.
13732         (iq2000_print_operand_punct_valid_p): New function.
13733         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13734         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13735
13736 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13737
13738         * config/frv/frv-protos.h (frv_print_operand): Delete.
13739         (frv_print_operand_address): Delete.
13740         * config/frv/frv.h (PRINT_OPERAND): Delete.
13741         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13742         (PRINT_OPERAND_ADDRESS): Delete.
13743         * config/frv/frv.c (frv_print_operand_address): Make static.
13744         (frv_print_operand): Make static.
13745         (frv_print_operand_punct_valid_p): New function.
13746         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13747         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13748
13749 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13750
13751         * tree.h (vec_member): Declare.
13752         * tree.c (vec_member): Define.
13753
13754 2010-06-17  Richard Guenther  <rguenther@suse.de>
13755
13756         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
13757         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
13758
13759 2010-06-17  Richard Guenther  <rguenther@suse.de>
13760
13761         * tree-inline.c (declare_return_variable): Remove bogus code.
13762
13763 2010-06-17  Richard Guenther  <rguenther@suse.de>
13764
13765         * gimplify.c (gimplify_bind_expr): Always promote complex
13766         and vector variables to registers if possible.
13767
13768 2010-06-17  Richard Guenther  <rguenther@suse.de>
13769
13770         * expr.c (get_inner_reference): Use double_int for bit_offset
13771         calculation.
13772
13773 2010-06-16  DJ Delorie  <dj@redhat.com>
13774
13775         * common.opt (-fstrict-volatile-bitfields): new.
13776         * doc/invoke.texi: Document it.
13777         * fold-const.c (optimize_bit_field_compare): For volatile
13778         bitfields, use the field's type to determine the mode, not the
13779         field's size.
13780         * expr.c (expand_assignment): Likewise.
13781         (get_inner_reference): Likewise.
13782         (expand_expr_real_1): Likewise.
13783         * expmed.c (store_fixed_bit_field): Likewise.
13784         (extract_bit_field_1): Likewise.
13785         (extract_fixed_bit_field): Likewise.
13786
13787 2010-06-16  Richard Guenther  <rguenther@suse.de>
13788
13789         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
13790
13791 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
13792
13793         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
13794         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
13795         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
13796         * debug.c: Likewise.
13797         * sdbout.c: Likewise.
13798         * vmsdbgout.c: Likewise.
13799         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
13800         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
13801         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
13802         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
13803         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
13804         * dwarf2out.c (dw_fde_struct): New fields
13805         dw_fde_vms_{end,begin}_prologue.
13806         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
13807         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
13808         (dwarf2out_vms_end_prologue): New function.
13809         (dwarf2out_vms_begin_epilogue): New function.
13810         (dw_val_struct): New value dw_val_class_vms_delta.
13811         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
13812         begin_epilogue for VMS.
13813         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
13814         new static functions.
13815         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
13816         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
13817         static functions.
13818         (print_die): New case dw_val_class_vms_delta.
13819         (attr_checksum): Likewise.
13820         (same_dw_val_p: Likewise.
13821         (size_of_die): Likewise.
13822         (value_format): Likewise.
13823         (output_die): Likewise.
13824         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
13825         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
13826         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
13827         dwarf2out_cfi_begin_epilogue
13828         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
13829
13830 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
13831
13832         * config/cris/cris-protos.h (cris_print_operand): Delete.
13833         (cris_print_operand_address): Delete.
13834         * config/cris/cris.h (PRINT_OPERAND): Delete.
13835         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13836         (PRINT_OPERAND_ADDRESS): Delete.
13837         * config/cris/cris.c (cris_print_operand_address): Make static.
13838         (cris_print_operand): Make static.
13839         (cris_print_operand_punct_valid_p): New function.
13840         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13841         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13842
13843 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
13844
13845         * config/arm/arm-protos.h (arm_print_operand): Delete.
13846         (arm_print_operand_address): Delete.
13847         * config/arm/arm.h (PRINT_OPERAND): Delete.
13848         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13849         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
13850         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
13851         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
13852         (arm_print_operand): Make static.
13853         (arm_print_operand_punct_valid_p): New function.
13854         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13855         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13856
13857 2010-06-16  Nick Clifton  <nickc@redhat.com>
13858
13859         * config/rx/constraints.md (NEGint4): New constraint.
13860         * config/rx/rx.md (attr cc): Add set_zsc.
13861         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
13862         initialised.
13863         (cmpsf): Likewise.
13864         (call_internal): Clobber the cc0 register.
13865         (call_value_internal): Likewise.
13866         (cstoresi4): Likewise.
13867         (movsieq): Likewise.
13868         (movsine): Likewise.
13869         (addsi3): Add alternative to handle small negative constants.
13870         (sunsi3): Likewise.
13871         (addsi3): Do not set the O bit in the cc0 register.
13872         (adddi3): Likewise.
13873         (subsi3): Likewise.
13874         (subdi3): Likewise.
13875         (andsi3): Reorder alternatives to prefer shorter forms.
13876         (mulsi3): Likewise.
13877         (iorsi3): Likewise.
13878         (negsi2): Note that the cc0 flags are set.
13879         (rotlsi3): Note that only the Z and S bits are set in cc0.
13880         (lshrsi3): Likewise.
13881         (ashlsi3): Likewise.
13882         (subsf3): Use %Q for the MEM operand.
13883         (fix_truncsfsi2): Likewise.
13884         (floatsisf2): Likewise.
13885         (bitset): Remove early clobber from destination.
13886         (bitset_in_memory): Likewise.
13887         (lrintsf2): Clobber the cc0 register.
13888         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
13889         (rx_print_operand): Handle %N.
13890
13891 2010-06-16  Jan Hubicka  <jh@suse.cz>
13892
13893         * df-core.c (df_compact_blocks): Free problem_temps vector.
13894
13895 2010-06-16  Martin Jambor  <mjambor@suse.cz>
13896
13897         PR tree-optimization/43905
13898         * tree-sra.c: Include tree-inline.h.
13899         (create_abstract_origin): Removed.
13900         (modify_function): Version the call graph node instead of creating
13901         abstract origins and dealing with same_body aliases.
13902         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
13903         function is versionable.
13904         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
13905
13906 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
13907
13908         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
13909         (CHOOSE_DYNAMIC_LINKER): Update.
13910
13911 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
13912
13913         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
13914         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
13915         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
13916         *prefetch_3dnow_rex.
13917
13918 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
13919
13920         * target.h (struct asm_out):Add declare_constant_name field.
13921         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
13922         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
13923         * output.h (default_asm_declare_constant_name): Declare.
13924         (assemble_label): Update prototype.
13925         * varasm.c (assemble_constant_contents): Use
13926         targetm.asm_out.declare_constant_name target hook.
13927         (assemble_label): Add 'file' argument.
13928         (default_asm_declare_constant_name): New function.
13929         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
13930         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
13931         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
13932
13933         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
13934         * config/darwin.c (darwin_asm_declare_constant_name): New function.
13935         (machopic_output_indirection): Update assemble_label argument list.
13936         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
13937         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
13938
13939 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
13940
13941         PR middle-end/44391
13942         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
13943         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
13944
13945 2010-06-15  Richard Guenther  <rguenther@suse.de>
13946
13947         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
13948
13949 2010-06-15  Paul Brook  <paul@codesourcery.com>
13950
13951         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
13952         hard-float ABI.
13953
13954 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
13955
13956         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
13957         don't get a vector type for output.
13958
13959 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
13960
13961         PR fortran/44536
13962         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
13963         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
13964         (LANG_HOOKS_DECLS): Add it.
13965         * gimplify.c (omp_notice_variable): Call
13966         lang_hooks.decls.omp_report_decl.
13967
13968 2010-06-15  Martin Jambor  <mjambor@suse.cz>
13969
13970         PR lto/44464
13971         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
13972         on the newly dead SSA name.
13973
13974 2010-06-15  Alan Modra  <amodra@gmail.com>
13975
13976         * doc/invoke.texi: Add mcmodel to powerpc options.
13977         * configure.ac: Add HAVE_LD_LARGE_TOC test.
13978         * configure: Regenerate.
13979         * config.in: Regenerate.
13980         * config/rs6000/linux64.opt (mcmodel): New.
13981         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
13982         (TARGET_CMODEL, SET_CMODEL): Define.
13983         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
13984         select CMODEL_MEDIUM default.
13985         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
13986         (TARGET_CMODEL): Define default.
13987         * config/rs6000/rs6000.c (cmodel): New variable.
13988         (rs6000_explicit_options): Add cmodel field.
13989         (rs6000_handle_option): Handle -mcmodel.
13990         (create_TOC_reference): Add largetoc_reg param.  Generate high,
13991         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
13992         (rs6000_delegitimize_address): Recognise new toc reference rtl
13993         and minimal-toc rtl.
13994         (rs6000_legitimize_reload_address): Handle new toc references.
13995         (print_operand_address): Handle legitimate_constant_pool_address_p
13996         match before lo_sum.
13997         (rs6000_eliminate_indexed_memrefs): Tidy.
13998         (rs6000_emit_move): Tweak threshold for inlining constants.
13999         Keep rs6000_emit_allocate_stack large stack frame offsets
14000         loaded into r0 inline.
14001         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
14002         (tocrel_base, tocrel_offset): New variables.
14003         (toc_relative_expr_p): Set them here.
14004         (print_operand_address): Skip over any offset on constant pool address.
14005         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
14006         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
14007         (offsettable_ok_by_alignment): New function.
14008         (rs6000_emit_move): Address suitably aligned local symbol_refs
14009         relative to the toc pointer for -mcmodel=medium.
14010         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
14011         strict param.  Allow lo_sum version of addressing.  Verify reg
14012         used for -mminimal-toc and -mcmodel != small.  Update all callers.
14013         * config/rs6000/constraints.md: Update for above change.
14014         * config/rs6000/predicates.md: Likewise.
14015         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
14016         code.
14017         (tls_gd): Split for -mcmodel=medium/large.
14018         (tls_gd_high, tls_gd_low): New.
14019         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
14020         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
14021         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
14022         (largetoc_high, largetoc_low): New.
14023         (cmptf_internal2): Add clobber.
14024         * config/rs6000/rs6000-protos.h: Update.
14025
14026 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
14027
14028         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
14029         true if no prefetch is going to be generated for a given group.
14030         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
14031         estimate the prefetch_count.
14032         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
14033         prefetch count by considering the unroll_factor and prefetch_mod
14034         for is_loop_prefetching_profitable.
14035
14036 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
14037
14038         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
14039         anything if the argument is not a MEM.
14040
14041 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
14042
14043         PR debug/43650
14044         PR debug/44181
14045         PR debug/44247
14046         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
14047         debug stmts.
14048         (canonicalize_loop_ivs): Likewise.
14049
14050 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
14051
14052         PR debug/43656
14053         * haifa-sched.c (setup_insn_reg_pressure_info,
14054         update_register_pressure): Reject debug insns.
14055         (ready_sort): Don't setup reg pressure for debug insns.
14056         (schedule_insn): Don't update reg pressure for debug insns.
14057
14058 2010-06-14  Richard Guenther  <rguenther@suse.de>
14059
14060         * lto-streamer.c (cached_bp): Remove.
14061         (bitpack_delete): Likewise.
14062         (bitpack_create): Likewise.
14063         (bp_get_next_word): Likewise.
14064         (bp_pack_value, bp_unpack_value): Move ...
14065         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
14066         Re-implement.
14067         (struct bitpack_d): Likewise.
14068         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
14069         New inline functions.
14070         * lto-streamer-out.c (lto_output_bitpack): Remove.
14071         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
14072         (pack_value_fields): Adjust.
14073         (lto_write_tree): Likewise.
14074         (output_gimple_stmt): Likewise.
14075         (output_function): Likewise.
14076         * lto-streamer-in.c (input_gimple_stmt): Adjust.
14077         (input_function): Likewise.
14078         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
14079         (lto_input_bitpack): Remove.
14080         (lto_materialize_tree): Adjust.
14081         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
14082         * lto-cgraph.c (lto_output_edge): Adjust.
14083         (lto_output_node): Likewise.
14084         (lto_output_varpool_node): Likewise.
14085         (lto_output_ref): Likewise.
14086         (input_node): Likewise.
14087         (input_varpool_node): Likewise.
14088         (input_ref): Likewise.
14089         (input_edge): Likewise.
14090         (output_node_opt_summary): Likewise.
14091         (input_node_opt_summary): Likewise.
14092         * ipa-pure-const.c (pure_const_write_summary): Likewise.
14093         (pure_const_read_summary): Likewise.
14094         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
14095         (ipa_read_indirect_edge_info): Likewise.
14096         (ipa_write_node_info): Likewise.
14097         (ipa_read_node_info): Likewise.
14098
14099 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
14100
14101         PR target/44534
14102         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
14103         (vec_extract_lo_v16hi): Likewise.
14104         (vec_extract_lo_v32qi): Likewise.
14105
14106 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
14107
14108         PR bootstrap/44426
14109         * tree.h (build_call_expr): Don't define as vararg macro, instead
14110         add a prototype.
14111         * builtins.c (build_call_nofold): Remove.
14112         (expand_builtin_int_roundingfn, expand_builtin_pow,
14113         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
14114         expand_builtin_memset_args, expand_builtin_strcmp,
14115         expand_builtin_strncmp, expand_builtin_memory_chk): Use
14116         build_call_nofold_loc instead of build_call_nofold.
14117         (build_call_expr): New function.
14118
14119         PR tree-optimization/44508
14120         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
14121         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
14122         don't eliminate trivially dead stmts.
14123         * tree-vrp.c (vrp_finalize): Pass false as last argument
14124         to substitute_and_fold.
14125         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
14126         to substitute_and_fold.
14127         * tree-ssa-ccp.c (ccp_finalize): Likewise.
14128
14129         PR bootstrap/44509
14130         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
14131
14132 2010-06-14  Ira Rosen  <irar@il.ibm.com>
14133
14134         PR tree-optimization/44507
14135         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
14136         to build initial vector for BIT_AND_EXPR.
14137         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
14138
14139 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
14140
14141         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
14142         adjust z10prop set_attr.
14143
14144 2010-06-13  Jan Hubicka  <jh@suse.cz>
14145
14146         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
14147         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
14148         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
14149         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
14150         datastructure checks into checking asserts.
14151         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
14152         * tree-ssa-sccvn.c (VN_INFO): Likewise.
14153         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
14154         df_ref_create_structure): Likewise.
14155         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
14156         pool_free): Use gcc_checking_assert.
14157         * alias.c (get_alias_set): Likewise.
14158         * var-tracking.c (variable_htab_free, shared_hash_copy,
14159         canonicalize_values_mark, variable_merge_over_cur): Likewise.
14160         * lto-streamer.c (bp_unpack_value): Likewise.
14161
14162 2010-06-13  Richard Guenther  <rguenther@suse.de>
14163
14164         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
14165         Do not stream but initialize TYPE_CANONICAL to NULL.
14166         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
14167         * gimple.c (gimple_types_compatible_p): Disregard
14168         TYPE_STRUCTURAL_EQUALITY_P.
14169         (gimple_register_type): Use TYPE_CANONICAL as cache.
14170         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
14171         before registering common types.
14172         * config/i386/i386.c (ix86_function_arg_boundary): Do not
14173         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
14174         * tree.h (TYPE_CANONICAL): Clarify documentation.
14175
14176 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
14177
14178         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14179         LIBCALL_VALUE): Remove macros.
14180         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
14181         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14182         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14183         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
14184         (ia64_function_value): Make static. Handle receiving the function
14185         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
14186
14187 2010-06-12  Jan Hubicka  <jh@suse.cz>
14188
14189         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
14190         at correct place.
14191
14192 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
14193
14194         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
14195
14196 2010-06-12  Jan Hubicka  <jh@suse.cz>
14197
14198         * df-core.c (df_clear_bb_info): New function.
14199         (df_set_blocks): bb_info is always allocated.
14200         (df_get_bb_info): Use block_info_elt_size.
14201         (df_set_bb_info): Likewise.
14202         (df_compact_blocks): Update for new block_info.
14203         (grow_bb_info): New function.
14204         * df-problems.c (df_grow_bb_info): Move to df-core.c
14205         (df_rd_set_bb_info): Remove.
14206         (df_rd_free_bb_info): Do not free block pool.
14207         (df_rd_alloc): Do not create pool, use check for
14208         obstack presence instead of NULL pointer for new blocks.
14209         (df_rd_free): DO not free alloc pool; clear block_info.
14210         (problem_RD): Add size of block info structure.
14211         (df_lr_set_bb_info): Remove.
14212         (df_lr_free_bb_info): Do not free block pool.
14213         (df_lr_alloc): Do not create pool, use check for
14214         obstack presence instead of NULL pointer for new blocks.
14215         (df_lr_free): DO not free alloc pool; clear block_info.
14216         (problem_LR): Add size of block info structure.
14217         (df_live_set_bb_info): Remove.
14218         (df_live_free_bb_info): Do not free block pool.
14219         (df_live_alloc): Do not create pool, use check for
14220         obstack presence instead of NULL pointer for new blocks.
14221         (df_live_free): DO not free alloc pool; clear block_info.
14222         (problem_LIVE): Add size of block info structure.
14223         (problem_CHAIN): Add size of block info structure.
14224         (df_byte_lr_set_bb_info): Remove.
14225         (df_byte_lr_free_bb_info): Do not free block pool.
14226         (df_byte_lr_alloc): Do not create pool, use check for
14227         obstack presence instead of NULL pointer for new blocks.
14228         (df_byte_lr_free): DO not free alloc pool; clear block_info.
14229         (problem_BYTE_LR): Add size of block info structure.
14230         (problem_NOTE): Add size of block info structure.
14231         (df_byte_MD_set_bb_info): Remove.
14232         (df_byte_MD_free_bb_info): Do not free block pool.
14233         (df_byte_MD_alloc): Do not create pool, use check for
14234         obstack presence instead of NULL pointer for new blocks.
14235         (df_byte_MD_free): DO not free alloc pool; clear block_info.
14236         (problem_BD): Add size of block info structure.
14237         * df-scan.c (df_scan_free_internal): Free block pool.
14238         (df_scan_set_bb_info): Remove.
14239         (df_scan_free_bb_info): Check for artificial_defs instead
14240         of bb_info being non-NULL.
14241         (df_scan_alloc): DO not create df_scan_block pool.
14242         (problem_SCAN): Set size of block info.
14243         (df_bb_refs_record): Do not allocate bb_info.
14244         * df.h (df_problem): Add block_info_elt_size.
14245         (struct dataflow): Change block_info to void *.
14246         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
14247         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
14248         in-line structures.
14249
14250 2010-06-12  Jan Hubicka  <jh@suse.cz>
14251
14252         PR tree-optimize/44485
14253         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
14254         containing use of return value of noreturn function.
14255
14256 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
14257
14258         * targhooks.c (default_function_value): Don't use
14259         FUNCTION_OUTGOING_VALUE.
14260         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
14261         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
14262
14263 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
14264
14265         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
14266         Add crtfastmath.o to extra_parts.
14267         * config/mips/crtfastmath.c: New.
14268         * config/mips/linux.h (ENDFILE_SPEC): New.
14269
14270 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
14271
14272         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
14273         old_type in parameter.
14274         (gcc_type_for_value): Update call to gcc_type_for_interval.
14275         (compute_type_for_level_1): Renamed compute_type_for_level.
14276         Update call to gcc_type_for_interval.
14277
14278 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14279
14280         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
14281         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
14282
14283 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14284
14285         * opts-common.c: Include options.h.
14286         (integral_argument): Move from opts.c.
14287         (decode_cmdline_option): New.  Based on read_cmdline_option.
14288         * opts.c (integral_argument): Move to opts-common.c.
14289         (read_cmdline_option): Move most contents to
14290         decode_cmdline_option.  Use %qs in diagnostics.
14291         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
14292         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
14293         decode_cmdline_option): New.
14294
14295 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14296
14297         PR target/44481
14298         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
14299         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
14300         (partiysi2_cmp): Ditto.
14301         (*partiyhi2_cmp): Ditto.
14302         (*parityqi2_cmp): Remove.
14303
14304 2010-06-11  Jan Hubicka  <jh@suse.cz>
14305
14306         * bitmap.h (bmp_iter_next_bit): New.
14307         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
14308
14309 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
14310             Eric Botcazou  <ebotcazou@adacore.com>
14311
14312         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
14313         computed cost.
14314
14315 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14316
14317         * config/i386/i386.md (unspec): New define_c_enum.
14318         (unspecv): Ditto.
14319
14320 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
14321
14322         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
14323
14324 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
14325
14326         PR middle-end/44483
14327         * tree-if-conv.c (bb_predicate_s): New struct.
14328         (bb_predicate_p): New.
14329         (bb_has_predicate): New.
14330         (bb_predicate): New.
14331         (set_bb_predicate): New.
14332         (bb_predicate_gimplified_stmts): New.
14333         (set_bb_predicate_gimplified_stmts): New.
14334         (add_bb_predicate_gimplified_stmts): New.
14335         (init_bb_predicate): New.
14336         (free_bb_predicate): New.
14337         (is_predicated): Use bb_predicate.
14338         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
14339         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
14340         before processing their successors.
14341         (clean_predicate_lists): Removed.
14342         (find_phi_replacement_condition): Use bb_predicate.
14343         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
14344         computations.
14345         (insert_gimplified_predicates): New.
14346         (combine_blocks): Call insert_gimplified_predicates.
14347         (tree_if_conversion): Call free_bb_predicate instead of
14348         clean_predicate_lists.
14349
14350 2010-10-11  Paul Brook  <paul@codesourcery.com>
14351
14352         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
14353         * config/arm/arm.c (all_architectures): Change v7e-m default to
14354         cortexm4.
14355         * config/arm/arm-cores.def: Add cortex-m4.
14356         * config/arm/arm-tune.md: Regenerate.
14357
14358 2010-06-11  Jan Hubicka  <jh@suse.cz>
14359
14360         * ipa-pure-const.c (special_builtlin_state): New function.
14361         (check_call): Use it instead of special casign BUILT_IN_RETURN.
14362         (propagate_pure_const): Use it.
14363
14364 2010-06-11  Jan Hubicka  <jh@suse.cz>
14365
14366         * df-problems.c (df_live_scratch): Convert to bitmap_head.
14367         (df_live_alloc): Initialize df_live_scratch when initializing
14368         problem_data.
14369         (df_live_transfer_function): Update uses of df_live_scratch.
14370         (df_live_free): Free problem_data; clear df_live_scratch before
14371         releasing the obstack.
14372         (df_md_free): Free problem data.
14373
14374 2010-06-11  Jan Hubicka  <jh@suse.cz>
14375
14376         * doc/invoke.texi (Wsuggest-attribute): Document.
14377         (Wmissing-noreturn): Remove.
14378         * ipa-pure-const.c (warn_function_noreturn): New function.
14379         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
14380         warn_missing_noreturn.
14381         * common.opt (Wsuggest-attribute=noreturn): New.
14382         * tree-flow.h (warn_function_noreturn): Declare.
14383         * tree-cfg.c (execute_warn_function_noreturn): Use
14384         warn_function_noreturn.
14385         (gate_warn_function_noreturn): New.
14386         (pass_warn_function_noreturn): Update.
14387
14388 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14389
14390         * c-typeck.c (handle_warn_cast_qual): Add loc
14391         parameter. Improve warning message.
14392         (build_c_cast): Pass location to handle_warn_cast_qual.
14393
14394 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14395
14396         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
14397         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
14398         insn mnemonic.
14399         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
14400
14401 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
14402
14403         Fix bootstap on mips
14404         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
14405         be naming typedefs.
14406
14407 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
14408
14409         * system.h (helper_const_non_const_cast): New inline for
14410         gcc version <= 4.0.
14411         (CONST_CAST2): For gcc version <= 4.0 use
14412         new helper to do const/non-const casting.
14413
14414 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14415
14416         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
14417         * Makefile.in (OBJS-common): Include insn-enums.o.
14418         (insn-enums.o): New rule.
14419         (simple_generated_c): Add insn-enums.c.
14420         (build/genenums.o): New rule.
14421         (genprogmd): Add "enums".
14422         * genconstants.c (print_enum_type): Declare a C string array
14423         for each enum.
14424         * genenums.c: New file.
14425         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
14426         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
14427         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
14428
14429 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14430
14431         * doc/md.texi (define_enum_attr): Document.
14432         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
14433         * read-md.h (lookup_enum_type): Declare.
14434         * read-md.c (lookup_enum_type): New function.
14435         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
14436         * genattrtab.c (attr_desc): Add an enum_name field.
14437         (evaluate_eq_attr): Take the associated attribute as argument.
14438         Get the enum prefix from the enum_name field, if defined.
14439         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
14440         (simplify_test_exp): Pass attr to evaluate_eq_attr.
14441         (add_attr_value): New function, split out from...
14442         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
14443         (write_test_expr): Pass attr to evaluate_eq_attr.
14444         (write_attr_get): Use the enum_name as the enum tag, if defined.
14445         (write_attr_valueq): Use the enum_name as a prefix, if defined.
14446         (find_attr): Initialize enum_name.
14447         (main): Handle DEFINE_ENUM_ATTR.
14448         * gensupport.c (process_rtx): Likewise.
14449         * config/mips/mips.h (mips_tune_attr): Delete.
14450         * config/mips/mips.md (cpu): Use define_attr_enum.
14451
14452 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14453
14454         * doc/md.texi (define_c_enum, define_enum): Document.
14455         * read-md.h (md_constant): Add a parent_enum field.
14456         (enum_value, enum_type): New structures.
14457         (upcase_string, traverse_enum_types): Declare.
14458         * read-md.c (enum_types): New variable.
14459         (upcase_string, add_constant): New functions.
14460         (handle_constants): Don't create the hash table here.
14461         Use add_constant.
14462         (traverse_md_constants): Don't check for a null md_constants.
14463         (decimal_string, handle_enum, traverse_enum_types): New functions.
14464         (read_md_files): Initialize md_constants and md_enums.
14465         * genconstants.c (print_md_constant): Ignore info argument.
14466         Only print constants that belong to no enum.
14467         (print_enum_type): New function.
14468         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
14469         for each defined enum type.
14470         * config/mips/mips.md (processor): New define_enum.
14471         (unspec): New define_c_enum.
14472         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
14473         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
14474         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
14475         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
14476         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
14477         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
14478         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
14479         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
14480         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
14481         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
14482         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
14483         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
14484         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
14485         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
14486         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
14487         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
14488         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
14489         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
14490         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
14491         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
14492         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
14493         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
14494         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14495         (UNSPEC_RDDSP): Move to mips-dsp.md.
14496         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
14497         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
14498         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
14499         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
14500         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
14501         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
14502         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
14503         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
14504         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
14505         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
14506         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
14507         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
14508         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
14509         Moved to mips-dspr2.md.
14510         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
14511         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
14512         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
14513         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
14514         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
14515         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
14516         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14517         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14518         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14519         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
14520         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14521         UNSPEC_LOONGSON_PSADBH)
14522         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14523         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14524         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
14525         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14526         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14527         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14528         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
14529         (cpu): Update comment.
14530         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
14531         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
14532         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
14533         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
14534         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
14535         UNSPEC_LOONGSON_PCMPEQ)
14536         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
14537         UNSPEC_LOONGSON_PINSR_0)
14538         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14539         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14540         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14541         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
14542         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14543         UNSPEC_LOONGSON_PSADBH)
14544         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14545         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14546         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
14547         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14548         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14549         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14550         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
14551         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
14552         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
14553         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
14554         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
14555         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
14556         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
14557         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
14558         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
14559         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
14560         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
14561         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
14562         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
14563         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
14564         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
14565         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
14566         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
14567         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
14568         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
14569         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
14570         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14571         (UNSPEC_RDDSP): Moved from mips.md.
14572         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
14573         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
14574         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
14575         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
14576         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
14577         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
14578         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
14579         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
14580         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
14581         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
14582         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
14583         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
14584         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
14585         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
14586         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
14587         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
14588         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
14589         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
14590         (UNSPEC_SCC): Moved from mips.md.
14591         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
14592         "processor_type" to "processor".
14593         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
14594         * config/mips/mips.h (processor_type): Delete.
14595         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
14596         "processor_type" to "processor".
14597
14598 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14599
14600         * configure.ac (tm_include_list): Add insn-constants.h.
14601         * configure: Regenerate.
14602         * Makefile.in (GTM_H): Move insn-constants.h here from...
14603         (TM_H): ...here.
14604         * mkconfig.sh: Remove special handling for insn-constants.h.
14605
14606 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14607
14608         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
14609         (BUILD_MD): ...this new variable.
14610         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
14611         that include the old contents of simple_generated_h and
14612         simple_generated_c.
14613         (simple_generated_h, simple_generated_c): Include them.  Add
14614         insn-constants.h.
14615         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
14616         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
14617         Remove these dependencies from the main rule and include
14618         insn-conditions.md in the command line only if it appears
14619         in the dependency list.
14620         (insn-constants.h, s-constants): Delete.
14621         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
14622         or gensupport.h.
14623         (build/genmddeps.o): Likewise.
14624         (genprogrtl): New variable that contains everything from genprogmd
14625         except mddeps and constants.
14626         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
14627         depend on $(BUILD_MD)
14628         (genprog): New variable.  Make these programs depend on
14629         $(BUILD_ERRORS).
14630         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
14631         (main): Use read_md_files instead of init_rtx_reader_args.
14632         * genconstants.c: As for genmddeps.c.
14633         * read-md.h (read_skip_construct): Declare.
14634         * read-md.c (read_skip_construct): New function.
14635         (handle_file): Allow a null handle_directive, skipping the
14636         construct if so.
14637         (parse_include): Update the comment accordingly.
14638
14639 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14640
14641         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
14642         * genmddeps.c: Include read-md.h.
14643         (main): Call init_rtx_reader_args instead of init_md_reader_args.
14644         * genattr.c (main): Likewise.
14645         * genattrtab.c (main): Likewise.
14646         * genautomata.c (main): Likewise.
14647         * gencodes.c (main): Likewise.
14648         * genconditions.c (main): Likewise.
14649         * genconfig.c (main): Likewise.
14650         * genconstants.c (main): Likewise.
14651         * genemit.c (main): Likewise.
14652         * genextract.c (main): Likewise.
14653         * genflags.c (main): Likewise.
14654         * genopinit.c (main): Likewise.
14655         * genoutput.c (main): Likewise.
14656         * genpeep.c (main): Likewise.
14657         * genrecog.c (main): Likewise.
14658         * genpreds.c (main): Likewise.
14659         * gensupport.h (in_fname): Move to read-md.h.
14660         (init_md_reader_args_cb): Rename to...
14661         (init_rtx_reader_args_cb): ...this and return a bool.
14662         (init_md_reader_args): Rename to...
14663         (init_rtx_reader_args): ...this and return a bool.
14664         (include_callback): Move to read-md.h.
14665         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
14666         (file_name_list, first_dir_md_include): Move to read-md.c
14667         (first_bracket_include): Delete unused variable.
14668         (last_dir_md_include): Move to read-md.c.
14669         (process_include): Delete, moving code to read-md.c:handle_include.
14670         (process_rtx): Don't handle INCLUDE.
14671         (save_string): Delete.
14672         (rtx_handle_directive): New function.
14673         (init_md_reader_args_cb): Rename to...
14674         (init_rtx_reader_args_cb): ...this and return a boolean success value.
14675         Use read_md_args.
14676         (init_md_reader_args): Rename to...
14677         (init_rtx_reader_args): ...this and return a boolean success value.
14678         * rtl.def (INCLUDE): Delete.
14679         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
14680         argument.
14681         * read-rtl.c (read_conditions): Don't gobble ')' here.
14682         (read_mapping): Likewise.
14683         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
14684         Handle top-level non-rtx constructs here rather than in read_rtx_1.
14685         Store the whole queue in *X.  Remove call to init_md_reader.
14686         (read_rtx_1): Rename to...
14687         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
14688         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
14689         here.
14690         (read_nested_rtx): New function.  Handle (nil) here rather than
14691         in read_rtx_code.
14692         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
14693         gobble ')' here.
14694         * read-md.h (directive_handler_t): New type.
14695         (in_fname, include_callback): Moved from read-md.h.
14696         (read_constants, init_md_reader): Delete.
14697         (read_md_files): Declare.
14698         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
14699         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
14700         from gensupport.c.
14701         (read_constants): Rename to...
14702         (handle_constants): ...this.  Don't gobble ')' here.
14703         (handle_include, handle_file, handle_toplevel_file)
14704         (parse_include): New functions, mostly taken from gensupport.c.
14705         (init_md_reader): Subsume into...
14706         (read_md_files): ...this new function.
14707
14708 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14709
14710         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
14711         (unread_char): Decrement read_md_lineno after putting back '\n'.
14712         * read-md.c (fatal_with_file_and_line): Push back any characters
14713         that we decide not to add to the context.
14714         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
14715         fatal_expected_char in cases where '/' ends a line (for example).
14716         (read_name): Don't increment read_md_lineno here.
14717         (read_escape): Likewise.
14718         (read_quoted_string): Likewise.
14719         (read_braced_string): Likewise.
14720
14721 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14722
14723         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
14724         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
14725         * genconstants.c: Include read-md.h.
14726         * read-rtl.c (md_constants): Move to read-md.c.
14727         (md_name): Move to read-md.h.
14728         (initialize_iterators): Use leading_string_hash instead of def_hash
14729         and leading_string_eq_p instead of def_name_eq_p.
14730         (read_name): Move to read-md.c.
14731         (def_hash, def_name_eq_p): Delete.
14732         (read_constants, traverse_md_constants): Move to read-md.c.
14733         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
14734         * read-md.h: Include hashtab.h.
14735         (md_name): Moved from read-rtl.c.
14736         (md_constant): Moved from read-md.h.
14737         (leading_string_hash, leading_string_eq_p, read_name)
14738         (read_constants, traverse_md_constants): Declare.
14739         * read-md.c (md_constants): Moved from read-rtl.c.
14740         (leading_string_hash, leading_string_eq_p): New functions.
14741         (read_name, read_constants, traverse_md_constants): Moved from
14742         read-rtl.c.
14743
14744 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14745
14746         * read-rtl.c (md_name): New structure.
14747         (read_name): Take an md_name instead of a buffer pointer.
14748         Use the "string" field instead of strcpy when expanding constants.
14749         (read_constants): Remove the tmp_char argument.  Update the calls
14750         to read_name, using two local name buffers instead of the tmp_char
14751         argument.  Merge the constant-creation code.
14752         (read_conditions): Remove the tmp_char argument.  Update the calls
14753         to read_name, using a local name buffer instead of the tmp_char
14754         argument.
14755         (read_mapping): Replace tmp_char variable with a local name buffer.
14756         Update the calls to read_name.
14757         (read_rtx_1): Likewise.  Update the calls to read_constants and
14758         read_conditions.
14759
14760 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14761
14762         * Makefile.in (build/read-md.o): Depend on errors.h.
14763         * read-md.h (error_with_line): Declare.
14764         * read-md.c: Include errors.h.
14765         (message_with_line_1): New function, extracted from...
14766         (message_with_line): ...here.
14767         (error_with_line): New function.
14768         * genattrtab.c: If a call to message_with_line is followed by
14769         "have_error = 1;", replace both statements with a call to
14770         error_with_line.
14771         * genoutput.c: Likewise.
14772         * genpreds.c: Likewise.
14773         * genrecog.c: If a call to message_with_line is followed by
14774         "error_count++;", replace both statements with a call to
14775         error_with_line.
14776         (errorcount): Delete.
14777         (main): Don't check it.
14778         * gensupport.c: If a call to message_with_line is followed by
14779         "errors = 1;", replace both statements with a call to error_with_line.
14780         (errors): Delete.
14781         (process_define_cond_exec): Check have_error instead of errors.
14782         (init_md_reader_args_cb): Likewise.  Don't set errors.
14783
14784 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14785
14786         * read-md.h (read_md_file): Declare.
14787         (read_char, unread_char): New functions.
14788         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14789         (read_quoted_string, read_string): Remove FILE * argument.
14790         * read-md.c (read_md_file): New variable.
14791         (read_md_filename, read_md_lineno): Update comments and remove
14792         unnecessary initialization.
14793         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14794         (read_escape, read_quoted_string, read_braced_string, read_string):
14795         Remove FILE * argument.  Update calls accordingly, using read_char
14796         and unread_char instead of getc and ungetc.
14797         * rtl.h (read_rtx): Remove FILE * argument.
14798         * read-rtl.c (iterator_group): Remove FILE * argument from
14799         "find_builtin".
14800         (iterator_traverse_data): Remove "infile" field.
14801         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
14802         (add_mapping, read_name, read_constants, read_conditions)
14803         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
14804         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
14805         Remove file arguments from all calls, using read_char and unread_char
14806         instead of getc and ungetc.
14807         * gensupport.c (process_include): Preserve read_md_file around
14808         the include.  Set read_md_file to the handle of the included file.
14809         Update call to read_rtx.
14810         (init_md_reader_args_cb): Set read_md_file to the handle of the file
14811         and remove local FILE *.  Update calls to read_rtx.
14812
14813 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14814
14815         * read-md.h (read_rtx_lineno): Rename to...
14816         (read_md_lineno): ...this.
14817         (read_rtx_filename): Rename to...
14818         (read_md_filename): ...this.
14819         (copy_rtx_ptr_loc): Rename to...
14820         (copy_md_ptr_loc): ...this.
14821         (print_rtx_ptr_loc): Rename to...
14822         (print_md_ptr_loc): ...this.
14823         * read-md.c: Likewise.  Update references after renaming.
14824         (string_obstack): Replace RTL with MD in comment.
14825         (set_rtx_ptr_loc): Rename to...
14826         (set_md_ptr_loc): ...this.
14827         (get_rtx_ptr_loc): Rename to...
14828         (get_md_ptr_loc): ...this.
14829         * genconditions.c: Update references after renaming.
14830         * genemit.c: Likewise.
14831         * genoutput.c: Likewise.
14832         * genpreds.c: Likewise.
14833         * gensupport.c: Likewise.
14834         * read-rtl.c: Likewise.
14835
14836 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14837
14838         * Makefile.in (READ_MD_H): New variable.
14839         (BUILD_RTL): Add build/read-md.o.
14840         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
14841         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
14842         (build/genattrtab.o, build/genconditions.o build/genemit.o)
14843         (build/genextract.o, build/genflags.o, build/genoutput.o)
14844         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
14845         (build/read-md.o): New rule.
14846         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
14847         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
14848         * coretypes.h: ...here.
14849         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
14850         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
14851         * genattr.c: Include read-md.h.
14852         * genattrtab.c: Likewise.
14853         * genconditions.c: Likewise.
14854         * genemit.c: Likewise.
14855         * genextract.c: Likewise.
14856         * genflags.c: Likewise.
14857         * genoutput.c: Likewise.
14858         * genpreds.c: Likewise.
14859         * genrecog.c: Likewise.
14860         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
14861         (join_c_conditions, print_c_condition, read_rtx_filename)
14862         (read_rtx_lineno): Move to read-md.h.
14863         * read-rtl.c: Include read-md.h.
14864         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
14865         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
14866         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
14867         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
14868         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
14869         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
14870         (read_braced_string, read_string): Move to read-md.c.
14871         (read_rtx): Move some initialization to init_md_reader and call
14872         init_md_reader here.
14873         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
14874         Move to read-md.h.
14875         * gensupport.c: Include read-md.h.
14876         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
14877         * read-md.h, read-md.c: New files.
14878
14879 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
14880
14881         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14882         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14883         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
14884         * config/moxie/moxie.c (moxie_function_value): Make static.
14885         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
14886         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14887
14888 2010-06-10  Martin Jambor  <mjambor@suse.cz>
14889
14890         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
14891         * dbgcnt.def (tree_sra): New counter.
14892         * tree-sra.c: Include dbgcnt.h.
14893         (gate_intra_sra): Check tree_sra debug counter.
14894
14895 2010-06-10  Martin Jambor  <mjambor@suse.cz>
14896
14897         PR tree-optimization/44258
14898         * tree-sra.c (build_access_subtree): Return false iff there is a
14899         partial overlap.
14900         (build_access_trees): Likewise.
14901         (analyze_all_variable_accesses): Disqualify candidates if
14902         build_access_trees returns true for them.
14903
14904 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
14905
14906         PR debug/41371
14907         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
14908         tail-recurse into canonical node.  Fast-forward over
14909         non-canonical VALUEs.
14910
14911 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
14912
14913         PR boostrap/44470
14914         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
14915         (*addsi_1_zext) <TYPE_LEA>: Likewise.
14916         (add lea splitter): Likewise.
14917         (add_zext lea splitter): Likewise.
14918
14919 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
14920
14921         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
14922
14923 2010-06-10  Jan Hubicka  <jh@suse.cz>
14924
14925         * df-problems.c (df_live_problem_data): Add live_bitmaps.
14926         (df_live_alloc): Initialize problem data and live_osbtacks.
14927         (df_live_finalize): Remove obstack, problem data; do not
14928         clear all bitmaps.
14929         (df_live_top_dump, df_live_bottom_dump): Do not dump old
14930         data when not allocated.
14931         (df_live_verify_solution_start): Do not allocate problem data.
14932         (df_live_verify_solution_end): Check if out is allocated.
14933         (struct df_md_problem_data): New structure.
14934         (df_md_alloc): Allocate problem data.
14935         (df_md_free): Free problem data; do not clear bitmaps.
14936
14937 2010-06-10  Jan Beulich  <jbeulich@novell.com>
14938
14939         PR bootstrap/37304
14940         * configure.ac: Replace $() with ${} when intending to expand
14941         variables rather than invoking commands.
14942         * configure: Re-generate.
14943
14944 2010-06-10  Jan Hubicka  <jh@suse.cz>
14945
14946         PR rtl-optimization/44460
14947         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
14948         TYPE_NEEDS_CONSTRUCTING sanity check.
14949
14950 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
14951
14952         * doc/include/fdl.texi: Move to GFDL version 1.3.
14953
14954         * doc/cpp.texi: Move to GFDL version 1.3.
14955         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
14956         * doc/gccint.texi: Move to GFDL version 1.3.
14957         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
14958         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
14959         * doc/invoke.texi: Move to GFDL version 1.3.
14960
14961 2010-06-09  Jan Hubicka  <jh@suse.cz>
14962
14963         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
14964         Break out from ...
14965         (propagate) ... here; swap the order.
14966
14967 2010-06-09  Jan Hubicka  <jh@suse.cz>
14968
14969         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
14970         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
14971         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
14972         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
14973
14974 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
14975
14976         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
14977         Do not the gather memory reference in the outer loop if the step
14978         is not a constant.
14979
14980 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
14981
14982         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
14983         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
14984         8 to 4.  Minor change of the related comments.
14985
14986 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
14987
14988         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
14989         the scev analysis when the variable is not used outside the loop
14990         in a close phi node: call compute_overall_effect_of_inner_loop.
14991
14992 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
14993
14994         * graphite-sese-to-poly.c (single_pred_cond): Renamed
14995         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
14996         (build_sese_conditions_before): Renamed call to single_pred_cond.
14997         (build_sese_conditions_after): Same.
14998
14999 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
15000
15001         * graphite-poly.h: Fix comments and indentation.
15002         * graphite-sese-to-poly.c: Same.
15003         (build_sese_conditions_before): Compute stmt and gbb only when needed.
15004         * tree-chrec.c: Fix comments and indentation.
15005         (tree-ssa-loop-niter.c): Same.
15006
15007 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
15008
15009         PR rtl-optimization/42461
15010         * dce.c (deletable_insn_p): Return true for const or pure calls again.
15011         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
15012
15013 2010-06-09  Jan Hubicka  <jh@suse.cz>
15014
15015         * bitmap.c (bitmap_and): Walk array forward.
15016         (bitmap_and_compl_into): Likewise.
15017         (bitmap_xor): Likewise.
15018         (bitmap_xor_into):  Likewise.
15019         (bitmap_equal_p): Likewise.
15020         (bitmap_intersect_p): Likewise.
15021         (bitmap_intersect_compl_p): Likewise.
15022         (bitmap_ior_and_into): Likewise.
15023         (bitmap_elt_copy): Likewise.
15024         (bitmap_and_compl): Likewise.
15025         (bitmap_elt_ior): Likewise.
15026
15027 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
15028
15029         * opts-common.c (prune_options): Ensure replacement argv array
15030         is correctly terminated by a NULL entry.
15031
15032 2010-06-09  Jan Hubicka  <jh@suse.cz>
15033
15034         * cgraph.h (varpool_first_static_initializer,
15035         varpool_next_static_initializer): Make checking only when
15036         checking enabled.
15037         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
15038         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
15039         gcc_assert to gcc_checking_assert.
15040         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
15041         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
15042         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
15043         op_iter_init_phiuse, op_iter_init_phidef,
15044         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
15045         gcc_checking_assert.
15046         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
15047         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
15048         partition_is_global, live_on_entry, live_on_exit,
15049         live_merge_and_clear): Likewise.
15050         * system.h (gcc_checking_assert): New macro.
15051         * gimple.h (set_bb_seq): Use gcc_checking_assert.
15052
15053 2010-06-09  Jason Merrill  <jason@redhat.com>
15054
15055         * Makefile.in (TAGS): Collect tags info from c-family.
15056
15057 2010-06-09  Jan Hubicka  <jh@suse.cz>
15058
15059         * gimple.h (gcc_gimple_checking_assert): New macro.
15060         (gimple_set_def_ops, gimple_set_use_ops,
15061         gimple_set_vuse, gimple_set_vdef,
15062         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
15063         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
15064         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
15065         gimple_asm_output_op, gimple_asm_output_op_ptr,
15066         gimple_asm_set_output_op, gimple_asm_clobber_op,
15067         gimple_asm_set_clobber_op, gimple_asm_label_op,
15068         gimple_asm_set_label_op, gimple_try_set_kind,
15069         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
15070         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
15071         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
15072         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
15073         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
15074         gimple_omp_for_set_initial, gimple_omp_for_final,
15075         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
15076         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
15077         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
15078         conditional with ENABLE_GIMPLE_CHECKING.
15079         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
15080
15081 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
15082
15083         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
15084         (get_computation_cost_at): Use it.
15085         (determine_use_iv_cost_condition): Likewise.
15086         (determine_iv_cost): Likewise.
15087
15088 2010-06-09  Richard Guenther  <rguenther@suse.de>
15089
15090         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
15091         replace constants.
15092
15093 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
15094
15095         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
15096
15097 2010-06-09  Martin Jambor  <mjambor@suse.cz>
15098
15099         PR tree-optimization/44423
15100         * tree-sra.c (dump_access): Dump also grp_assignment_read.
15101         (analyze_access_subtree): Pass negative allow_replacements to children
15102         if the current type is scalar.
15103
15104 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15105
15106         PR testsuite/42843
15107         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
15108         * doc/plugins.texi (Plugin license check): Update information
15109         on type of plugin_is_GPL_compatible.
15110         * Makefile.in (PLUGINCC): Define as $(COMPILER).
15111         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
15112
15113 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
15114
15115         * config/arm/arm.c (thumb2_reorg): New function.
15116         (arm_reorg): Call it.
15117         * config/arm/thumb2.md (define_peephole2 for flag clobbering
15118         arithmetic operations): Delete.
15119
15120 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
15121
15122         PR target/44067
15123         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
15124         e500v2 target.
15125
15126 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15127
15128         PR plugins/44459
15129         * gcc-plugin.h: Encapsulate all declarations in extern "C".
15130
15131 2010-06-08  Jan Hubicka  <jh@suse.cz>
15132
15133         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
15134         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
15135
15136 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
15137
15138         PR tree-optimization/39874
15139         PR middle-end/28685
15140         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
15141         Declare.
15142         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
15143         same_bool_result_p): New.
15144         (and_var_with_comparison, and_var_with_comparison_1,
15145         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
15146         (or_var_with_comparison, or_var_with_comparison_1,
15147         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
15148         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
15149         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
15150         of combine_comparisons.
15151         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
15152
15153 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
15154
15155         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15156         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15157         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
15158         pdp11_function_value_regno_p): New functions.
15159         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15160         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15161
15162 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
15163
15164         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
15165         Thumb-2 in the MINUS case.
15166
15167 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15168
15169         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
15170
15171         * doc/gty.texi (GTY Options): Document typed GC allocation and
15172         variable_size GTY option.
15173
15174         * ggc-internal.h: New.
15175
15176         * ggc.h: Update copyright year.
15177         (digit_string): Move to stringpool.c.
15178         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
15179         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
15180         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
15181         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
15182         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
15183         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
15184         (ggc_force_collect, ggc_get_size, ggc_statistics)
15185         (ggc_print_common_statistics): Move to ggc-internal.h.
15186         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
15187         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
15188         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
15189         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
15190         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
15191         (ggc_alloc_zone_pass_stat): Remove.
15192         (ggc_internal_alloc_stat, ggc_internal_alloc)
15193         (ggc_internal_cleared_alloc_stat): New.
15194         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
15195         (ggc_internal_vec_alloc_stat)
15196         (ggc_internal_cleared_vec_alloc_stat)
15197         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
15198         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
15199         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
15200         (ggc_cleared_alloc_ptr_array_two_args): New.
15201         (htab_create_ggc, splay_tree_new_ggc): Redefine.
15202         (ggc_splay_alloc): Change the type of the first argument to
15203         enum gt_types_enum.
15204         (ggc_alloc_string): Make macro.
15205         (ggc_alloc_string_stat): New.
15206         (ggc_strdup): Redefine.
15207         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
15208         (ggc_alloc_rtvec_sized): New.
15209         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
15210         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
15211         (ggc_internal_cleared_alloc_zone_stat)
15212         (ggc_internal_zone_alloc_stat)
15213         (ggc_internal_zone_cleared_alloc_stat)
15214         (ggc_internal_zone_vec_alloc_stat)
15215         (ggc_alloc_zone_rtx_def_stat)
15216         (ggc_alloc_zone_tree_node_stat)
15217         (ggc_alloc_zone_cleared_tree_node_stat)
15218         (ggc_alloc_cleared_gimple_statement_d_stat): New.
15219
15220         * ggc-common.c: Include ggc-internal.h.
15221         (ggc_internal_cleared_alloc_stat): Rename from
15222         ggc_alloc_cleared_stat.
15223         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
15224         (ggc_calloc): Remove.
15225         (ggc_cleared_alloc_htab_ignore_args): New.
15226         (ggc_cleared_alloc_ptr_array_two_args): New.
15227         (ggc_splay_alloc): Add obj_type parameter.
15228         (init_ggc_heuristics): Formatting fixes.
15229
15230         * ggc-none.c: Update copyright year.
15231         (ggc_alloc_stat): Rename to ggc_alloc_stat.
15232         (ggc_alloc_cleared_stat): Rename to
15233         ggc_internal_cleared_alloc_stat.
15234         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15235
15236         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
15237         Remove references to ggc_alloc in comments.
15238         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
15239         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
15240         (new_ggc_zone, destroy_ggc_zone): Remove.
15241         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15242
15243         * ggc-zone.c: Include ggc-internal.h.  Remove references to
15244         ggc_alloc in comments.
15245         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
15246         (ggc_internal_alloc_zone_pass_stat): New.
15247         (ggc_internal_cleared_alloc_zone_stat): New.
15248         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
15249         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
15250         (new_ggc_zone, destroy_ggc_zone): Remove.
15251
15252         * stringpool.c: Update copyright year.  Include ggc-internal.h
15253         (digit_vector): Make static.
15254         (digit_string): Moved from ggc.h.
15255         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
15256         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
15257
15258         * Makefile.in (GGC_INTERNAL_H): New.
15259         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
15260         $(GGC_INTERNAL_H) to dependencies.
15261
15262         * gentype.c: Update copyright year.
15263         (walk_type): Accept variable_size GTY option.
15264         (USED_BY_TYPED_GC_P): New macro.
15265         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
15266         whitespace at the end of strings.
15267         (get_type_specifier, variable_size_p): New functions.
15268         (alloc_quantity, alloc_zone): New enums.
15269         (write_typed_alloc_def): New function.
15270         (write_typed_struct_alloc_def): Likewise.
15271         (write_typed_typed_typedef_alloc_def): Likewise.
15272         (write_typed_alloc_defns): Likewise.
15273         (output_typename, write_splay_tree_allocator_def): Likewise.
15274         (write_splay_tree_allocators): Likewise.
15275         (main): Call write_typed_alloc_defns and
15276         write_splay_tree_allocators.
15277
15278         * lto-streamer.h (lto_file_decl_data_ptr): New.
15279
15280         * passes.c (order): Define using cgraph_node_ptr.
15281
15282         * strinpool.c (struct string_pool_data): Declare nested_ptr using
15283         ht_identifier_ptr.
15284
15285         * gimple.h (union gimple_statement_d): Likewise.
15286
15287         * rtl.h (struct rtx_def): Likewise.
15288         (struct rtvec_def): Likewise.
15289
15290         * tree.h (union tree_node): Likewise.
15291
15292         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
15293
15294         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
15295
15296         * tree-scalar-evolution.c (scev_initialize): Likewise.
15297
15298         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
15299
15300         * dwarf2asm.c (dw2_force_const_mem): Likewise.
15301
15302         * omp-low.c (lower_omp_critical): Likewise.
15303
15304         * bitmap.h (struct bitmap_head_def): Update comment to not
15305         reference ggc_alloc.
15306
15307         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
15308
15309         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
15310
15311         * ipa-prop.c (duplicate_ggc_array): Rename to
15312         duplicate_ipa_jump_func_array.  Use typed GC allocation.
15313         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
15314
15315         * gimple.c (gimple_alloc_stat): Use
15316         ggc_alloc_cleared_gimple_statement_d_stat.
15317
15318         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
15319
15320         * tree.c (make_node_stat): Use
15321         ggc_alloc_zone_cleared_tree_node_stat.
15322         (make_tree_vec_stat): Likewise.
15323         (build_vl_exp_stat): Likewise.
15324         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
15325         (make_tree_binfo_stat): Likewise.
15326         (tree_cons_stat): Likewise.
15327
15328         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
15329         (shallow_copy_rtx_stat): Likewise.
15330         (make_node_stat): Likewise.
15331
15332         * lto-symtab.c: Fix comment.
15333
15334         * tree-cfg.c (create_bb): Update comment to not reference
15335         ggc_alloc_cleared.
15336         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
15337
15338         * varpool.c (varpool_node): Use typed GC allocation.
15339         (varpool_extra_name_alias): Likewise.
15340
15341         * varasm.c (emutls_decl): Likewise.
15342         (get_unnamed_section): Likewise.
15343         (get_noswitch_section): Likewise.
15344         (get_section): Likewise.
15345         (get_block_for_section): Likewise.
15346         (build_constant_desc): Likewise.
15347         (create_constant_pool): Likewise.
15348         (force_const_mem): Likewise.
15349
15350         * tree.c (build_vl_exp_stat): Likewise.
15351         (build_real): Likewise.
15352         (build_string): Likewise.
15353         (decl_debug_expr_insert): Likewise.
15354         (decl_value_expr_insert): Likewise.
15355         (type_hash_add): Likewise.
15356         (build_omp_clause): Likewise.
15357
15358         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
15359
15360         * tree-ssa.c (init_tree_ssa): Likewise.
15361
15362         * tree-ssa-structalias.c (heapvar_insert): Likewise.
15363
15364         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
15365
15366         * tree-ssa-loop-niter.c (record_estimate): Likewise.
15367
15368         * tree-ssa-alias.c (get_ptr_info): Likewise.
15369
15370         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
15371
15372         * tree-phinodes.c (allocate_phi_node): Likewise.
15373
15374         * tree-iterator.c (tsi_link_before): Likewise.
15375         (tsi_link_after): Likewise.
15376
15377         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
15378
15379         * tree-dfa.c (create_var_ann): Likewise.
15380
15381         * tree-cfg.c (create_bb): Likewise.
15382
15383         * toplev.c (alloc_for_identifier_to_locale): Likewise.
15384         (general_init): Likewise.
15385
15386         * stringpool.c (stringpool_ggc_alloc): Likewise.
15387         (gt_pch_save_stringpool): Likewise.
15388
15389         * sese.c (if_region_set_false_region): Likewise.
15390
15391         * passes.c (do_per_function_toporder): Likewise.
15392
15393         * optabs.c (set_optab_libfunc): Likewise.
15394         (set_conv_libfunc): Likewise.
15395
15396         * lto-symtab.c (lto_symtab_register_decl): Likewise.
15397
15398         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
15399         (input_eh_region): Likewise.
15400         (input_eh_lp): Likewise.
15401         (make_new_block): Likewise.
15402         (unpack_ts_real_cst_value_fields): Likewise.
15403
15404         * lto-section-in.c (lto_new_in_decl_state): Likewise.
15405
15406         * lto-cgraph.c (input_node_opt_summary): Likewise.
15407
15408         * loop-init.c (loop_optimizer_init): Likewise.
15409
15410         * lambda.h (lambda_vector_new): Likewise.
15411
15412         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
15413
15414         * ira.c (update_equiv_regs): Likewise.
15415
15416         * ipa.c (cgraph_node_set_new): Likewise.
15417         (cgraph_node_set_add): Likewise.
15418         (varpool_node_set_new): Likewise.
15419         (varpool_node_set_add): Likewise.
15420
15421         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
15422         (duplicate_ipa_jump_func_array): Likewise.
15423         (ipa_read_node_info): Likewise.
15424
15425         * ipa-cp.c (ipcp_create_replace_map): Likewise.
15426
15427         * integrate.c (get_hard_reg_initial_val): Likewise.
15428
15429         * gimple.c (gimple_alloc_stat): Likewise.
15430         (gimple_build_omp_for): Likewise.
15431         (gimple_seq_alloc): Likewise.
15432         (gimple_copy): Likewise.
15433
15434         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
15435         (gsi_insert_after_without_update): Likewise.
15436
15437         * function.c (add_frame_space): Likewise.
15438         (insert_temp_slot_address): Likewise.
15439         (assign_stack_temp_for_type): Likewise.
15440         (allocate_struct_function): Likewise.
15441         (types_used_by_var_decl_insert): Likewise.
15442
15443         * except.c (init_eh_for_function): Likewise.
15444         (gen_eh_region): Likewise.
15445         (gen_eh_region_catch): Likewise.
15446         (gen_eh_landing_pad): Likewise.
15447         (add_call_site): Likewise.
15448
15449         * emit-rtl.c (get_mem_attrs): Likewise.
15450         (get_reg_attrs): Likewise.
15451         (start_sequence): Likewise.
15452         (init_emit): Likewise.
15453
15454         * dwarf2out.c (new_cfi): Likewise.
15455         (queue_reg_save): Likewise.
15456         (dwarf2out_frame_init): Likewise.
15457         (new_loc_descr): Likewise.
15458         (find_AT_string): Likewise.
15459         (new_die): Likewise.
15460         (add_var_loc_to_decl): Likewise.
15461         (clone_die): Likewise.
15462         (clone_as_declaration): Likewise.
15463         (break_out_comdat_types): Likewise.
15464         (new_loc_list): Likewise.
15465         (loc_descriptor): Likewise.
15466         (add_loc_descr_to_each): Likewise.
15467         (add_const_value_attribute): Likewise.
15468         (tree_add_const_value_attribute): Likewise.
15469         (add_comp_dir_attribute): Likewise.
15470         (add_name_and_src_coords_attributes): Likewise.
15471         (lookup_filename): Likewise.
15472         (store_vcall_insn): Likewise.
15473         (dwarf2out_init): Likewise.
15474
15475         * dbxout.c (dbxout_init): Likewise.
15476
15477         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15478
15479         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15480
15481         * config/score/score7.c (score7_output_external): Likewise.
15482
15483         * config/score/score3.c (score3_output_external): Likewise.
15484
15485         * config/s390/s390.c (s390_init_machine_status): Likewise.
15486
15487         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
15488         (rs6000_init_machine_status): Likewise.
15489         (output_toc): Likewise.
15490
15491         * config/pa/pa.c (pa_init_machine_status): Likewise.
15492         (get_deferred_plabel): Likewise.
15493
15494         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
15495
15496         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
15497
15498         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
15499
15500         * config/mep/mep.c (mep_init_machine_status): Likewise.
15501         (mep_note_pragma_flag): Likewise.
15502
15503         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
15504
15505         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
15506
15507         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
15508
15509         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
15510         (i386_pe_maybe_record_exported_symbol): Likewise.
15511
15512         * config/i386/i386.c (get_dllimport_decl): Likewise.
15513         (ix86_init_machine_status): Likewise.
15514         (assign_386_stack_local): Likewise.
15515
15516         * config/frv/frv.c (frv_init_machine_status): Likewise.
15517
15518         * config/darwin.c (machopic_indirection_name): Likewise.
15519
15520         * config/cris/cris.c (cris_init_machine_status): Likewise.
15521
15522         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
15523
15524         * config/avr/avr.c (avr_init_machine_status): Likewise.
15525
15526         * config/arm/arm.c (arm_init_machine_status): Likewise.
15527
15528         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
15529         (alpha_need_linkage): Likewise.
15530         (alpha_use_linkage): Likewise.
15531
15532         * cgraph.c (cgraph_allocate_node): Likewise.
15533         (cgraph_create_edge_1): Likewise.
15534         (cgraph_create_indirect_edge): Likewise.
15535         (cgraph_add_asm_node): Likewise.
15536
15537         * cfgrtl.c (init_rtl_bb_info): Likewise.
15538
15539         * cfgloop.c (alloc_loop): Likewise.
15540         (rescan_loop_exit): Likewise.
15541
15542         * cfg.c (init_flow): Likewise.
15543         (alloc_block): Likewise.
15544         (unchecked_make_edge): Likewise.
15545
15546         * c-parser.c (c_parse_init): Likewise.
15547         (c_parse_file): Likewise.
15548
15549         * c-decl.c (bind): Likewise.
15550         (record_inline_static): Likewise.
15551         (push_scope): Likewise.
15552         (make_label): Likewise.
15553         (lookup_label_for_goto): Likewise.
15554         (finish_struct): Likewise.
15555         (finish_enum): Likewise.
15556         (c_push_function_context): Likewise.
15557
15558         * bitmap.c (bitmap_element_allocate): Likewise.
15559         (bitmap_gc_alloc_stat): Likewise.
15560
15561         * alias.c (record_alias_subset): Likewise.
15562         (init_alias_analysis): Likewise.
15563
15564 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
15565
15566         * fold-const.c (fold_comparison): Remove redundant parenthesis.
15567         * tree-inline.c (expand_call_inline): Pass translated return value of
15568         cgraph_inline_failed_string to diagnostic function.
15569
15570 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
15571             Shujing Zhao  <pearly.zhao@oracle.com>
15572
15573         PR c/37724
15574         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
15575         implicit bad conversions is initialization.
15576         (error_init): Use gmsgid instead of msgid for argument name and change
15577         the call for error.
15578         (pedwarn_init): Use gmsgid instead of msgid for argument name and
15579         change the call for pedwarn.
15580         (warning_init): Use gmsgid instead of msgid for argument name and
15581         change the call for warning.
15582
15583 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
15584
15585         * config/mips/mips-protos.h (mips_print_operand): Delete.
15586         (mips_print_operand_address): Delete.
15587         * config/mips/mips.h (mips_print_operand_punct): Delete.
15588         (PRINT_OPERAND): Delete.
15589         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15590         (PRINT_OPERAND_ADDRESS): Delete.
15591         * config/mips/mips.c (mips_print_operand_punct): Make static.
15592         (mips_print_operand_address): Make static.
15593         (mips_print_operand): Make static.  Call
15594         mips_print_operand_punct_valid_p.
15595         (mips_print_operand_punct_valid_p): New function.
15596         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15597         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15598
15599 2010-06-07  Jan Hubicka  <jh@suse.cz>
15600
15601         PR middle-end/44454
15602         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
15603         are allocated.
15604
15605 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
15606
15607         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
15608         name of RECORD.
15609
15610 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15611
15612         * doc/sourcebuild.texi (Effective-Target Keywords, Other
15613         attributes): Document gas.
15614
15615 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
15616
15617         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
15618         <TYPE_LEA>: Split instruction.
15619         <default>: Remove alternative 2 handling.
15620         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
15621         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
15622         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
15623
15624         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
15625         (ashift_zext lea splitter): Use DImode for multiplication.
15626
15627         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
15628         to generate addition.
15629
15630 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
15631
15632         * common.opt (fira-verbose): Use Var.
15633         (fpcc-struct-return): Use Init instead of VarExists.
15634         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
15635         toplev.c.
15636         * flags.h (flag_signed_char, flag_short_enums,
15637         flag_pcc_struct_return, flag_ira_verbose,
15638         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
15639         * toplev.c (flag_detailed_statistics, flag_signed_char,
15640         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
15641         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
15642         * toplev.h (flag_crossjumping, flag_if_conversion,
15643         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
15644         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
15645         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
15646         flag_cprop_registers, time_report, flag_ira_loop_pressure,
15647         flag_ira_coalesce, flag_ira_move_spills,
15648         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
15649
15650 2010-06-07  Jan Hubicka  <jh@suse.cz>
15651
15652         * df-core.c (df_analyze_problem): Do verification after allocation.
15653
15654         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
15655         (df_lr_alloc): Initialize problem data; move bitmaps to
15656         lr_bitmaps obstack.
15657         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
15658         (df_lr_verify_solution_start): Do not initialize problem data;
15659         allocate bitmaps in lr_bitmaps.
15660         (df_lr_verify_solution_end): Do not free problem data.
15661
15662 2010-06-07  Jan Hubicka  <jh@suse.cz>
15663
15664         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
15665         if caller is noreturn.
15666         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
15667         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
15668         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
15669         * ipa-pure-const.c (check_decl): Add IPA parameter.
15670         (state_from_flags): New function.
15671         (better_state, worse_state): New functions.
15672         (check_call): When in IPA mode, do not care about callees.
15673         (check_load, check_store): Update.
15674         (check_ipa_load, check_ipa_store): New.
15675         (check_stmt): When in IPA mode, use IPA checkers.
15676         (analyze_function): Use state_from_flags.
15677         (propagate): Check indirect edges and references.
15678
15679 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
15680
15681         PR rtl-optimization/44404
15682         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
15683         of count_occurrences to see if it's safe to modify mem_insn.
15684
15685 2010-06-07  Richard Guenther  <rguenther@suse.de>
15686
15687         * gimplify.c (gimplify_cleanup_point_expr): For empty body
15688         and EH-only cleanup drop the cleanup instead of inserting it
15689         unconditionally.
15690
15691 2010-06-07  Ira Rosen  <irar@il.ibm.com>
15692
15693         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
15694         documentation.
15695         * targhooks.c (default_builtin_vectorization_cost): New function.
15696         * targhooks.h (default_builtin_vectorization_cost): Declare.
15697         * target.h (enum vect_cost_for_stmt): Define.
15698         (builtin_vectorization_cost): Change argument and comment.
15699         * tree-vectorizer.h: Remove cost model macros.
15700         * tree-vect-loop.c: Include target.h.
15701         (vect_get_cost): New function.
15702         (vect_estimate_min_profitable_iters): Replace cost model macros with
15703         calls to vect_get_cost.
15704         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
15705         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
15706         default implementation.
15707         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
15708         calls to target hook builtin_vectorization_cost.
15709         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
15710         Likewise.
15711         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
15712         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
15713         implementation to return costs.
15714         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
15715         * config/spu/spu.h: Remove vectorizer cost model macros.
15716         * config/i386/i386.h: Likewise.
15717         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
15718         a call to target hook builtin_vectorization_cost.
15719
15720 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
15721
15722         PR target/44319
15723         * config/i386/i386.c (override_options): Turn zee pass on for level 2
15724         and above and defer till target is known.
15725         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
15726         turn off otherwise.
15727
15728 2010-05-25  Jan Hubicka  <jh@suse.cz>
15729
15730         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
15731         (df_compact_blocks): Likewise.
15732         * df.h (struct df): Turn hardware_regs_used,
15733         regular_block_artificial_uses, eh_block_artificial_uses,
15734         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
15735         bitmap_head.
15736         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
15737         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
15738         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
15739         df_scan_blocks, df_insn_delete, df_insn_rescan,
15740         df_insn_rescan_debug_internal, df_insn_rescan_all,
15741         df_process_deferred_rescans, df_process_deferred_rescans,
15742         df_notes_rescan, df_get_call_refs, df_get_call_refs,
15743         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
15744         df_record_entry_block_defs, df_record_exit_block_uses,
15745         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
15746         df_scan_verify): Update.
15747
15748 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15749
15750         PR c++/44188
15751         * c-common.c (is_typedef_decl): Move this definition ...
15752         * tree.c (is_typedef_decl): ... here.
15753         (typdef_variant_p): Move definition here from cp/tree.c.
15754         * c-common.h (is_typedef_decl): Move this declaration ...
15755         * tree.h (is_typedef_decl): ... here.
15756         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15757         * dwarf2out.c (is_naming_typedef_decl): New function.
15758         (gen_tagged_type_die): Split out of ...
15759         (gen_type_die_with_usage): ... this function. When an anonymous
15760         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15761         is emitted for the typedef.
15762         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15763         anonymous tagged types.
15764
15765 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15766
15767         PR c/20000
15768         * c-decl.c (grokdeclarator): Delete warning.
15769
15770 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
15771
15772         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
15773         newly built CALL_EXPR.
15774         * tree-profile.c (tree_profiling): Don't profile functions produced
15775         for built-in stuff.
15776
15777 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
15778
15779         PR bootstrap/44427
15780         PR bootstrap/44428
15781         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
15782         endianness-independent.
15783
15784 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
15785
15786         * c-common.c: Move to c-family/.
15787         * c-common.def: Likewise.
15788         * c-common.h: Likewise.
15789         * c-cppbuiltin.c: Likewise.
15790         * c-dump.c: Likewise.
15791         * c-format.c: Likewise.
15792         * c-format.h : Likewise.
15793         * c-gimplify.c: Likewise.
15794         * c-lex.c: Likewise.
15795         * c-omp.c: Likewise.
15796         * c.opt: Likewise.
15797         * c-opts.c: Likewise.
15798         * c-pch.c: Likewise.
15799         * c-ppoutput.c: Likewise.
15800         * c-pragma.c: Likewise.
15801         * c-pragma.h: Likewise.
15802         * c-pretty-print.c: Likewise.
15803         * c-pretty-print.h: Likewise.
15804         * c-semantics.c: Likewise.
15805         * stub-objc.c: Likewise.
15806
15807         * gengtype.c (get_file_langdir): Special-case files in c-family/.
15808         (get_output_file_with_visibility): Fix name for c-common.h.
15809         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
15810
15811         * c-tree.h: Update include path for moved files.
15812         * c-lang.c: Likewise.
15813         * c-lang.h: Likewise.
15814         * c-parser.c: Likewise.
15815         * c-convert.c: Likewise.
15816         * c-decl.c: Likewise.
15817         * c-objc-common.c: Likewise.
15818         * configure.ac: Make sure c-family/ exists in the build directory.
15819         * configure: Regenerate.
15820         * Makefile.in: Update paths for moved files.  Regroup files per
15821         location and update dependencies.  Move generated_files down after
15822         ALL_GTFILES_H.
15823
15824         * config/spu/spu-c.c: Update paths for moved files.
15825         * config/mep/mep-pragma.c: Likewise.
15826         * config/darwin-c.c: Likewise.
15827         * config/i386/msformat-c.c: Likewise.
15828         * config/i386/i386-c.c: Likewise.
15829         * config/avr/avr-c.c: Likewise.
15830         * config/sol2-c.c: Likewise.
15831         * config/ia64/ia64-c.c: Likewise.
15832         * config/rs6000/rs6000-c.c: Likewise.
15833         * config/arm/arm.c: Likewise.
15834         * config/arm/arm-c.c: Likewise.
15835         * config/h8300/h8300.c: Likewise.
15836         * config/v850/v850-c.c: Likewise.
15837
15838         * config/t-darwin: Fix dependencies for moved files.
15839         * config/t-sol2: Fix dependencies for moved files.
15840         * config/mep/t-mep: Fix dependencies for moved files.
15841         * config/ia64/t-ia64: Fix dependencies for moved files.
15842         * config/rs6000/t-rs6000: Fix dependencies for moved files.
15843         * config/v850/t-v850: Fix dependencies for moved files.
15844         * config/v850/t-v850e: Fix dependencies for moved files.
15845
15846         * config/m32c/m32c-pragma.c
15847
15848         * po/exgettext: Look in c-family/ also.
15849
15850 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
15851
15852         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
15853         (mark_control_dependent_edges_necessary): Call it instead of marking
15854         the last statement manually.
15855         (propagate_necessity): Likewise.
15856
15857 2010-06-05  Jan Hubicka  <jh@suse.cz>
15858
15859         * basic-block.h (compute_dominance_frontiers): Updated.
15860         (compute_idf): Likewise.
15861
15862         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
15863         for dominance frontiers.
15864         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
15865         (insert_updated_phi_nodes_for): Likewise.
15866         (update_ssa): Likewise.
15867         * cfganal.c (compute_dominance_frontiers_1): Likewise.
15868         (compute_dominance_frontiers): Likewise.
15869         (compute_idf): Likewise.
15870         * df-problems.c (df_md_local_compute): Likewise.
15871
15872 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
15873
15874         * target.h (struct gcc_target): Add memory_move_cost field.
15875         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
15876         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
15877         * targhooks.c (default_memory_move_cost): New function.
15878         * targhooks.h (default_memory_move_cost): Declare function.
15879         * reload.h (memory_move_cost): Declare.
15880         (memory_move_secondary_cost): Change type of 'in' argument to bool.
15881         * reginfo.c (memory_move_cost): New function.
15882         (memory_move_secondary_cost): Change type of 'in' argument to bool.
15883         * ira.h (ira_memory_move_cost): Update comment.
15884         * ira.c (ira_memory_move_cost): Update comment.
15885         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
15886         with memory_move_cost.
15887         * postreload.c (reload_cse_simplify_set): (Ditto.).
15888         * reload1.c (choose_reload_regs): (Ditto.).
15889         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
15890         (MEMORY_MOVE_COST):  Revise documentation.
15891
15892         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
15893         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
15894         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
15895         type of 'in' argument to bool.
15896         (TARGET_MEMORY_MOVE_COST): Define.
15897
15898 2010-06-05  Jan Hubicka  <jh@suse.cz>
15899
15900         * ipa-pure-const.c (propagate): Fix typo in handling of functions
15901         that cannot return.  Be more careful when merging the results with
15902         previously known ones.
15903
15904 2010-06-05  Matthias Klose  <doko@ubuntu.com>
15905
15906         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
15907         function to add the -iplugindir option.
15908         (find_plugindir_spec_function): Add new declaration and function.
15909         (static_spec_func): Use it for "find-plugindir".
15910
15911 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
15912
15913         PR c++/44361
15914         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
15915         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
15916         statement expression.
15917
15918 2010-06-05  Jan Hubicka  <jh@suse.cz>
15919
15920         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
15921         (df_rd_problem_data): Convert sparse_invalidated_by_call,
15922         dense_invalidated_by_call to bitmap head.
15923         (df_rd_alloc, df_rd_bb_local_compute_process_def,
15924         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
15925         df_rd_start_dump, df_lr_verify_transfer_functions,
15926         df_live_verify_transfer_functions, df_chain_create_bb,
15927         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
15928         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
15929         df_simulate_one_insn_forwards, df_md_alloc,
15930         df_md_bb_local_compute_process_def,
15931         df_md_bb_local_compute_process_def, df_md_local_compute,
15932         df_md_transfer_function df_md_free): Update.
15933
15934 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
15935
15936         PR c/44322
15937         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
15938         target type for ADDR_EXPR; require no changes to qualifiers except
15939         for function types.
15940         * c-tree.h (c_build_type_variant): Remove.
15941
15942 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
15943
15944         * genautomata.c (get_excl_set): Do work per element, not per char.
15945         (check_presence_pattern_sets): Similar.
15946         (check_absence_pattern_sets): Similar.
15947
15948 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
15949
15950         * genautomata.c (curr_state_pass_num): Delete.
15951         (min_issue_delay_pass_states): Delete.
15952         (min_issue_delay): Delete.
15953         (initiate_min_issue_delay_pass_states): Delete.
15954         (output_min_issue_delay_table): Compute min_issue_delay_vect
15955         using a breadth-first search variant.
15956         (output_tables): Don't call initiate_min_issue_delay_pass_states.
15957
15958 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
15959
15960         PR boostrap/44421
15961         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
15962         (df_byte_lr_bb_local_compute): Likewise.
15963
15964 2010-06-03  Jason Merrill  <jason@redhat.com>
15965
15966         Implement noexcept operator (5.3.7)
15967         * c-common.c (c_common_reswords): Add noexcept.
15968         * c-common.h (enum rid): Add RID_NOEXCEPT.
15969
15970 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
15971
15972         * config/darwin-driver.c (darwin_default_min_version): Use
15973         GCC-specific formats in diagnostics.
15974         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
15975         diagnostics.
15976         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
15977         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
15978         eval_spec_function, handle_braces, process_brace_body, main,
15979         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
15980         getenv_spec_function, compare_version_strings,
15981         version_compare_spec_function): Use GCC-specific formats in
15982         diagnostics.
15983
15984 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
15985
15986         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
15987         that operand 0 and operand 1 are equal.
15988         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
15989         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
15990         and operand 1 are equal.
15991         <default>: Ditto.  Remove ??? comment.
15992         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
15993         and operand 1 are equal.
15994         <default>: Ditto.  Remove ??? comment.
15995         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
15996         are equal.
15997         (*add<mode>_4) <default>: Ditto.
15998         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
15999
16000 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
16001
16002         * config/i386/i386-protos.h (ix86_print_operand): Declare.
16003         * config/i386/i386.c (ix86_print_operand): Make non-static.
16004         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
16005         * output.h (output_operand): Declare.
16006         * final.c (output_operand): Make non-static.
16007
16008 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
16009
16010         PR rtl-optimization/44013
16011         * sched-deps.c (add_dependence_list_and_free): Don't free lists
16012         when processing debug insns.
16013
16014         PR debug/41371
16015         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
16016         recursing.  Check that recursion is bounded.  Rename inner var
16017         to avoid hiding incoming argument.
16018
16019 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16020
16021         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
16022         operands[2] == 255.
16023         (*addqi_3): Ditto.
16024         (*addqi_4): Ditto.
16025         (*addqi_5): Ditto.
16026         (*addqi_ext_1_rex64): Ditto.
16027         (*addqi_ext_1): Ditto.
16028
16029         (*addqi_4): Check for incdec_operand in QImode.
16030
16031         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
16032         using SWI mode iterator.
16033         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
16034         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
16035         mode iterator.
16036         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
16037         using SWI mode iterator.
16038
16039 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16040
16041         PR c/25880
16042         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
16043         * c-format.c (gcc_diag_flag_specs): Add hash.
16044         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
16045         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
16046         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
16047         pp_c_cv_qualifiers. Handle qualifiers spelling here.
16048         (pp_c_type_qualifier_list): Call the function above.
16049         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
16050         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
16051         (WARN_FOR_QUALIFIERS): New macro.
16052         (convert_for_assignment): Use it.
16053
16054 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
16055
16056         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
16057
16058 2010-06-04  Jan Hubicka  <jh@suse.cz>
16059
16060         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
16061         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
16062         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
16063         DF_BYTE_LR_OUT): Update for embedded bitmaps.
16064         * fwprop.c (single_def_use_enter_block): Likewise.
16065         * ddg.c (create_ddg_dep_from_intra_loop_link,
16066         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
16067         * loop-iv.c (latch_dominating_def): Likewise.
16068         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
16069         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
16070         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
16071         df_rd_transfer_function, df_rd_top_dump,
16072         df_rd_bottom_dump): Update.
16073         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
16074         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
16075         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
16076         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
16077         df_lr_verify_solution_start, df_lr_verify_solution_end,
16078         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
16079         df_live_free_bb_info, df_live_alloc, df_live_reset,
16080         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
16081         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
16082         df_live_verify_solution_start, df_live_verify_solution_end,
16083         df_live_verify_transfer_functions, df_chain_create_bb,
16084         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
16085         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16086         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16087         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
16088         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
16089         df_byte_lr_transfer_function, df_byte_lr_top_dump,
16090         df_byte_lr_bottom_dump, df_create_unused_note,
16091         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
16092         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
16093         df_md_transfer_function, df_md_init, df_md_confluence_0,
16094         df_md_confluence_n,
16095         df_md_top_dump, df_md_bottom_dump): Update.
16096         (struct df_lr_problem_data): Embedd bitmap headers.
16097
16098 2010-06-04  Jan Hubicka  <jh@suse.cz>
16099
16100         * dce.c (dce_process_block): Do not re-scan already marked
16101         instructions.
16102
16103 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
16104
16105         PR rtl-optimization/39871
16106         PR rtl-optimization/40615
16107         PR rtl-optimization/42500
16108         PR rtl-optimization/42502
16109         * ira.c (init_reg_equiv_memory_loc: New function.
16110         (ira): Call it twice.
16111         * reload.h (calculate_elim_costs_all_insns): Declare.
16112         * ira-costs.c: Include "reload.h".
16113         (regno_equiv_gains): New static variable.
16114         (init_costs): Allocate it.
16115         (finish_costs): Free it.
16116         (ira_costs): Call calculate_elim_costs_all_insns.
16117         (find_costs_and_classes): Take estimated elimination costs
16118         into account.
16119         (ira_adjust_equiv_reg_cost): New function.
16120         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
16121         * reload1.c (init_eliminable_invariants, free_reg_equiv,
16122         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
16123         (elim_bb): New static variable.
16124         (reload): Move code out of here into init_eliminable_invariants and
16125         free_reg_equiv.  Call them.
16126         (calculate_elim_costs_all_insns): New function.
16127         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
16128         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
16129         but call note_reg_elim_costly if we turned a valid memory address
16130         into an invalid one.
16131         * Makefile.in (ira-costs.o): Depend on reload.h.
16132
16133 2010-06-04  Julian Brown  <julian@codesourcery.com>
16134
16135         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
16136         for pool ranges.
16137
16138 2010-06-04  Richard Guenther  <rguenther@suse.de>
16139
16140         PR lto/41584
16141         * cgraph.h (struct varpool_node): Add lto_file_data field.
16142         * lto-cgraph.c (input_varpool_node): Initialize it.
16143
16144 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16145
16146         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
16147         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
16148         predicate in "type" attribute calculation.
16149         (*addsi_1_zext): Ditto.
16150         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
16151         (*addsi_2_zext): Ditto.
16152         (*add<mode>_3): Ditto.
16153         (*addsi_3_zext): Ditto.
16154         (*add<mode>_5): Ditto.
16155
16156 2010-06-03  Jan Hubicka  <jh@suse.cz>
16157
16158         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
16159         of bitmap_bit_p.
16160         * cfganal.c (compute_dominance_frontiers_1): Likewise.
16161
16162 2010-06-03  Jan Hubicka  <jh@suse.cz>
16163
16164         * df-problems.c (df_create_unused_note, df_note_bb_compute):
16165         micro-optimize the checks when to add new note.
16166
16167 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
16168
16169         * final.c (output_asm_insn): Call
16170         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
16171         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
16172         (output_address): Call targetm.asm_out.print_operand_address.
16173         Update comments.
16174         * target.h (struct gcc_target): Add print_operand,
16175         print_operand_address, and print_operand_punct_valid_p fields.
16176         * targhooks.h (default_print_operand): Declare.
16177         (default_print_operand_address): Declare.
16178         (default_print_operand_punct_valid_p): Declare.
16179         * targhooks.c (default_print_operand): Define.
16180         (default_print_operand_address): Define.
16181         (default_print_operand_punct_valid_p): Define.
16182         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
16183         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
16184         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
16185         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
16186         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
16187         * vmsdbgout.c (addr_const_to_string): Update comment.
16188         * config/i386/i386.c (print_operand): Rename to...
16189         (ix86_print_operand): ...this.  Make static.
16190         (print_operand_address): Rename to...
16191         (ix86_print_operand_address): ...this.  Make static.  Call
16192         ix86_print_operand instead of PRINT_OPERAND.
16193         (ix86_print_operand_punct_valid_p): New function.
16194         (TARGET_PRINT_OPERAND): Define.
16195         (TARGET_PRINT_OPERAND_ADDRESS): Define.
16196         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16197         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
16198         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16199         (PRINT_OPERAND): Delete.
16200         (PRINT_OPERAND_ADDRESS): Delete.
16201         * config/i386/i386-protos.h (print_operand): Delete prototype.
16202         (print_operand_address): Delete prototype.
16203
16204 2010-06-03  Richard Guenther  <rguenther@suse.de>
16205
16206         PR tree-optimization/44403
16207         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
16208         Preserve pointer qualifiers.
16209         (vect_create_data_ref_ptr): Likewise.
16210
16211 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
16212
16213         PR c++/44294
16214         * defaults.h (MAX_FIXED_MODE_SIZE): New.
16215
16216         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
16217
16218 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
16219
16220         PR debug/44375
16221         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
16222         return false if merging the bbs would lead to goto_locus
16223         location being lost from the IL.
16224
16225 2010-06-03  Jan Hubicka  <jh@suse.cz>
16226             Jakub Jelinek  <jakub@redhat.com>
16227
16228         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
16229         set->regs[i] is NULL or has just one entry.
16230
16231 2010-06-03  Jan Hubicka  <jh@suse.cz>
16232
16233         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
16234         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
16235
16236 2010-06-03  Paul Brook  <paul@codesourcery.com>
16237
16238         * config/arm/arm.c (FL_TUNE): Define.
16239         (arm_default_cpu, arm_cpu_select): Remove.
16240         (all_cores): Populate core field.
16241         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
16242         (arm_find_cpu): New function.
16243         (arm_handle_option): Lookup cpu/architecture names.
16244         (arm_override_options): Cleanup mcpu/march/mtune handling.
16245         (arm_file_start): Ditto.
16246
16247 2010-06-03  Alan Modra  <amodra@gmail.com>
16248
16249         PR target/44169
16250         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
16251         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
16252         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
16253         (rs6000_emit_load_toc_table): Likewise.
16254
16255 2010-06-02  Jan Hubicka  <jh@suse.cz>
16256
16257         * passes.c (init_optimization_passes): Put ipa reference
16258         after ipa pure-const.
16259
16260 2010-06-02  Jan Hubicka  <jh@suse.cz>
16261
16262         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
16263         calls_read_all and calls_write_all.
16264         (get_reference_optimization_summary): Fix formatting.
16265         (is_proper_for_analysis): Check that decl is not readonly.
16266         (propagate_bits): Check CONST/PURE/noreturn flags.
16267         (ipa_init): Move all_module_statics to optimization_summary_obstack.
16268         (analyze_function): Ignore indirect edges.
16269         (copy_global_bitmap): For all module statics, do nothing.
16270         (generate_summary): Do not print calls_read_all/calls_write_all.
16271         (read_write_all_from_decl): Take node as argument; check
16272         cgraph_node_cannot_return.
16273         (propagate): Reorganize read_all/write_all computation;
16274         check indirect edges; check ecf flags; use all_module_statics
16275         in the results; do not free all_module_statics.
16276         (stream_out_bitmap): Handle all_module_statics.
16277         (ipa_reference_write_optimization_summary): Likewise; use
16278         varpool/cgraph encoders to get boundaries.
16279         (ipa_reference_read_optimization_summary): Read in all_module_statics;
16280         use it when possible.
16281
16282 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16283
16284         PR target/44218
16285         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
16286         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
16287
16288         * doc/extend.texi (powerpc builtins): Document vec_recip,
16289         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
16290
16291         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
16292         (rs6000_emit_swrsqrt): Ditto.
16293         (rs6000_emit_swdivsf): Delete.
16294         (rs6000_emit_swdivdf): Ditto.
16295         (rs6000_emit_swrsqrtsf): Ditto.
16296
16297         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
16298         describe the reciprocal estimate support for each type.
16299         (recip_options): Map -mrecip=<opt> into option bits.
16300         (gen_2arg_fn_t): New typedef for binary rtx gen function.
16301         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
16302         reciprocal estimate instructions.
16303         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
16304         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
16305         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
16306         cost information if -mdebug=cost or -mdebug=reg.
16307         (rs6000_override_options): Set -mrecip-precision for power6, and
16308         power7 machines.  If -mvsx or -mdfp, enable various options that
16309         came in previous instruction set ISAs, unless the option was
16310         explicitly disabled by the command line option.  Parse
16311         -mrecip=<opt> options.
16312         (rs6000_builtin_vectorized_function): Add support for vectorizing
16313         the reciprocal estimate builtins and expansions.
16314         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
16315         (bdesc_2arg): Add reciprocal estimate builtins.
16316         (bdesc_1arg): Add reciprocal square root estimate builtins.
16317         (rs6000_expand_builtin): Rewrite to use a switch statement,
16318         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
16319         (rs6000_init_builtins): Create declarations for reciprocal
16320         estimate builtins.
16321         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
16322         sized, prefer traditional floating point registers, if integer
16323         vector types, prefer altivec registers.  Don't actually look at
16324         the memory address any more.
16325         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
16326         builtins.
16327         (rs6000_load_constant_and_splat): New helper function to load up
16328         the constant for reciprocal estimate instructions.
16329         (rs6000_emit_madd): New helper function for generating
16330         multiply/add type instructions, based on the current switches.
16331         (rs6000_emit_msub): Ditto.
16332         (rs6000_emit_mnsub): Ditto.
16333         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
16334         replace a divide with a reciprocal estimate and fixup, adding
16335         support for machines with high precision and vectors.
16336         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
16337         low precision machines.
16338         (rs6000_emit_swdiv): New common function to be called to replace a
16339         division with reciprocal estimate and fixup.
16340         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
16341         for double and vector types.  Add support for high precision machines.
16342
16343         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
16344         the reciprocal estimate instructions can be generated.
16345         (TARGET_FRE): Ditto.
16346         (TARGET_FRSQRTES): Ditto.
16347         (TARGET_FRSQRTE): Ditto.
16348         (RS6000_RECIP_*): New macros for reciprocal estimate support.
16349
16350         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
16351         square root estimate on vectors.
16352         (re<mode>2): New insn for reciprocal division estimate on vectors.
16353
16354         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
16355         New builtin.
16356         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
16357         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
16358         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
16359         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
16360         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
16361         (RS6000_BUILTIN_RSQRT): Ditto.
16362         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
16363         floating point builtin.
16364
16365         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16366         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
16367         __RECIP_PRECISION__ based on the command line switches.
16368         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
16369
16370         * config/rs6000/rs6000.opt (-mrecip): Document add support for
16371         replacing division instructions with reciprocal estimate and fixup.
16372         (-mrecip=<opt>): New option.
16373         (-mrecip-precision): Ditto.
16374
16375         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
16376         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
16377         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
16378         precision scalar.
16379
16380         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
16381         (UNSPEC_VREFP): Ditto.
16382         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
16383         conterparts with regard to support of -mno-fused-madd and -ffast-math.
16384         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
16385         reciprocal estimate instructions to be generated.
16386         (altivec_vrefp): Ditto.
16387
16388         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
16389         estimate support.
16390         (rreg): New mode attribute for reciprocal estimate support.
16391         (recip<mode>3): New insn for division using reciprocal estimate
16392         and fixup builtins.
16393         (divide define_split): New define_split to convert floating point
16394         division to use reciprocal estimate if the user used the
16395         appropriate options and the split is run when we can add new
16396         pseudo registers for the fixup.
16397         (rsqrt<mode>2): New insn for reciprocal square root support.
16398         (recipsf3): Move into recip<mode>3.
16399         (recipdf3): Ditto.
16400         (fres): Use TARGET_FRES.
16401         (rsqrtsf2): Move into rsqrt<mode>2.
16402         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
16403         (copysignsf3): Add support for VSX.
16404         (fred): Use TARGET_FRE.
16405         (fred_fpr): Ditto.
16406         (rsqrtdf_internal1): New function for frsqrte instruciton.
16407
16408         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
16409         (vec_rsqrt): Ditto.
16410
16411 2010-06-03  Richard Guenther  <rguenther@suse.de>
16412
16413         PR middle-end/44291
16414         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
16415         (set_user_assembler_libfunc): Likewise.
16416
16417 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16418
16419         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
16420         defaults.h.
16421         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
16422         to defaults.h
16423         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
16424         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
16425         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
16426         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
16427         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
16428         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
16429         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
16430         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
16431         * defaults.h: Updated for above mentioned changes.
16432
16433 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
16434
16435         * c-common.c: Remove header include of tm_p.h.
16436         * Makefile.in (c-common.o): Remove TM_P_H dependency.
16437
16438 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
16439
16440         * tree.h (struct tree_decl_map): New type.
16441         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
16442         (tree_decl_map_hash): New prototype.
16443         (debug_expr_for_decl, value_expr_for_decl): Change into
16444         tree_decl_map hashtab from tree_map.
16445         (init_ttree): Adjust initialization.
16446         (tree_decl_map_hash): New function.
16447         (decl_debug_expr_lookup, decl_debug_expr_insert,
16448         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
16449
16450 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16451
16452         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
16453         linker emulations.
16454         * configure: Regenerate.
16455         * config.in: Regenerate.
16456
16457         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
16458         (X86_64_EMULATION): Define.
16459         (TARGET_LD_EMULATION): Use them.
16460
16461         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
16462         (SPARC64_EMULATION): Define.
16463         (LINK_ARCH_SPEC): Use them.
16464
16465 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16466
16467         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
16468         smallest_mode_for_size for computing the precision types of new
16469         graphite IVs.  Do not call lang_hooks.types.type_for_size.
16470
16471 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16472
16473         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
16474         information.
16475         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
16476
16477 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16478
16479         PR middle-end/44363
16480         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
16481         return false instead.
16482
16483 2010-06-02  Jan Hubicka  <jh@suse.cz>
16484
16485         PR middle-end/44295
16486         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
16487         create new cgraph node to check callee.
16488
16489 2010-06-02  Richard Guenther  <rguenther@suse.de>
16490
16491         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
16492
16493 2010-06-02  Richard Guenther  <rguenther@suse.de>
16494
16495         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
16496         (lto_wrapper_cleanup): ... this.  Do not exit.
16497         (fatal): Adjust.  Exit here.
16498         (fatal_perror): Likewise.
16499         (fatal_signal): New function.
16500         (main): Set up signal handlers to cleanup temporary files.
16501         * Makefile.in (lto-wrapper.o): Adjust dependencies.
16502
16503 2010-06-02  Richard Guenther  <rguenther@suse.de>
16504
16505         PR tree-optimization/44377
16506         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
16507
16508 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16509
16510         * config/s390/2097.md (z10_fhex): Remove insn reservation.
16511         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
16512         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
16513         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
16514         instruction.
16515         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
16516
16517 2010-06-02  Jan Hubicka  <jh@suse.cz>
16518
16519         * bitmap.c (bitmap_descriptor): Add search_iter.
16520         (bitmap_find_bit): Increment it.
16521         (print_statistics): Print it.
16522
16523 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
16524
16525         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
16526         instead of gimple_build_call_vec.  Delete unnecessary local variable.
16527
16528 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16529
16530         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
16531         change from yesterday.
16532
16533 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16534
16535         * c-ada-spec.c: Clean up redundant includes.
16536
16537 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
16538
16539         * gimplify.c: Do not include except.h and optabs.h.
16540         (gimplify_body): Do not initialize RTL profiling.
16541         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
16542         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
16543         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
16544         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
16545         langhooks.h.
16546
16547         * tree-pretty-print.h: Include pretty-print.h.
16548         * gimple-pretty-print.h: Include pretty-print.h.
16549
16550         * tree-pretty-print.c: Do not include diagnostic.h.
16551         * tree-vrp.c: Likewise.
16552         * tree-tailcall.c: Likewise
16553         * tree-scalar-evolution.c: Likewise
16554         * tree-ssa-dse.c: Likewise
16555         * tree-chrec.c: Likewise
16556         * tree-ssa-sccvn.c: Likewise
16557         * tree-ssa-copyrename.c: Likewise
16558         * tree-nomudflap.c: Likewise
16559         * tree-call-cdce.c: Likewise
16560         * tree-stdarg.c: Likewise
16561         * tree-ssa-math-opts.c: Likewise
16562         * tree-nrv.c: Likewise
16563         * tree-ssa-sink.c: Likewise
16564         * tree-browser.c: Likewise
16565         * tree-ssa-loop-ivcanon.c: Likewise
16566         * tree-ssa-loop.c: Likewise
16567         * tree-parloops.c: Likewise
16568         * tree-ssa-address.c: Likewise
16569         * tree-ssa-ifcombine.c: Likewise
16570         * tree-if-conv.c: Likewise
16571         * tree-data-ref.c: Likewise
16572         * tree-affine.c: Likewise
16573         * tree-ssa-phiopt.c: Likewise
16574         * tree-ssa-coalesce.c: Likewise
16575         * tree-ssa-pre.c: Likewise
16576         * tree-ssa-live.c: Likewise
16577         * tree-predcom.c: Likewise
16578         * tree-ssa-forwprop.c: Likewise
16579         * tree-ssa-dce.c: Likewise
16580         * tree-ssa-ter.c: Likewise
16581         * tree-ssa-loop-prefetch.c: Likewise
16582         * tree-optimize.c: Likewise
16583         * tree-ssa-phiprop.c: Likewise
16584         * tree-object-size.c: Likewise
16585         * tree-outof-ssa.c: Likewise
16586         * tree-ssa-structalias.c: Likewise
16587         * tree-switch-conversion.c: Likewise
16588         * tree-ssa-reassoc.c: Likewise
16589         * tree-ssa-operands.c: Likewise
16590         * tree-vectorizer.c: Likewise
16591         * tree-vect-data-refs.c: Likewise
16592         * tree-vect-generic.c: Likewise
16593         * tree-vect-stmts.c: Likewise
16594         * tree-vect-patterns.c: Likewise
16595         * tree-vect-slp.c: Likewise
16596         * tree-vect-loop.c: Likewise
16597         * tree-ssa-loop-ivopts.c: Likewise
16598         * tree-ssa-loop-im.c: Likewise
16599         * tree-ssa-loop-niter.c: Likewise
16600         * tree-ssa-loop-unswitch.c: Likewise
16601         * tree-ssa-loop-manip.c: Likewise
16602         * tree-ssa-loop-ch.c: Likewise
16603         * tree-dump.c: Likewise
16604         * tree-complex.c: Likewise
16605
16606         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
16607         * tree-ssa-uninit.c: Likewise
16608         * tree-ssa-threadupdate.c: Likewise
16609         * tree-ssa-uncprop.c: Likewise
16610         * tree-ssa-ccp.c: Likewise
16611         * tree-ssa-dom.c: Likewise
16612         * tree-ssa-propagate.c: Likewise
16613         * tree-ssa-alias.c: Likewise
16614         * tree-dfa.c: Likewise
16615         * tree-cfgcleanup.c: Likewise
16616         * tree-sra.c: Likewise
16617         * tree-ssa-copy.c: Likewise
16618         * tree-ssa.c: Likewise
16619         * tree-profile.c: Likewise
16620         * tree-cfg.c: Likewise
16621         * tree-ssa-threadedge.c: Likewise
16622         * tree-vect-loop-manip.c: Likewise
16623
16624         * tree-inline.c: Do not include diagnostic.h and expr.h.
16625         Include rtl.h.
16626         (copy_decl_for_dup_finish): Do not use NULL_RTX.
16627
16628         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
16629         * tree-loop-distribution.c: Likewise.
16630
16631 2010-06-01  Jan Hubicka  <jh@suse.cz>
16632
16633         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
16634
16635 2010-06-01  Jan Hubicka  <jh@suse.cz>
16636
16637         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
16638         remove return value.
16639         (split_bbs_on_noreturn_calls) .... here.
16640         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
16641         * tree-flow.h (fixup_noreturn_call): New.
16642
16643 2010-06-01  Jan Hubicka  <jh@suse.cz>
16644
16645         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
16646
16647 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
16648
16649         * tree.h (build_nt_call_list): Delete.
16650         * tree.c (build_nt_call_list): Delete.
16651
16652 2010-06-01  Jan Hubicka  <jh@suse.cz>
16653
16654         * fwprop.c: Make emit-rtl.h include last.
16655         * rtlanal.c: Include emit-rtl.h.
16656         * genautomata.c: Output emit-rtl include into insn-automata.c
16657         * df-scan.c: Include emit-rtl.h.
16658         * haifa-sched.c: Indlude emit-rtl.h.
16659         * mode-switching.c: Indlude emit-rtl.h.
16660         * graph.c: Indlude emit-rtl.h.
16661         * sel-sched.c: Include emit-rtl.h.
16662         * sel-sched-ir.c: Include emit-rtl.h.
16663         * ira-build.c: Include emit-rtl.h.
16664         * emit-rtl.c (first_insn, last_insn): Remove defines.
16665         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
16666         Move to emit-rtl.h.
16667         (set_new_first_and_last_insn, get_last_insn_anywhere,
16668         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
16669         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
16670         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
16671         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
16672         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
16673         Use accessor functions.
16674         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16675          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16676         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
16677         mem_expr_equal_p): Move here from rtl.h.
16678         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
16679         Move here from emit-rtl.c; make inline.
16680         * cfglayout.h: Include emit-rtl.h.
16681         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16682          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16683         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
16684         mem_expr_equal_p, get_insns, set_first-insn,
16685         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
16686         * reg-stack.c: Include emit-rtl.h.
16687         * dce.c: Likewise.
16688
16689 2010-06-01  Jan Hubicka  <jh@suse.cz>
16690
16691         * cgraph.h (tree_function_versioning): Update prototype.
16692         (cgraph_function_versioning): Update prototype.
16693         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
16694         bitmap.
16695         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
16696         (cgraph_materialize_clone, save_inline_function_body): Update use of
16697         tree_function_versioning.
16698         * tree-inline.c (copy_bb): Look for previous copied block to link
16699         after; fix debug output.
16700         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
16701         (copy_body): Likewise.
16702         (expand_call_inline): Update use of copy_body.
16703         (tree_function_versioning): Update use of copy body; accept
16704         blocks_to_copy and new_entry.
16705
16706 2010-06-01  Jan Hubicka  <jh@suse.cz>
16707
16708         * gegenrtl.c: Remove unnecesary prototypes.
16709         (gendecl): Remove.
16710         (gendef): Produce static inline.
16711         (gencode): Remove.
16712         (main): Do not decode parameters; generate header only.
16713         * Makefile.in (genrtl.c): Remove.
16714
16715 2010-06-01  Jan Hubicka  <jh@suse.cz>
16716
16717         * tree-switch-conversion.c (build_one_array): Make it readonly.
16718
16719 2010-06-01  Richard Guenther  <rguenther@suse.de>
16720
16721         * optabs.c (init_optabs): Guard all accesses to reinit.
16722         * ipa-pure-const.c (propagate): Fix another typo.
16723         * opts.c (common_handle_option): Split assignment to bool.
16724         * c-opts.c (c_common_handle_option): Likewise.
16725
16726 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
16727             Matthew Gingell  <gingell@adacore.com>
16728
16729         * doc/invoke.texi: Mention -fdump-ada-spec.
16730         * tree-dump.c (dump_files): Add ada-spec.
16731         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
16732         * tree-pass.h (tree_dump_index): Add TDI_ada.
16733         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
16734         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
16735         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
16736         * c-decl.c: Include c-ada-spec.h.
16737         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
16738         functions.
16739         (c_write_global_declarations): Add handling of -fdump-ada-spec.
16740         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
16741         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
16742         * c-ada-spec.h, c-ada-spec.c: New files.
16743
16744 2010-06-01  Richard Guenther  <rguenther@suse.de>
16745
16746         PR lto/43853
16747         * ipa-pure-const.c (get_function_state): Hand back varying state
16748         if we do not have one.
16749         (has_function_state): New function.
16750         (duplicate_node_data): Adjust.
16751         (remove_node_data): Likewise.
16752         (pure_const_write_summary): Likewise.
16753         (propagate): Likewise.  Fix typo.
16754
16755 2010-06-01  Jan Hubicka  <jh@suse.cz>
16756
16757         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
16758         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
16759         (execute_all_ipa_transforms): Do not play with the states.
16760
16761 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
16762
16763         * config/arm/t-linux-androideabi: New.
16764         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
16765
16766 2010-06-01  Jan Hubicka  <jh@suse.cz>
16767
16768         * tree-inline.c (estimate_num_insns): For stdarg functions look
16769         into call statement to count cost of argument passing.
16770
16771 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
16772
16773         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
16774         argument for fprintf.
16775         (ix86_output_addr_diff_elt): Likewise.
16776         (x86_function_profiler): Likewise.
16777         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
16778         (LPREFIX): Likewise.
16779         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
16780
16781 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
16782
16783         PR target/44338
16784         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
16785         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
16786         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
16787         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
16788         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
16789         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
16790         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
16791         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
16792         TARGET_FUSED_MADD.
16793
16794 2010-05-31  Jan Hubicka  <jh@suse.cz>
16795
16796         * tree.h (tree_range_check_failed): Declare noreturn.
16797
16798 2010-05-31  Jan Hubicka  <jh@suse.cz>
16799
16800         * gimple.c (gimple_call_builtin_p): New function.
16801         * gimple.h (gimple_call_builtin_p): Declare.
16802         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
16803         to exit.
16804         (execute_warn_function_return): BUILT_IN_RETURN is return.
16805         (split_critical_edges): Return edges are not critical.
16806         (is_ctrl_altering_stmt): Builtin_in_return is altering.
16807         (gimple_verify_flow_info): Handle built_in_return.
16808         (execute_warn_function_return): Handle built_in_return.
16809         * ipa-pure-const.c (check_call): Ignore builtin_return.
16810
16811 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
16812
16813         PR middle-end/44337
16814         * expr.c (expand_assignment): Don't store anything for out-of-bounds
16815         array accesses with non-MEM.
16816
16817         PR tree-optimization/44182
16818         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
16819         newly needs to end a bb is followed by debug stmts, instead return
16820         true from the function at the end.
16821         (maybe_move_debug_stmts_to_successors): New function.
16822         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
16823
16824 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
16825
16826         PR target/44161
16827         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
16828
16829 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
16830
16831         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
16832         for nested functions in non-optimized compilation.
16833
16834 2010-05-31  Richard Guenther  <rguenther@suse.de>
16835
16836         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
16837
16838 2010-05-30  Jan Hubicka  <jh@suse.cz>
16839
16840         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
16841
16842 2010-05-30  Richard Guenther  <rguenther@suse.de>
16843
16844         PR lto/42975
16845         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
16846         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
16847         no longer needed.
16848
16849 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
16850
16851         * config/darwin.c (output_objc_section_asm_op): Add comment.
16852         (name_needs_quotes): Add '_' to list of valid comment chars.
16853         (machopic_output_function_base_name): Remove unneeded quotes.
16854         (darwin_encode_section_info): Adjust asm whitespace.
16855         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
16856         (ASM_OUTPUT_LOCAL): Ditto.
16857         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
16858         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
16859         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
16860
16861 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
16862
16863         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
16864         RS6000_OUTPUT_BASENAME unconditionally.
16865         (rs6000_output_function_epilogue): Likewise.
16866
16867 2010-05-30  Jan Hubicka  <jh@suse.cz>
16868
16869         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
16870         nodes.
16871
16872 2010-05-30  Richard Guenther  <rguenther@suse.de>
16873
16874         * tree-cfg.c (verify_gimple_assign_single): Implement
16875         verification for COND_EXPR rhs.
16876
16877 2010-05-30  Jan Hubicka  <jh@suse.cz>
16878
16879         * cgraph.h (cgraph_dump_file): Declare.
16880         * cgraphunit.c (cgraph_dump_file): Export.
16881         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
16882
16883 2010-05-30  Jan Hubicka  <jh@suse.cz>
16884
16885         * dwarf2out.c (reference_to_unused,
16886         premark_types_used_by_global_vars_helper): Avoid creation of new
16887         varpool nodes.
16888
16889 2010-05-30  Jan Hubicka  <jh@suse.cz>
16890
16891         * cgraph.h (cgraph_node_cannot_return,
16892         cgraph_edge_cannot_lead_to_return): New functions.
16893         * cgraph.c (cgraph_node_cannot_return,
16894         cgraph_edge_cannot_lead_to_return): Use them.
16895         * ipa-pure-const.c (pure_const_names): New static var.
16896         (check_call): Handle calls not leading to return.
16897         (pure_const_read_summary): Dump info read.
16898         (propagate): Dump info about propagation process; ignore side effects
16899         of functions not leading to exit; fix handling of pure functions.
16900
16901 2010-05-30  Jan Hubicka  <jh@suse.cz>
16902
16903         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
16904         for tail call epilogues.
16905
16906 2010-05-30  Jan Hubicka  <jh@suse.cz>
16907
16908         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
16909         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
16910         dump files.
16911
16912 2010-05-29  Jan Hubicka  <jh@suse.cz>
16913
16914         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
16915         node; remove references in node we no longer keep in cgrpah but need
16916         body of.
16917
16918 2010-05-29  Jan Hubicka  <jh@suse.cz>
16919
16920         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
16921
16922 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16923
16924         PR target/44165
16925         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
16926
16927 2010-05-29  Jan Hubicka  <jh@suse.cz>
16928
16929         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
16930         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
16931         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
16932         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
16933         debug_names_replaced_by, debug_update_ssa): Likewise.
16934         * sbitmap.c (debug_sbitmap): Likewise.
16935         * genrecog.c (debug_decision, debug_decision_list): Likewise.
16936         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
16937         debug_tree_chain): Likewise.
16938         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
16939         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
16940         * optabs.c (debug_optab_libfuncs): Likewise.
16941         (verify_loop_closed_ssa): Likewise.
16942         * value-prof.c (verify_histograms): Likewise.
16943         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
16944         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
16945         * cfghooks.c (verify_flow_info): Likewise.
16946         * fold-const.c (debug_fold_checksum): Likewise.
16947         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
16948         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
16949         Likewise.
16950         * omega.c (debug_omega_problem): Likewise.
16951         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
16952         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
16953         * dominance.c (verify_dominators, debug_dominance_info,
16954         debug_dominance_tree): Likewise.
16955         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
16956         * df_regno_debug, df_ref_debug,
16957         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
16958         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
16959         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
16960         * sel-sched.c (debug_state): Likewise.
16961         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
16962         Likewise.
16963         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
16964         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
16965         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
16966         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
16967         Likewise.
16968         * c-pretty-print.c (debug_c_tree): Likewise.
16969         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
16970         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
16971         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
16972         * ebitmap.c (debug_ebitmap): Likewise.
16973         * function.c (debug_find_var_in_block_tree): Likewise.
16974         * print-rtl.c (debug_rtx): Likewise.
16975         (debug_rtx_count): Likewise.
16976         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
16977         * stor-layout.c (debug_rli): Likewise.
16978         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
16979         * tree-data-ref.c (debug_data_references,
16980         debug_data_dependence_relations, debug_data_reference,
16981         debug_data_dependence_relation, debug_rdg_vertex,
16982         debug_rdg_component, debug_rdg): Likewise.
16983         * tree-affine.c (debug_aff): Likewise.
16984         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
16985         Likewise.
16986         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
16987         * emit-rtl.c (verify_rtl_sharing): Likewise.
16988         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
16989         debug_value_expressions): Likewise.
16990         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
16991         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
16992         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
16993         * cfglayout.c (verify_insn_chain): Likewise.
16994         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
16995         debug_clast_stmt, debug_generated_program): Likewise.
16996         * ggc-page.c (debug_print_page_list): Likewise.
16997         * tree-ssa-ter.c (debug_ter): Likewise.
16998         * graphite-dependences.c (debug_pddr): Likewise.
16999         * sched-deps.c (debug_ds): Likewise.
17000         * tree-ssa.c (verify_ssa): Likewise.
17001         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
17002         debug_scattering_functions, debug_iteration_domains, debug_pdr,
17003         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
17004         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
17005         * tree-inline.c (debug_find_tree): Likewise.
17006         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
17007         debug_ppl_powerset_matrix): Likewise.
17008         * var-tracking.c (debug_dv): Likewise.
17009         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
17010         * cfgloop.c (verify_loop_structure): Likewise.
17011         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
17012         * c-common.c (verify_sequence_points): Likewise.
17013         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
17014         debug_candidates, debug_rgn_dependencies): Likewise.
17015         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
17016         * debug_constraint_graph, debug_solution_for_var,
17017         debug_sa_points_to_info): Likewise.
17018         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
17019         Likewie.
17020         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
17021         debug_loops, debug_loop, debug_loop_num): Likewise.
17022         * passes.c (debug_pass): Likewise.
17023         (dump_properties): Likewise; add cfglayout property.
17024         (debug_properties): Likewise.
17025         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
17026         * varpool.c (debug_varpool): Likewise.
17027         * regcprop.c (debug_value_data): Likewise.
17028         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
17029         debug_immediate_uses_for): Likewise.
17030
17031 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17032
17033         PR bootstrap/44315
17034         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
17035         Filter out insn-flags.h.
17036
17037 2010-05-29  Jan Hubicka  <jh@suse.cz>
17038
17039         * cgraph.h (struct varpool_node_set_def,
17040         struct cgraph_node_set_def): Remove unused AUX pointer.
17041         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
17042         VEC_empty macro.
17043
17044 2010-05-29  Jan Hubicka  <jh@suse.cz>
17045
17046         PR middle-end/44324
17047         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
17048
17049 2010-05-29  Richard Guenther  <rguenther@suse.de>
17050
17051         * lto-streamer.c (cached_bp): New global variable.
17052         (bitpack_create): Return the cached bitpack, if available.
17053         (bitpack_delete): Clear and cache the bitpack, if appropriate.
17054         (bp_pack_value): Remove redundant asserts.
17055
17056 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
17057
17058         PR middle-end/44306
17059         * tree-if-conv.c (is_true_predicate): New.
17060         (is_predicated): Use is_true_predicate.
17061         (add_to_predicate_list): Same.  Do not use unshare_expr.
17062         (add_to_dst_predicate_list): Same.
17063
17064 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
17065
17066         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
17067         field on edges.
17068         (predicate_bbs): Same.
17069         (clean_predicate_lists): Same.
17070         (find_phi_replacement_condition): Do not AND the predicate from
17071         edge->aux.
17072
17073 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17074
17075         PR bootstrap/44315
17076         * Makefile.in (build/gencondmd.o): Add a missing `\'.
17077
17078 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17079
17080         PR target/44261
17081         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
17082         (negdf2): Adjust expander pattern and use negdf2_slow.
17083         (negsf2): Likewise.
17084
17085 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
17086
17087         * basic-block.h (struct control_flow_graph): Move last_label_uid field
17088         up.
17089         * df.h (struct df_base_ref): Move regno field up.
17090         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
17091         * expr.h (struct separate_ops): Move location field up.
17092         * optabs.h (struct optab_d): Move libcall_basename field down.
17093         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
17094         * config/i386/i386.h (struct machine_function): Convert call_abi field
17095         into a bitfield.  Move cfa field to the end of the structure.
17096
17097 2010-05-29  Jan Hubicka  <jh@suse.cz>
17098
17099         * varpool.c (varpool_get_node): Fix lookup.
17100
17101 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17102
17103         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
17104         RTL specific prototypes with #ifdef RTX_CODE.
17105         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
17106         * config/spu/t-spu-elf: Fix dependencies.
17107
17108         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
17109
17110 2010-05-29  Mike Stump  <mikestump@comcast.net>
17111
17112         PR bootstrap/44315
17113         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
17114         TM_H when building to avoid dependency loops.
17115
17116 2010-05-29  Jan Hubicka  <jh@suse.cz>
17117
17118         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
17119         refs and body; not the whole node for masters of materialized clones.
17120
17121 2010-05-29  Mike Stump  <mikestump@comcast.net>
17122
17123         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
17124
17125 2010-05-29  Jan Hubicka  <jh@suse.cz>
17126
17127         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
17128         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
17129         use of clone_function_name.
17130         * cgraph.h (cgraph_create_virtual_clone,
17131         cgraph_function_versioning): update prototypes.
17132         (clone_function_name): Declare.
17133         * ipa-cp.c (ipcp_insert_stage): Update call of
17134         cgraph_create_virtual_clone.
17135         * omp-low.c (create_omp_child_function_name): Use
17136         cgraph_create_virtual_clone.
17137         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
17138         (cgraph_function_versioning): Take SUFFIX argument; produce new name
17139         and make decl local.
17140
17141 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17142
17143         * vec.h: Include statistics.h
17144         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
17145         with VEC_H.
17146
17147 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17148
17149         * c-lex.c: Do not include c-tree.h.
17150         * c-pretty-print.c: Likewise.
17151         * c-opts.c: Likewise.
17152         * c-gimplify.c: Likewise.
17153         * c-common.c: Likewise.
17154         * c-dump.c: Likewise.  Include c-common.h.
17155
17156 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17157
17158         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
17159         before including diagnostic-core.h.
17160         (c_cpp_error): New prototype moved from c-tree.h.
17161         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
17162         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
17163         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
17164         (c_cpp_error): Prototype moved to c-common.h.
17165         * Makefile.in: Update dependency for C_COMMON_H.
17166
17167 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17168
17169         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
17170         * c-common.c (c_register_addr_space): Remove here.
17171         * c-decl.c (c_register_addr_space): Re-add here.
17172
17173 2010-05-28  Mike Stump  <mikestump@comcast.net>
17174
17175         * config/darwin-c.c: Remove c-tree.h include.
17176
17177 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17178
17179         * gcc.c: Include diagnostic.h.
17180         (error_count): Remove.  All users changed to use errorcount.
17181         (programname): Remove.  All users changed to use progname.
17182         (fancy_abort, internal_error, fatal_error, error, warning, inform,
17183         fnotice): Remove.
17184         (execute): Don't include "Internal error" and bug reporting
17185         information in argument of internal_error call.
17186         (process_command): Don't increment error_count after calling
17187         perror_with_name.
17188         (input_filename): Rename to gcc_input_filename.  All users
17189         changed.
17190         (main): Call diagnostic_initialize.  Register delete_temp_files
17191         with atexit.  Use seen_error to test for errors.
17192         * gcc.h: Include diagnostic-core.h.
17193         (fatal_error, error, warning): Remove.
17194         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
17195         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
17196         (gcc.o): Update dependencies.
17197
17198 2010-05-28  Jeff Law  <law@redhat.com>
17199
17200         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
17201         functions.
17202         * ira.h (ira_bad_reload_regno): Declare
17203         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
17204
17205         * ira-color.c (update_curr_costs): Free updated hard reg costs.
17206         (ira_reassign_conflict_allocnos): Remove bogus asserts.
17207         (allocno_reload_assign): Likewise.
17208
17209 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
17210
17211         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
17212         build1_stat.
17213
17214 2010-05-28  Richard Guenther  <rguenther@suse.de>
17215
17216         PR lto/44312
17217         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
17218         Stream fixed-point constants mode.
17219         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
17220         and TYPE_PRECISION.
17221         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
17222         Stream fixed-point constants mode.
17223         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
17224         and TYPE_PRECISION.
17225
17226 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17227
17228         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
17229         only place it was called from.
17230         (number_of_latch_executions): Do not return chrec_dont_know when the
17231         may_be_zero is a runtime condition: instead, return a COND_EXPR
17232         including the may_be_zero condition.
17233         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
17234         of nb_iterations.
17235         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
17236         COND_EXPRs.
17237
17238 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17239
17240         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
17241         generate COND_EXPRs for degenerate_phi_result.
17242
17243 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17244
17245         PR middle-end/44293
17246         * tree-if-conv.c (if_convertible_loop_p): Check the
17247         if-convertibility of phi nodes in non predicated BBs.
17248
17249 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17250
17251         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
17252
17253 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17254
17255         PR driver/15303
17256         * gcc.c (inform, warning, inform): New functions.
17257         (fatal_ice): Rename to internal_error; change cmsgid parameter to
17258         gmsgid.  All callers changed.
17259         (notice): Rename to fnotice; add parameter fp.  All callers changed.
17260         (fatal_error): Rename to fatal_signal.  All users changed.
17261         (fatal): Rename to fatal_error; change cmsgid parameter to
17262         gmsgid.  All callers changed.
17263         (process_command): Use warning instead of error for warnings.
17264         (end_going_arg): Don't use _() around argument of error.
17265         (do_spec_1): Use inform for message from %n specs.  Use warning
17266         instead of error for warnings.
17267         (main): Use inform for comparison messages.  Use warning for
17268         message about unused linker input.
17269         (error): Increment error_count.  Print "error: ".
17270         * gcc.h (fatal): Change to fatal_error.
17271         (warning): Declare.
17272         * config/darwin-driver.c (darwin_default_min_version): Use warning
17273         instead of fprintf for warnings.
17274         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
17275
17276 2010-05-28  Julian Brown  <julian@codesourcery.com>
17277
17278         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
17279         (*thumb2_addsi3_compare0_scratch): New.
17280         * config/arm/constraints.md (Pv): New.
17281         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
17282         for ARM mode only.
17283         (*addsi3_compare0_scratch): Likewise.
17284
17285 2010-05-28  Jan Hubicka  <jh@suse.cz>
17286
17287         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
17288         check.
17289         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
17290         only on local statics.
17291
17292 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
17293
17294         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
17295
17296 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17297
17298         PR bootstrap/44314
17299         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
17300         (OPTION_GLIBC): Define.
17301
17302 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17303
17304         PR debug/41048
17305         * dwarf2out.c (double_int_type_size_in_bits): New function.
17306         (round_up_to_align): Change first argument and return value to
17307         double_int.
17308         (field_byte_offset): Work internally on double_ints.
17309
17310         PR target/43636
17311         * builtins.c (expand_movstr): Use a temporary pseudo instead
17312         of target even when target is not NULL and not const0_rtx, but
17313         fails movstr predicate.
17314         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
17315
17316 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17317
17318         * final.c (rest_of_clean_state): Use %m in errors instead of
17319         strerror (errno).
17320         * gengtype.c (read_input_list, close_output_files): Use xstrerror
17321         instead of strerror.
17322         * toplev.c (process_options): Use %m in errors instead of strerror
17323         (errno).
17324         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
17325         (errno).
17326
17327 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
17328
17329         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
17330         (ix86_canonical_va_list_type): Make static.  Add declaration.
17331         (ix86_enum_va_list): Make static.  Reindent.
17332         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
17333         (ix86_canonical_va_list_type): Ditto.
17334         (ix86_enum_va_list): Ditto.
17335
17336 2010-05-28  Richard Guenther  <rguenther@suse.de>
17337
17338         * lto-wrapper.c (run_gcc): With -save-temps generate a
17339         user-visible ltrans filename.  Fixup ltrans unit numbering.
17340
17341 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
17342
17343         * c-common.c (c_common_nodes_and_builtins): Replace use
17344         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
17345         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
17346         to ix86_enum_va_list.
17347         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
17348         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
17349         (TARGET_ENUM_VA_LIST_P): Add hook description.
17350         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
17351         * target.h (gcc_target): Add enum_va_list hook.
17352
17353         PR bootstrap/44299
17354         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
17355         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
17356         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
17357
17358 2010-05-28  Alan Modra  <amodra@gmail.com>
17359
17360         PR target/44266
17361         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17362         emit_library_call machinery to set up __tls_get_addr calls.
17363
17364 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17365
17366         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
17367
17368 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
17369
17370         Revert fix for PR c++/44188
17371         * c-common.c (is_typedef_decl): Revert the moving of  this
17372         definition ...
17373         * tree.c (is_typedef_decl): ... here.
17374         (typdef_variant_p): Revert the moving of this  definition
17375         here from cp/tree.c.
17376         * c-common.h (is_typedef_decl): Revert the moving of this
17377         declaration ...
17378         * tree.h (is_typedef_decl): ... here.
17379         (typedef_variant_p): Revert the moving of this  declaration here
17380         from cp/cp-tree.h
17381         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
17382         (gen_tagged_type_die): Revert the splitting out of ...
17383         (gen_type_die_with_usage): ... this function. Revert the anonymous
17384         tagged type handling.
17385         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
17386         typedefs naming anonymous tagged types.
17387
17388 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
17389
17390         * config/rs6000/rs6000-modes.def (PSImode): Delete.
17391
17392 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
17393
17394         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
17395         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
17396         throughout.
17397         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
17398         "xer" to "ca".
17399         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
17400         XER_REGS to CA_REGS throughout.
17401         * config/rs6000/rs6000.h: Same.
17402         (ADDITIONAL_REGISTER_NAMES): Add "xer".
17403         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
17404         that mode_iterator "P" is the size for arithmetic carries as well.
17405         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
17406
17407 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17408
17409         PR bootstrap/44255
17410         * combine.c (struct rtx_subst_pair): Define unconditionally.
17411         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
17412         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
17413         Call make_compound_operation on pair->to.
17414         (propagate_for_debug): Don't call make_compound_operation here.
17415         Always use simplify_replace_fn_rtx.
17416
17417 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
17418
17419         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
17420         * config/xtensa/xtensa.c (override_options): Check
17421           TARGET_FORCE_NO_PIC and set flag_pic.
17422         * config/xtensa/xtensa.opt: Document -mforce-no-pic
17423
17424 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
17425
17426         PR bootstrap/44299
17427         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
17428         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
17429
17430 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
17431
17432         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
17433         toplev.h.
17434         * diagnostic.c: Don't include toplev.h.
17435         (progname): Define.  Moved from toplev.c.
17436         (seen_error): New function.
17437         * diagnostic.h: Include diagnostic-core.h.
17438         (diagnostic_t, emit_diagnostic): Don't declare here.
17439         * toplev.c (progname): Move to toplev.c.
17440         (emit_debug_global_declarations, compile_file, finalize,
17441         do_compile, toplev_main): Use seen_error.
17442         * toplev.h: Include diagnostic-core.h.
17443         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
17444         internal_error, warning, warning_at, error, error_n, error_at,
17445         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
17446         verbatim, fnotice, progname): Move to diagnostic-core.h.
17447         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
17448         (expand_builtin_expect): Use seen_error.
17449         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
17450         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
17451         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
17452         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
17453         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
17454         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
17455         errorcount for errors.
17456         * c-opts.c (c_common_finish): Use seen_error.
17457         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17458         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
17459         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
17460         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
17461         (get_coverage_counts): Use seen_error.
17462         * dwarf2out.c (dwarf2out_finish): Use seen_error.
17463         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
17464         gimplify_body): Use seen_error.
17465         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
17466         * ipa-pure-const.c (gate_pure_const): Use seen_error.
17467         * ipa-reference.c (gate_reference): Use seen_error.
17468         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
17469         * lambda-code.c: Include diagnostic-core.h instead of
17470         diagnostic.h.
17471         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17472         * lto-compress.c: Include diagnostic-core.h instead of
17473         diagnostic.h.
17474         * lto-section-in.c: Include diagnostic-core.h instead of
17475         diagnostic.h.
17476         * lto-streamer-out.c: Include diagnostic-core.h instead of
17477         diagnostic.h.
17478         * lto-streamer.c: Include diagnostic-core.h instead of
17479         diagnostic.h.
17480         (gate_lto_out): Use seen_error.
17481         * matrix-reorg.c: Include diagnostic-core.h instead of
17482         diagnostic.h.
17483         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
17484         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
17485         (gate_expand_omp, lower_omp_1): Use seen_error.
17486         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
17487         (rest_of_decl_compilation, rest_of_type_compilation,
17488         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
17489         * tree-cfg.c (label_to_block_fn): Use seen_error.
17490         * tree-inline.c (optimize_inline_calls): Use seen_error.
17491         * tree-mudflap.c (mudflap_finish_file): Use
17492         seen_error.
17493         * tree-optimize.c (gate_all_optimizations,
17494         gate_all_early_local_passes, gate_all_early_optimizations): Use
17495         seen_error.
17496         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
17497         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
17498         (varpool_remove_unreferenced_decls,
17499         varpool_assemble_pending_decls): Use seen_error.
17500         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
17501         (TOPLEV_H, DIAGNOSTIC_H): Update.
17502         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
17503         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
17504         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
17505         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
17506         coverage.o, lambda-code.o): Update dependencies.
17507
17508 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
17509
17510         PR c++/44188
17511         * c-common.c (is_typedef_decl): Move this definition ...
17512         * tree.c (is_typedef_decl): ... here.
17513         (typdef_variant_p): Move definition here from cp/tree.c.
17514         * c-common.h (is_typedef_decl): Move this declaration ...
17515         * tree.h (is_typedef_decl): ... here.
17516         (typedef_variant_p): Move declaration here from cp/cp-tree.h
17517         * dwarf2out.c (is_naming_typedef_decl): New function.
17518         (gen_tagged_type_die): Split out of ...
17519         (gen_type_die_with_usage): ... this function. When an anonymous
17520         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
17521         is emitted for the typedef.
17522         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
17523         anonymous tagged types.
17524
17525 2010-05-27  Jason Merrill  <jason@redhat.com>
17526
17527         * print-tree.c (debug_vec_tree): New fn.
17528         (print_vec_tree): New fn.
17529         * tree.h: Declare them.
17530         * gdbinit.in (pvt): New command.
17531
17532         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
17533
17534         * gdbinit.in (pdd): New command.
17535
17536 2010-05-27  Jan Hubicka  <jh@suse.cz>
17537
17538         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
17539         (update_caller_keys): Return early if there are no callers;
17540         only update fibheap when decresing the key.
17541         (update_callee_keys): Avoid recursion.
17542         (decide_inlining_of_small_functions): When badness does not match;
17543         re-insert into fibheap.
17544
17545 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
17546
17547         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
17548         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
17549         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
17550         (ALL_HOST_OBJS): Now a union of the above two.
17551         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
17552         all files in ALL_HOST_FRONTEND_OBJS.
17553         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
17554
17555         * c-common.c: Pretend to be a backend file by undefining
17556         IN_GCC_FRONTEND (still need rtl.h here).
17557
17558 2010-05-27  Jan Hubicka  <jh@suse.cz>
17559
17560         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
17561         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
17562
17563 2010-05-27  Jan Hubicka  <jh@suse.cz>
17564
17565         * sched-ebb.c: Rename struct deps to struct deps_desc.
17566         * ddg.c: Likewise.
17567         * sel-sched-ir.c: Likewise.
17568         * sched-deps.c: Likewise.
17569         * sched-int.h: Likewise.
17570         * sched-rgn.c: Likewise.
17571
17572 2010-05-27  Jon Beniston  <jon@beniston.com>
17573
17574         PR 43726
17575         * config/lm32/lm32.h: Remove definition of
17576         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
17577
17578 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
17579
17580         PR lto/44230
17581         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
17582
17583 2010-05-27  Richard Guenther  <rguenther@suse.de>
17584
17585         PR tree-optimization/44284
17586         * tree-vect-stmts.c (vectorizable_assignment): Handle
17587         sign-changing conversions as simple copy.
17588
17589 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17590
17591         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
17592         Bionic C library.
17593         (__gthread_active_p): Check for pthread_create if compiling against
17594         Bionic C library.
17595
17596 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17597
17598         Support compilation for Android platform.  Reimplement -mandroid.
17599
17600         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
17601         (*android*): Set ANDROID_DEFAULT.
17602         (arm*-*-linux*): Include linux-android.h.
17603         (arm*-*-eabi*): Don't include previous -mandroid implementation.
17604         * config/arm/eabi.h: Remove, move Android-specific parts ...
17605         * config/linux-android.h: ... here.  New file.
17606         * config/arm/eabi.opt: Rename to ...
17607         * config/linux-android.opt: ... this.
17608         (mandroid): Allow -mno-android option.  Initialize based on
17609         ANDROID_DEFAULT.
17610         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
17611         Move logic to corresponding LINUX_TARGET_* macros.
17612         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
17613         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
17614         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
17615         Android definitions.
17616         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
17617         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
17618         Document.
17619
17620 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17621
17622         Add support for Bionic C library
17623
17624         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
17625         macro.
17626         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
17627         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
17628
17629         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
17630         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
17631         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
17632         to support multiple C libraries.  Handle Bionic.
17633         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
17634         (BIONIC_DYNAMIC_LINKER64): Define.
17635         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
17636         Update.
17637         (TARGET_HAS_SINCOS): Enable for Bionic.
17638
17639         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
17640         the last option specified on command line take effect.
17641         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
17642         (mbionic): New.
17643         (mglibc, muclibc): Update.
17644
17645         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
17646         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
17647         DEFAULT_LIBC.
17648
17649         * doc/invoke.texi (-mglibc, -muclibc): Update.
17650         (-mbionic): Document.
17651
17652 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17653
17654         * c-common.h (c_register_addr_space): Add prototype.
17655         (ADDR_SPACE_KEYWORD): Remove.
17656         * c-common.c (c_register_addr_space): New function.
17657         (c_addr_space_name): Reimplement.
17658         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
17659
17660         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
17661         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
17662
17663         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
17664         Remove TARGET_ADDR_SPACE_KEYWORDS.
17665
17666 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
17667
17668         * input.c: New file.
17669         * input.h (main_input_filename): Move declaration to toplev.h.
17670         * toplev.c (input_location, line_table): Move to input.c
17671         * toplev.h (main_input_filename): Move declaration from input.h.
17672         * tree.c (expand_location): Move to input.c.
17673         * Makefile.in (OBJS-common): Add input.o.
17674         (input.o): Add dependencies.
17675
17676 2010-05-27  Richard Guenther  <rguenther@suse.de>
17677
17678         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
17679         for non-existant files.
17680         (fork_execute): Mark args_name file as deleted.
17681
17682 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
17683
17684         PR bootstrp/44287
17685         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
17686         (narrow_signed_type): Likewise.
17687
17688 2010-05-26  Jan Hubicka  <jh@suse.cz>
17689
17690         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
17691         edge only when checking is enabled; check using former_clone_of;
17692         check inline clones too.
17693         (cgraph_materialize_clone): Record former_clone_of pointer.
17694         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
17695         combining redirections; dump args_to_skip bitmap
17696         (cgraph_materialize_all_clones): Do no redirection here.
17697         * ipa-inline.c (inline_transform): Do redirection here.
17698         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
17699         cheking only).
17700
17701 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17702
17703         * config/avr/avr-c.c: Do not include regs.h.
17704         Include cpplib.h for cpp_define and tree.h for c-common.h.
17705         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
17706         * config/avr/t-avr: Fix dependencies for avr-c.o.
17707
17708 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17709
17710         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
17711         string instead of SYMBOL_REF rtx.
17712         * rtl.h (set_stack_check_libfunc): Move prototype from here...
17713         * libfuncs.h: ...to here.  Adjust for explow.c change.
17714
17715 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
17716
17717         * pretty-print.c: Don't include ggc.h.
17718         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
17719         (identifier_to_locale): Use them for allocation.
17720         * pretty-print.h (identifier_to_locale_alloc,
17721         identifier_to_locale_free): Declare.
17722         * toplev.c (alloc_for_identifier_to_locale): New.
17723         (general_init): Set identifier_to_locale_alloc and
17724         identifier_to_locale_free.
17725         * Makefile.in (pretty-print.o): Update dependencies.
17726
17727 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
17728
17729         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
17730         pointer types if they have different alignment or mode.
17731
17732 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
17733
17734         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17735         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17736         * config/sparc/sparc-protos.h (function_value): Remove declaration.
17737         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
17738         sparc_function_value_regno_p): New functions.
17739         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17740         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17741         (function_value): Rename to...
17742         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
17743         argument to 'outgoing'.
17744         (function_arg_record_value, function_arg_union_value,
17745         function_arg_vector_value): Update comment.
17746
17747 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
17748
17749         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
17750         (fde_needed_for_eh_p): New predicate.
17751         (output_call_frame_info): Use it throughout to decide whether FDEs
17752         are needed for EH purpose.
17753         (dwarf2out_begin_prologue): Reorder assignments.
17754
17755 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17756
17757         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
17758         special case loop->header.
17759         (is_predicated): New.
17760         (if_convertible_loop_p): Call it.
17761
17762 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17763
17764         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
17765         iterator in parameter.  Do not generate code during the analysis.
17766         (tree_if_convert_cond_stmt): Removed.
17767         (tree_if_convert_stmt): Removed.
17768         (predicate_bbs): New.
17769         (if_convertible_loop_p): Call predicate_bbs.
17770         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
17771         now contains all the analysis part.
17772
17773 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17774
17775         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
17776         statements in the analysis part.
17777         (tree_if_convert_stmt): Update comment.
17778         (remove_conditions_and_labels): New.
17779         (combine_blocks): Call remove_conditions_and_labels.
17780         (tree_if_conversion): Update comment.
17781
17782 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17783
17784         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
17785         than 2 predecessors or more than 2 successors.
17786
17787 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17788
17789         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
17790         of loops in which the data dependence analysis fails.
17791
17792 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17793
17794         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
17795         CDI_POST_DOMINATORS.
17796         (tree_if_conversion): Same.
17797
17798 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17799
17800         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
17801
17802 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17803
17804         * tree-if-conv.c: Update copyright years.  Fix comments.
17805         Fix indentation.
17806
17807 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
17808
17809         * builtin-types.def (BT_INT128): New primitive type.
17810         (BT_UINT128): Likewise.
17811         * c-common.c (c_common_r): Add __int128 keyword.
17812         (c_common_type_for_size): Handle __int128.
17813         (c_common_type_for_mode): Likewise.
17814         (c_common_signed_or_unsigned_type): Likewise.
17815         (c_common_nodes_and_builtins): Add builtin type
17816         if target supports 128-bit integer scalar.
17817         * c-common.h (enum rid): Add RID_INT128.
17818         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
17819         if target supports 128-bit integer scalar.
17820         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
17821         (finish_declspecs): Likewise.
17822         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
17823         (c_token_starts_declspecs): Likewise.
17824         (c_parser_declspecs): Likewise.
17825         (c_parser_attributes): Likewise.
17826         (c_parser_objc_selector): Likewise.
17827         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
17828         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
17829         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
17830         * tree.c (make_or_reuse_type): Likewise.
17831         (make_unsigned_type): Likewise.
17832         (build_common_tree_nodes_2): Likewise.
17833         * tree.h (enum integer_type_kind): Add itk_int128 and
17834         itk_unsigned_int128.
17835         (int128_integer_type_node): New define.
17836         (int128_unsigned_type_node): New define.
17837         * doc/extend.texi: Add documentation about __int128 type.
17838
17839 2010-05-26  Richard Guenther  <rguenther@suse.de>
17840
17841         * tree-ssa-sccvn.c (copy_nary): Adjust.
17842         (copy_phis): Rename to ...
17843         (copy_phi): ... this.  Adjust.
17844         (copy_references): Rename to ...
17845         (copy_reference): ... this.  Adjust.
17846         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
17847         result into the valid table.
17848
17849 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17850
17851         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
17852         insn-config.h, insn-codes.h, recog.h, and optabs.h.
17853
17854 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17855
17856         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
17857
17858 2010-05-26  Richard Guenther  <rguenther@suse.de>
17859
17860         * opts.c (common_handle_option): Handle OPT_Ofast.
17861
17862 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
17863
17864         * diagnostic.c: Don't include opts.h.
17865         (permissive_error_option): Define.
17866         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
17867         for classify_diagnostic.  Don't use memset for
17868         classify_diagnostic.  Initialize new and recently added fields.
17869         (diagnostic_classify_diagnostic): Use context->n_opts instead of
17870         N_OPTS.
17871         (diagnostic_report_diagnostic): Pass context parameter to
17872         diagnostic_report_warnings_p.  Use option_enabled and option_name
17873         hooks from context.
17874         (emit_diagnostic): Use permissive_error_option.
17875         (permerror): Likewise.
17876         * diagnostic.h: Don't include options.h.
17877         (struct diagnostic_context): Add n_opts, opt_permissive,
17878         inhibit_warnings, warn_system_headers, option_enabled and
17879         option_name fields.  Change classify_diagnostic to a pointer.
17880         * opts-diagnostic.h: New file.
17881         * opts.c: Include opts-diagnostic.h.
17882         (common_handle_option): Set global_dc fields for -Wfatal-errors,
17883         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
17884         (option_name): New function.
17885         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
17886         (c_common_handle_option): Set global_dc->permissive for
17887         -fpermissive.
17888         * c-common.c (c_cpp_error): Save and restore
17889         global_dc->warn_system_headers, not variable warn_system_headers.
17890         * toplev.c: Include opts-diagnostic.h.
17891         (general_init): Update call to diagnostic_initialize.  Set
17892         global_dc->show_column, global_dc->option_enabled and
17893         global_dc->option_name.
17894         (process_options): Don't set global_dc fields here.
17895         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
17896         (diagnostic.o, opts.o, toplev.o): Update dependencies.
17897
17898 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17899
17900         * config/picochip/picochip.md (movsi): Split a movsi from a
17901         const after reload.
17902
17903 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17904
17905         * ggc-zone.c: Update copyright year.
17906         (poison_region): Mark memory for Valgrind as undefined before
17907         memset () call and inaccessible afterwards.
17908         (ggc_pch_total_size): Change type of i to int.
17909
17910 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17911
17912         * ggc-common.c (ggc_free_overhead): Allow empty slot.
17913
17914 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17915
17916         * ggc-common.c: Update copyright year.
17917         (ggc_rlimit_bound): Remove prototype.  Compile only if
17918         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
17919         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
17920         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
17921         (ggc_min_heapsize_heuristic): Likewise.
17922
17923 2010-05-26  Richard Guenther  <rguenther@suse.de>
17924
17925         PR rtl-optimization/44164
17926         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
17927         no-common access-path disambiguation.
17928         (indirect_ref_may_alias_decl_p): Adjust.
17929         (indirect_refs_may_alias_p): Likewise.
17930         (refs_may_alias_p_1): Likewise.
17931
17932 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17933
17934         * c-typeck.c: Do not include expr.h.
17935
17936 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17937
17938         * rtl.h (decl_default_tls_model): Move prototype from here...
17939         * output.h: ...to here.
17940         * c-decl.c: Do not include rtl.h.
17941         * c-pragma.c: Likewise.
17942         * c-parser.c: Likewise.
17943         * c-gimplify.c: Likewise.  And also not hard-reg-set.
17944         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
17945         FIXME note for it.  Add a FIXME note for expr.h.
17946         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
17947         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
17948         defined.
17949
17950 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
17951
17952         PR target/44199
17953         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
17954         or total_size is larger than red zone size for non-V4 ABI, emit a
17955         stack_tie resp. frame_tie insn before stack pointer restore.
17956         * config/rs6000/rs6000.md (frame_tie): New insn.
17957
17958 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
17959
17960         * function.h (struct function): Add can_throw_non_call_exceptions bit.
17961         * lto-streamer-in.c (input_function): Stream it in.
17962         * lto-streamer-out.c (output_function): Stream it out.
17963         * function.c (allocate_struct_function): Set it.
17964         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
17965         for flag_non_call_exceptions.
17966         * cfgbuild.c (control_flow_insn_p): Likewise.
17967         (make_edges): Likewise.
17968         * cfgexpand.c (expand_stack_alignment): Likewise.
17969         * combine.c (distribute_notes): Likewise.
17970         * cse.c (cse_extended_basic_block): Likewise.
17971         * except.c (insn_could_throw_p): Likewise.
17972         * gcse.c (simple_mem): Likewise.
17973         * ipa-pure-const.c (check_call): Likewise.
17974         (check_stmt ): Likewise.
17975         * lower-subreg.c (lower-subreg.c): Likewise.
17976         * optabs.c (emit_libcall_block): Likewise.
17977         (prepare_cmp_insn): Likewise.
17978         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
17979         * postreload.c (rest_of_handle_postreload): Likewise.
17980         * reload1.c (reload_as_needed): Likewise.
17981         (emit_input_reload_insns): Likewise.
17982         (emit_output_reload_insns): Likewise.
17983         (fixup_abnormal_edges): Likewise.
17984         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
17985         * store-motion.c (find_moveable_store): Likewise.
17986         * tree-eh.c (stmt_could_throw_p): Likewise.
17987         (tree_could_throw_p): Likewise.
17988         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17989         * config/arm/arm.c (arm_expand_prologue): Likewise.
17990         (thumb1_expand_prologue): Likewise.
17991         * config/rx/rx.md (cbranchsf4): Likewise.
17992         (cmpsf): Likewise.
17993         * config/s390/s390.c (s390_emit_prologue): Likewise.
17994         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
17995         (inline_forbidden_into_p): New predicate.
17996         (expand_call_inline): Use it to forbid inlining.
17997         (tree_can_inline_p): Likewise.
17998
17999 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18000
18001         * config/i386/i386-c.c: Do not include rtl.h.
18002         * config/i386/t-i386: Update dependencies.
18003
18004 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18005
18006         * attribs.c: Do not include rtl.h.
18007         * Makefile.in: Update dependencies.
18008
18009 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
18010
18011         * double-int.h (double_int_and): New.
18012         * combine.c (try_combine): Clean up, use double_int_* and
18013         immed_double_int_const functions.
18014
18015 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18016
18017         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
18018         stderr to /dev/null instead of grep -q.
18019         * configure: Regenerate.
18020
18021 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18022
18023         * Makefile.in (EXCEPT_H): Fix typo.
18024
18025 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
18026
18027         * ira-build.c (update_conflict_hard_reg_costs): New.
18028         (ira_build): Call update_conflict_hard_reg_costs.
18029
18030 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
18031
18032         PR debug/41371
18033         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
18034         ENABLE_CHECKING.
18035         (intersect_loc_chains): Walk the s2var's loc_chain together
18036         with s1node chain as long as the locations are equal, don't
18037         call find_loc_in_1pdv in that case.
18038
18039         PR debug/42801
18040         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
18041         (copy_bind_expr): ... instead of here.
18042         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
18043         if the block hasn't been remapped.
18044         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
18045         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
18046
18047 2010-05-25  Richard Guenther  <rguenther@suse.de>
18048
18049         PR middle-end/44069
18050         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
18051         out-of-bounds array accesses.
18052
18053 2010-05-25  Richard Guenther  <rguenther@suse.de>
18054
18055         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
18056         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
18057         (run_gcc): Re-organize to make cleanup easier.
18058
18059 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18060
18061         * config/s390/s390.c (optimization_options): Fix and move the
18062         flag_prefetch_loop_arrays override ...
18063         (override_options): ... here.
18064
18065 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
18066
18067         * diagnostic.c: Don't include plugin.h.
18068         (diagnostic_report_diagnostic): Don't handle plugins specially
18069         here.  Pass context to internal_error callback.
18070         * diagnostic.h (struct diagnostic_context): Add context parameter
18071         to internal_error callback.
18072         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
18073         * plugin.h (struct diagnostic_context): Declare.
18074         (warn_if_plugins, plugins_internal_error_function): Declare.
18075         * toplev.c (general_init): Set global_dc->internal_error.
18076         * Makefile.in (diagnostic.o): Update dependencies.
18077
18078 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
18079
18080         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
18081         * config/rs6000/t-darwin64: New.
18082         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
18083         build crt2.
18084
18085 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
18086
18087         PR 44203
18088         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
18089         match the original (and intended) behaviour before r159557.  This
18090         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
18091         in two ways.
18092
18093 2010-05-25  Richard Guenther  <rguenther@suse.de>
18094
18095         * doc/invoke.texi: Document -Ofast.
18096         * target.h (struct gcc_target): Add handle_ofast.
18097         * target-def.h (TARGET_HANDLE_OFAST): Add.
18098         (TARGET_INITIALIZER): Adjust.
18099         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
18100         * common.opt (Ofast): Add.
18101
18102 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
18103
18104         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
18105         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
18106
18107 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
18108
18109         PR target/43610
18110         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
18111         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
18112         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
18113         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
18114
18115 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
18116
18117         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
18118         DW_OP_minus with negated offset instead of DW_OP_plus.
18119         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
18120
18121 2010-05-25  Wei Guozhi  <carrot@google.com>
18122
18123         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
18124         tst instruction and a new alternative.
18125         * config/arm/constraints.md (Pu): New constraint.
18126
18127 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
18128
18129         * function.c (assign_stack_local_1): Initialize variable
18130         to avoid warning when bootstrapping at -O3.
18131
18132 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
18133
18134         * configure.ac (all_lang_makefiles): Remove everything related to it.
18135         * configure: Regenerate.
18136         * Makefile.in: Fix reference to ada Make-lang.in.
18137         Remove support for LANG_MAKEFILES.
18138
18139 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
18140             Sandra Loosemore  <sandra@codesourcery.com>
18141
18142         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
18143         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
18144         description.  Add arm_neon_fp16_ok.
18145         (Add Options): Add arm_neon and arm_neon_fp16.
18146
18147 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
18148
18149         * diagnostic.c: Don't include flags.h.
18150         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
18151         context parameters.  Check flags in the context passed as a parameter.
18152         (diagnostic_build_prefix): Add context parameter.  Check
18153         show_column flag in context.
18154         (diagnostic_action_after_output): Check fatal_errors flag in context.
18155         (diagnostic_report_current_module): Check show_column flag in context.
18156         (default_diagnostic_starter): Update call to
18157         diagnostic_build_prefix.
18158         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
18159         (emit_diagnostic): Pass context to permissive_error_kind.
18160         (permerror): Pass context to permissive_error_kind.
18161         * diagnostic.h (struct diagnostic_context): Add show_column,
18162         pedantic_errors, permissive and fatal_errors fields.
18163         (diagnostic_build_prefix): Update prototype.
18164         * langhooks.c
18165         * toplev.c (process_options): Set flags in global_dc from
18166         flag_show_column, flag_pedantic_errors, flag_permissive,
18167         flag_fatal_errors.
18168         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
18169         to diagnostic_build_prefix.
18170         * Makefile.in (diagnostic.o): Update dependencies.
18171
18172 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
18173
18174         * config/i386/ia32intrin.h (__crc32q): Define only if
18175         __SSE4_2__ is defined.
18176
18177 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
18178
18179         PR target/44132
18180         PR middle-end/43602
18181         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
18182         DECL_VISIBILITY_SPECIFIED.
18183         (emutls_decl): Set DECL_PRESERVE_P and copy
18184         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
18185         (emutls_finalize_control_var): New callback.
18186         (emutls_finish): Finalize emutls control variables.
18187         * toplev.c (compile_file): Move the call to emutls_finish ()
18188         before varpool_assemble_pending_decls ().
18189
18190 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
18191
18192         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
18193         added to the preprocessor condition.
18194
18195 2010-05-24  Paul Brook  <paul@codesourcery.com>
18196
18197         * gengtype-lex.l: Add HARD_REG_SET.
18198         * expr.c (expand_expr_real_1): Record writes to hard registers.
18199         * function.c (rtl_data): Add asm_clobbers.
18200         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
18201         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
18202         Use crtl->asm_clobbers.
18203
18204 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18205
18206         * doc/makefile.texi (Makefile): Mention stages 'profile'
18207         and 'feedback' for profiledbootstrap.
18208
18209 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
18210
18211         PR target/44245
18212         * config/i386/i386.c (def_builtin): Properly check
18213         OPTION_MASK_ISA_64BIT.
18214
18215 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
18216
18217         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
18218         typedefs with different but compatible types.  Allow duplicate
18219         typedefs with the same type except for pedantic non-C1X, but give
18220         warning for variably modified types.
18221         * c-typeck.c (tagged_types_tu_compatible_p,
18222         function_types_compatible_p, type_lists_compatible_p,
18223         comptypes_internal): Add parameter different_types_p; set
18224         *different_types_p for different but compatible types.  All
18225         callers changed.
18226         (comptypes_check_different_types): New.
18227         * c-tree.h (comptypes_check_different_types): Declare.
18228
18229 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
18230
18231         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
18232         * jump.c: Include basic-block.h.
18233         * profile.c: Likewise.
18234         * tree-profile.c: Likewise.
18235         * coverage.c: Likewise.
18236         * basic-block.h (optimize_function_for_size_p): Move to function.h.
18237         (optimize_function_for_speed_p): Likewise.
18238         * function.h (optimize_function_for_size_p,
18239         optimize_function_for_speed_p): Moved here from basic-block.h.
18240         * Makefile.in: Update dependencies.
18241
18242 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18243
18244         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
18245         before calling make; allow override through $MAKE.
18246         * doc/invoke.texi (Optimize Options): Document override.
18247
18248 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
18249
18250         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
18251         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18252         (rs6000_mode_dependent_address_ptr): Make static.
18253         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18254         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
18255         Remove.
18256
18257 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
18258
18259         PR target/43869
18260         * config/i386/i386.c: Make sure that the correct regparm is passed.
18261
18262 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
18263
18264         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
18265         * sbitmap.c: ...to here to internalize sbitmap element access.
18266         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
18267         Explain why basic-block.h is included.
18268         * function.h: Include tm.h for CUMULATIVE_ARGS.
18269         * Makefile.in: Update dependencies.
18270
18271 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18272
18273         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
18274         New core types.
18275         * sbitmap.h (struct sbitmap_def): Do not typedef here.
18276         * sbitmap.c: Include sbitmap.h.
18277         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
18278         hard-reg-set.h.  Split everything related to regsets out from here...
18279         * regset.h: ...to here.  New file.
18280         * df.h: Include regset.h and sbitmap.h.
18281         * tree-flow.h: Likewise.
18282         * cfgloop.h: Likewise.
18283         * except.h: Do not include sbitmap.h.  Include hashtab.h.
18284         * cgraph.h: Include vec.h and function.h.
18285         * reload.h (struct insn_chain): Change types of live_throughout
18286         and dead_or_set from regset_head to bitmap_head.
18287         (compute_use_by_pseudos): Be defined also if regset.h is not included.
18288         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
18289         spilled_regs from regset_head to bitmap_head to avoid dependency
18290         in regset.h.
18291         * sel-sched-ir.h: Include regset.h.
18292         * reload.c: Include df.h before reload.h.
18293         * caller-save.c: Likewise.
18294         * reload1.c: Likewise.
18295         * ira.c: Likewise.
18296         (mark_elimination): Update type of r to bitmap, consistent with
18297         DF_LR_IN.
18298         * dominance.c: Include bitmap.h.
18299         * modulo-sched.c: Include df.h.
18300         * cfganal.c: Include bitmap.h and sbitmap.h.
18301         * cfgbuild.c: Include sbitmap.h.
18302         * lcm.c: Include sbitmap.h.
18303         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
18304         * domwalk.c: Include sbitmap.h, exclude ggc.h.
18305         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
18306         * cselib.c: Include bitmap.h.
18307         * tree-optimize.c: Include regset.h.
18308         * stmt.c: Include bitmap.h.
18309         * Makefile.in: Update dependencies.
18310
18311 2010-05-22  Jan Hubicka  <jh@suse.cz>
18312
18313         * cgraph.h (struct varpool_node): Add same_comdat_group.
18314         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
18315         pointer.
18316         (output_varpool): Update call of lto_output_varpool_node.
18317         (input_varpool): Read same_comdat_group pointer.
18318         (input_varpool_1): Fixup same_comdat_group pointer.
18319         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
18320         group is needed, all are.
18321         * varpool.c (varpool_remove_node): Remove node from same comdat group
18322         linklist too.
18323         (varpool_analyze_pending_decls): Walk same comdat groups.
18324
18325 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18326
18327         * rtl.h (union rtunion_def): Remove rt_bit member.
18328         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
18329         * print-rtl (print_rtx): Do not print the member.
18330         * gengtype.c (adjust_field_rtx_def): Do not handle it.
18331         * gengenrtl.c (type_from_format): Likewise.
18332         (accessor_from_format): Likewise.
18333
18334 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
18335
18336         * dbgcnt.c: Include toplev.h instead of errors.h.
18337         * ira-emit.c: Don't include errors.h.
18338         * ira.c: Include toplev.h instead of errors.h.
18339         * lto-compress.c: Include toplev.h instead of errors.h.
18340         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
18341         ira.o, dbgcnt.o): Update dependencies.
18342
18343 2010-05-22  Richard Guenther  <rguenther@suse.de>
18344
18345         * gimple.c (gimple_types_compatible_p): Check type qualifications
18346         before merging pointer to complete and pointer to incomplete type.
18347         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
18348         we use our own resolution algorithm.  The gold linker plugin
18349         doesn't do the job we want it to do here.
18350
18351 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
18352
18353         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18354         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18355         (sparc_mode_dependent_address_p): New function.
18356
18357 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18358
18359         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
18360
18361         * timevar.c: Do not include any core headers.
18362         (timevar_print): De-i18n-ize.
18363         (print_time): Likewise.
18364         * timevar.h (timevar_push, timevar_pop): Make inline functions.
18365
18366 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
18367
18368         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
18369         langhooks-def.h.
18370         (diagnostic_initialize): Initialize x_data not last_function.
18371         (diagnostic_report_current_function): Move to tree-diagnostic.c.
18372         (default_diagnostic_starter): Call
18373         diagnostic_report_current_module not
18374         diagnostic_report_current_function.
18375         (diagnostic_report_diagnostic): Initialize x_data not
18376         abstract_origin.
18377         (verbatim): Likewise.
18378         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
18379         x_data.
18380         (struct diagnostic_context): Change last_function to x_data.
18381         (diagnostic_auxiliary_data): Replace with
18382         diagnostic_context_auxiliary_data and
18383         diagnostic_info_auxiliary_data.
18384         (diagnostic_last_function_changed, diagnostic_set_last_function,
18385         diagnostic_report_current_function): Move to tree-diagnostic.h.
18386         (print_declaration, dump_generic_node, print_generic_stmt,
18387         print_generic_stmt_indented, print_generic_expr,
18388         print_generic_decl, debug_c_tree, dump_omp_clauses,
18389         print_call_name, debug_generic_expr, debug_generic_stmt,
18390         debug_tree_chain, default_tree_printer): Move to
18391         tree-pretty-print.h.
18392         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
18393         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
18394         gimple-pretty-print.h.
18395         * pretty-print.c: Don't include tree.h
18396         (pp_base_format): Don't handle %K here.
18397         (pp_base_tree_identifier): Move to tree-pretty-print.c.
18398         * pretty-print.h (text_info): Change abstract_origin to x_data.
18399         (pp_tree_identifier, pp_unsupported_tree,
18400         pp_base_tree_identifier): Move to tree-pretty-print.h.
18401         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
18402         tree-pretty-print.h: New files.
18403         * tree-pretty-print.c: Include tree-pretty-print.h.
18404         (percent_K_format): New.  Moved from pretty-print.c.
18405         (pp_base_tree_identifier): Move from pretty-print.c.
18406         * c-objc-common.c: Include tree-pretty-print.h.
18407         (c_tree_printer): Handle %K here.
18408         * langhooks.c: Include tree-diagnostic.h.
18409         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
18410         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
18411         (default_tree_printer): Handle %K using percent_K_format.
18412         (general_init): Use default_tree_diagnostic_starter.
18413         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
18414         (free_lang_data): Use default_tree_diagnostic_starter.
18415         * c-pretty-print.c: Include tree-pretty-print.h.
18416         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18417         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18418         * dwarf2out.c: Include tree-pretty-print.h.
18419         * except.c: Include tree-pretty-print.h.
18420         * gimple-pretty-print.c: Include tree-pretty-print.h and
18421         gimple-pretty-print.h.
18422         * gimplify.c: Include tree-pretty-print.h.
18423         * graphite-poly.c: Include tree-pretty-print.h and
18424         gimple-pretty-print.h.
18425         * ipa-cp.c: Include tree-pretty-print.h.
18426         * ipa-inline.c: Include gimple-pretty-print.h.
18427         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18428         * ipa-pure-const.c: Include gimple-pretty-print.h.
18429         * ipa-struct-reorg.c: Include tree-pretty-print.h and
18430         gimple-pretty-print.h.
18431         * ipa-type-escape.c: Include tree-pretty-print.h.
18432         * print-rtl.c: Include tree-pretty-print.h.
18433         * print-tree.c: Include gimple-pretty-print.h.
18434         * sese.c: Include tree-pretty-print.h.
18435         * tree-affine.c: Include tree-pretty-print.h.
18436         * tree-browser.c: Include tree-pretty-print.h.
18437         * tree-call-cdce.c: Include gimple-pretty-print.h.
18438         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18439         * tree-chrec.c: Include tree-pretty-print.h.
18440         * tree-data-ref.c: Include tree-pretty-print.h and
18441         gimple-pretty-print.h.
18442         * tree-dfa.c: Include tree-pretty-print.h.
18443         * tree-if-conv.c: Include tree-pretty-print.h and
18444         gimple-pretty-print.h.
18445         * tree-inline.c: Include tree-pretty-print.h.
18446         * tree-into-ssa.c: Include tree-pretty-print.h and
18447         gimple-pretty-print.h.
18448         * tree-nrv.c: Include tree-pretty-print.h.
18449         * tree-object-size.c: Include tree-pretty-print.h and
18450         gimple-pretty-print.h.
18451         * tree-outof-ssa.c: Include tree-pretty-print.h and
18452         gimple-pretty-print.h.
18453         * tree-parloops.c: Include tree-pretty-print.h and
18454         gimple-pretty-print.h.
18455         * tree-predcom.c: Include tree-pretty-print.h and
18456         gimple-pretty-print.h.
18457         * tree-scalar-evolution.c: Include tree-pretty-print.h and
18458         gimple-pretty-print.h.
18459         * tree-sra.c: Include tree-pretty-print.h.
18460         * tree-ssa-address.c: Include tree-pretty-print.h.
18461         * tree-ssa-alias.c: Include tree-pretty-print.h.
18462         * tree-ssa-ccp.c: Include tree-pretty-print.h and
18463         gimple-pretty-print.h.
18464         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
18465         * tree-ssa-copy.c: Include tree-pretty-print.h and
18466         gimple-pretty-print.h.
18467         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
18468         * tree-ssa-dce.c: Include tree-pretty-print.h and
18469         gimple-pretty-print.h.
18470         * tree-ssa-dom.c: Include tree-pretty-print.h and
18471         gimple-pretty-print.h.
18472         * tree-ssa-dse.c: Include gimple-pretty-print.h.
18473         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
18474         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
18475         * tree-ssa-live.c: Include tree-pretty-print.h and
18476         gimple-pretty-print.h.
18477         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
18478         gimple-pretty-print.h.
18479         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
18480         gimple-pretty-print.h.
18481         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
18482         gimple-pretty-print.h.
18483         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
18484         gimple-pretty-print.h.
18485         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
18486         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
18487         * tree-ssa-operands.c: Include tree-pretty-print.h and
18488         gimple-pretty-print.h.
18489         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
18490         gimple-pretty-print.h.
18491         * tree-ssa-pre.c: Include tree-pretty-print.h and
18492         gimple-pretty-print.h.
18493         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
18494         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
18495         gimple-pretty-print.h.
18496         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
18497         gimple-pretty-print.h.
18498         * tree-ssa-sink.c: Include gimple-pretty-print.h.
18499         * tree-ssa-ter.c: Include tree-pretty-print.h and
18500         gimple-pretty-print.h.
18501         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
18502         * tree-ssa.c: Include tree-pretty-print.h and
18503         gimple-pretty-print.h.
18504         * tree-stdarg.c: Include gimple-pretty-print.h.
18505         * tree-switch-conversion.c: Include gimple-pretty-print.h.
18506         * tree-tailcall.c: Include tree-pretty-print.h and
18507         gimple-pretty-print.h.
18508         * tree-vect-data-refs.c: Include tree-pretty-print.h and
18509         gimple-pretty-print.h.
18510         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
18511         gimple-pretty-print.h.
18512         * tree-vect-loop.c: Include tree-pretty-print.h and
18513         gimple-pretty-print.h.
18514         * tree-vect-patterns.c: Include gimple-pretty-print.h.
18515         * tree-vect-slp.c: Include tree-pretty-print.h and
18516         gimple-pretty-print.h.
18517         * tree-vect-stmts.c: Include tree-pretty-print.h and
18518         gimple-pretty-print.h.
18519         * tree-vectorizer.c: Include tree-pretty-print.h.
18520         * tree-vrp.c: Include tree-pretty-print.h and
18521         gimple-pretty-print.h.
18522         * value-prof.c: Include tree-pretty-print.h and
18523         gimple-pretty-print.h.
18524         * var-tracking.c: Include tree-pretty-print.h.
18525         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
18526         (tree-diagnostic.o): New dependencies.
18527         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
18528         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
18529         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
18530         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
18531         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
18532         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
18533         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
18534         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
18535         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
18536         tree-ssa-address.o, tree-ssa-loop-niter.o,
18537         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
18538         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
18539         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
18540         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
18541         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
18542         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
18543         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
18544         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
18545         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
18546         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
18547         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
18548         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
18549         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
18550         tree-switch-conversion.o, var-tracking.o, value-prof.o,
18551         cfgexpand.o, pretty-print.o): Update dependencies.
18552
18553 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
18554
18555         * tree-ssa-structalias.c: Remove tm_p.h from include.
18556
18557 2010-05-21  Jeff Law  <law@redhat.com>
18558
18559         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
18560
18561 2010-05-21  Jason Merrill  <jason@redhat.com>
18562
18563         * tree-eh.c (cleanup_is_dead_in): New.
18564         (lower_try_finally): Don't generate a dead cleanup region.
18565         (lower_cleanup): Likewise.
18566
18567 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
18568
18569         PR debug/44223
18570         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
18571         unchain each use from the cyclic next_regno_use chain first.
18572
18573 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18574
18575         * real: Do not include gmp.h, mpfr.h, and mpc.h.
18576         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
18577         (real_value_negate, real_value_abs): New prototypes.
18578         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
18579         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
18580         new include file for interface between MPFR and REAL_VALUE_TYPE.
18581         * real.c: Include realmpfr.h.
18582         (real_arithmetic2): Remove legacy function.
18583         (real_value_negate): New.
18584         (real_value_abs): New.
18585         (mfpr_from_real, real_from_mpfr): Move from here...
18586         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
18587         * builtins.c: Include realmpfr.h.
18588         * fold-const.c: Include realmpfr.h.
18589         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
18590         (fold_negate_const): Likewise.
18591         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
18592         * toplev.c: Include realmpfr.h.
18593         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
18594         and real_value_negate.
18595         * fixed-value.c (check_real_for_fixed_mode): Likewise.
18596         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
18597         (vfp3_const_double_index): Likewise.
18598         (arm_print_operand): Likewise.
18599         * Makefile.in: Update dependencies.
18600
18601 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18602
18603         * config/s390/s390.c (override_options): Increase the default
18604         of max-completely-peel-times.
18605
18606 2010-05-21  Julian Brown  <julian@codesourcery.com>
18607             Mark Mitchell  <mark@codesourcery.com>
18608
18609         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
18610         sibling calls for Thumb-1.
18611         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
18612         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
18613         Thumb-2.
18614         (*call_insn, *call_value_insn): Don't use for Thumb-2.
18615         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
18616         for Thumb-2.
18617         (return): New expander.
18618         (*arm_return): New name for ARM return insn.
18619         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
18620
18621 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
18622
18623         * config.gcc (sparc64-*-rtems*): New target.
18624
18625 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
18626
18627         * tree.c (build_function_decl_skip_args): Fix grammar.
18628         (build_function_type_list_1): Fix typos, adjust formatting.
18629
18630 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18631
18632         * tree.h: Include real.h and fixed-value.h as basic datatypes.
18633         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
18634         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
18635         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
18636         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
18637         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
18638         tree-pretty-print.c, tree-loop-distribution.c,
18639         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
18640         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
18641         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
18642         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
18643         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
18644         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
18645         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
18646         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
18647         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
18648         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
18649         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
18650         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
18651         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
18652         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
18653         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
18654         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
18655         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
18656         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
18657         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
18658         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
18659         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
18660         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
18661         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
18662         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
18663         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
18664         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
18665         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
18666         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
18667         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
18668         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
18669         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
18670         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
18671         config/score/score7.c, config/score/score.c, config/arm/arm.c,
18672         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
18673         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
18674         config/bfin/bfin.c: Clean up redundant includes.
18675         * Makefile.in: Update accordingly.
18676
18677 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
18678
18679         PR middle-end/44204
18680         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
18681         statement has no arguments.
18682
18683 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
18684
18685         PR/44139
18686         * varasm.c (emutls_decl): Merge attributes to new decl.
18687
18688 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
18689
18690         PR middle-end/44101
18691         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
18692         around the uniquized constructor if its type requires a conversion.
18693
18694 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
18695
18696         PR debug/44205
18697         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
18698         at -O0 goto_locus of any of the incoming edges differs from
18699         goto_locus of outgoing edge, or gimple_location of any of the
18700         labels differs.
18701
18702 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
18703
18704         * ira.c (ira_non_ordered_class_hard_regs): Define.
18705         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
18706         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
18707         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
18708         cost of unaligned hard regs when allocating multi-reg pseudos.
18709
18710 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
18711
18712         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
18713         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
18714         for TARGET_NO_FLOAT.
18715         * config/mips/mips.c (mips_file_start): Expand conditional expression
18716         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
18717         (mips_override_options): Move -mno-float override -msoft-float and
18718         -mhard-float.
18719         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
18720         Condition(TARGET_SUPPORTS_NO_FLOAT).
18721         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
18722         __mips_no_float here.
18723         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
18724         (TARGET_SUPPORTS_NO_FLOAT): Define.
18725         * config/mips/sdemtk.opt: Delete.
18726
18727 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
18728
18729         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
18730
18731 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
18732
18733         PR target/43733
18734         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
18735         * configure: Regenerate.
18736         * config.in: Regenerate.
18737         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
18738         instead of sahf only for 64bit targets.
18739
18740 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
18741
18742         PR debug/44178
18743         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
18744         setup_ref_regs for DEBUG_INSNs.
18745
18746 2010-05-20  Jan Hubicka  <jh@suse.cz>
18747
18748         PR middle-end/44197
18749         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
18750
18751 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
18752
18753         PR bootstrap/43870
18754         * df-scan.c (df_ref_compare): Stabilize sort.
18755
18756 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
18757
18758         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
18759         argument.  Don't use DW_OP_piece if offset is non-zero,
18760         put offset into second DW_OP_bit_piece argument.
18761         (dw_sra_loc_expr): Adjust callers.  For memory expressions
18762         compute offset.
18763
18764 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
18765
18766         PR target/44202
18767         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
18768         settings for 16-bit-constant "addo" alternative.
18769
18770 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
18771
18772         * config/mips/mips-dsp.md (add<DSPV:mode>3,
18773         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
18774
18775         PR target/43764
18776         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
18777         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
18778         Use it.
18779
18780 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
18781
18782         * diagnostic.c (FLOAT, FFS): Don't undefine.
18783         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
18784         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
18785         include ordering.
18786
18787 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
18788
18789         * combine.c (propagate_for_debug): Call make_compound_operation
18790         on the source value.
18791         (try_combine): When implementing a split chosen by find_split_point,
18792         either copy i2src or set it to null.  Assert that i2src is not null
18793         before substituting into CALL_INSN_FUNCTION_USAGE.
18794
18795 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
18796
18797         * double-int.h (double_int_ior): New function.
18798         * tree.h (build_int_cst_wide_type): Remove.
18799         * tree.c (build_int_cst_wide_type): Remove.
18800         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
18801         of build_int_cst_wide_type.
18802         * stor-layout.c (set_sizetype): (Ditto.).
18803         * dojump.c (do_jump): Use build_int_cstu instead of
18804         build_int_cst_wide_type.
18805
18806 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
18807
18808         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
18809         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
18810         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
18811         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
18812         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
18813         propagate the 'data' argument to copy_tree_r.
18814         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
18815         Propagate 'data' argument to walk_tree.
18816         (copy_if_shared): New function.
18817         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
18818         (unmark_visited): New function.
18819         (unshare_body): Call copy_if_shared instead of doing it manually.
18820         (unvisit_body): Call unmark_visited instead of doing it manually.
18821
18822 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
18823
18824         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
18825         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
18826         * hooks.c: Likewise.
18827         * target-def.h (TARGET_FOLD_BUILTIN): Define to
18828         hook_tree_tree_int_treep_bool_null.
18829         * target.h (struct gcc_target): Update signature of fold_builtin
18830         field.
18831         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
18832         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
18833         instead of the call expression.
18834         (fold_builtin_call_array): Pass n and argarray directly.
18835         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
18836         consing a list.
18837         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
18838         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
18839         `i' and use it in place of `arity'.
18840         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
18841         Dereference `args' directly.
18842         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
18843
18844 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18845
18846         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18847         3dnow, sse3, sse2.
18848         (Directives): Document optional dg-require-effective-target
18849         selector.
18850
18851 2010-05-19  Richard Guenther  <rguenther@suse.de>
18852
18853         PR lto/44196
18854         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
18855
18856 2010-05-19  Richard Guenther  <rguenther@suse.de>
18857
18858         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
18859         * common.opt (fwhopr=): New.
18860         * opts.c (common_handle_option): Handle OPT_fwhopr.
18861         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
18862         * collect2.c (main): Match -fwhopr*.
18863         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
18864         Execute ltrans stage in parallel when jobs is bigger than 1.
18865
18866 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18867
18868         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18869         pentiumpro on Solaris 8/x86 with Sun as.
18870         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
18871         hidden alias bug.
18872         (gcc_cv_as_ix86_quad): Check for .quad directive.
18873         * configure: Regenerate.
18874         * config.in: Regenerate.
18875         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
18876
18877 2010-05-19  Martin Jambor  <mjambor@suse.cz>
18878
18879         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
18880         also for indirect edges.  Actual printing moved...
18881         (ipa_print_node_jump_functions_for_edge): ...here.
18882         (ipa_compute_jump_functions): Renamed to
18883         ipa_compute_jump_functions_for_edge and made static.
18884         (ipa_compute_jump_functions): New function.
18885         (make_edge_direct_to_target): Check if the number of arguments on
18886         the newly direct edge is the same as the number of parametrs of
18887         the callee.
18888         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
18889         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
18890         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18891         analysis functions unconditionally, call the new
18892         ipa_analyze_params_uses on the node instead of every edge.
18893
18894 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
18895
18896         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
18897         to tree.
18898         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
18899         also checks for a constant int vs.  non-constant but
18900         loop-invariant steps.
18901         (find_or_create_group): Change the sort algorithm to only consider
18902         steps that are constant ints.
18903         (idx_analyze_ref): Adopt code to handle a tree instead of a
18904         HOST_WIDE_INT for step.
18905         (gather_memory_references_ref): Handle tree instead of int and be
18906         prepared to see a NULL_TREE.
18907         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
18908         prefetches if the step cannot be calculated at compile time.
18909         (issue_prefetch_ref): Issue prefetches for non-constant but
18910         loop-invariant steps.
18911
18912 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
18913
18914         Revert:
18915         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
18916
18917         * tree.h (build_call_list): Remove.
18918         * tree.c (build_call_list): Remove.
18919
18920 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
18921
18922         * tree.h (build_call_list): Remove.
18923         * tree.c (build_call_list): Remove.
18924
18925 2010-05-18  Jan Hubicka  <jh@suse.cz>
18926
18927         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
18928
18929 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
18930
18931         PR rtl-optimization/43332
18932         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
18933
18934 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
18935
18936         * tree.h (build_int_cstu): Implement as static inline.
18937         * tree.c (build_int_cstu): Remove function.
18938         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
18939         sign extended.
18940
18941 2010-05-18  Richard Guenther  <rguenther@suse.de>
18942
18943         PR lto/44143
18944         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
18945         (debug): Initialize from -save-temps.
18946         (collect_execute): Print command-line when verbose.
18947         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
18948         for ltrans invocation.  Produce -dumpbase flag again.
18949         (process_args): Remove.
18950         (main): Simplify.
18951         * collect2.c (maybe_run_lto_and_relink): Only pass object
18952         files to lto-wrapper.
18953         * gcc.c (LINK_COMMAND_SPEC): Likewise.
18954
18955 2010-05-18  Jan Hubicka  <jh@suse.cz>
18956
18957         * opts.c (decode_options): Do not disable whopr at ipa_cp.
18958         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
18959
18960 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
18961
18962         PR lto/44184
18963         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
18964         in a GIMPLE_ASM.
18965         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
18966         in a GIMPLE_ASM.
18967
18968 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
18969
18970         PR debug/41371
18971         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
18972         rtx_equal_p inline.
18973
18974 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
18975
18976         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
18977         lto-macho as lto_binary_reader.
18978
18979         * darwin.c (darwin_asm_named_section): Do not add assembler comment
18980         after .section directive; just print it before the directive instead.
18981
18982 2010-05-17  Jan Hubicka  <jh@suse.cz>
18983
18984         * cgraph.c (cgraph_create_virtual_clone): Only check
18985         versionable_function_p when not in wpa and checking is enabled.
18986         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
18987         there are no more functions to materialize.
18988
18989 2010-05-17  Jan Hubicka  <jh@suse.cz>
18990
18991         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
18992         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
18993         New functions.
18994         (output_cgraph): Call output_cgraph_opt_summary.
18995         (input_cgrpah): Call input_cgraph_opt_summary.
18996         (output_cgraph_opt_summary_p, output_node_opt_summary,
18997         input_node_opt_summary, input_cgraph_opt_section): New functions.
18998         * lto-section-in.c (lto_section_name): Add cgraphopt.
18999         * tree-inline.c (tree_function_versioning): Handle parm_num.
19000         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
19001         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
19002
19003 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
19004
19005         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
19006         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
19007         the insn to prefetch ratio heuristic to loops with known trip count.
19008
19009 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
19010
19011         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
19012         (schedule_prefetches): Do not generate a prefetch if the unroll factor
19013         is far from what is required by the prefetch.
19014
19015 2010-05-17  Jan Hubicka  <jh@suse.cz>
19016
19017         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
19018         (ipcp_estimate_growth): Likewise.
19019         (ipcp_const_param_count): Likewise.
19020         (ipcp_insert_stage): Likewise.
19021         * ipa-prop.c (visit_load_for_mod_analysis): New function.
19022         (visit_store_addr_for_mod_analysis): Set used flag.
19023         (ipa_detect_param_modifications): Set used flag for SSE params;
19024         update use of walk_stmt_load_store_addr_ops.
19025         (ipa_print_node_params): Print used flag.
19026         (ipa_write_node_info): Stream used flag.
19027         (ipa_read_node_info): Likewise.
19028         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
19029         (ipa_is_param_used): New function.
19030         (lto_ipa_fixup_call_notes): Remove unused declaration.
19031
19032 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19033
19034         PR target/44074
19035         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
19036         * configure: Regenerate.
19037         * config.in: Regenerate.
19038         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
19039         !HAVE_AS_IX86_REP_LOCK_PREFIX.
19040         Don't emit whitespace.
19041         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
19042         (*rep_movsi): Likewise.
19043         (*rep_movsi_rex64): Likewise.
19044         (*rep_movqi): Likewise.
19045         (*rep_movqi_rex64): Likewise.
19046         (*rep_stosdi_rex64): Likewise.
19047         (*rep_stossi): Likewise.
19048         (*rep_stossi_rex64): Likewise.
19049         (*rep_stosqi): Likewise.
19050         (*rep_stosqi_rex64): Likewise.
19051         (*cmpstrnqi_nz_1): Use {%;} after repz.
19052         (*cmpstrnqi_nz_rex_1): Likewise.
19053         (*cmpstrnqi_1): Likewise.
19054         (*cmpstrnqi_rex_1): Likewise.
19055         (*strlenqi_1): Use {%;} after repnz.
19056         (*strlenqi_rex_1): Likewise.
19057         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
19058         (*sync_compare_and_swap<mode>): Likewise.
19059         (sync_double_compare_and_swap<mode>): Likewise.
19060         (*sync_double_compare_and_swapdi_pic): Likewise.
19061         (sync_old_add<mode>): Likewise.
19062         (sync_add<mode>): Likewise.
19063         (sync_sub<mode>): Likewise.
19064         (sync_<code><mode>): Likewise.
19065
19066 2010-05-17  Martin Jambor  <mjambor@suse.cz>
19067
19068         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
19069         otr_token and polymorphic.
19070         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
19071         (cgraph_clone_edge): Copy the above fields.
19072         * tree.c (get_binfo_at_offset): New function.
19073         * tree.h (get_binfo_at_offset): Declare.
19074         * ipa-prop.h (enum jump_func_type): Added known_type jump function
19075         type, reordered items, updated comments.
19076         (union jump_func_value): Added base_type field, reordered fields.
19077         (enum ipa_lattice_type): Moved down in the file.
19078         (struct ipa_param_descriptor): New field polymorphic.
19079         (ipa_is_param_polymorphic): New function.
19080         * ipa-prop.c: Include gimple.h and gimple-fold.h.
19081         (ipa_print_node_jump_functions): Print known type jump functions.
19082         (compute_complex_pass_through): Renamed to...
19083         (compute_complex_assign_jump_func): this.
19084         (compute_complex_ancestor_jump_func): New function.
19085         (compute_known_type_jump_func): Likewise.
19086         (compute_scalar_jump_functions): Create known type and complex ancestor
19087         jump functions.
19088         (ipa_note_param_call): New parameter polymorphic, set the corresponding
19089         flag in the call note accordingly.
19090         (ipa_analyze_call_uses): Renamed to...
19091         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
19092         variable var only in the block where it is used.
19093         (ipa_analyze_virtual_call_uses): New function.
19094         (ipa_analyze_call_uses): Likewise.
19095         (combine_known_type_and_ancestor_jfs): Likewise.
19096         (update_jump_functions_after_inlining): Implemented handling of a
19097         number of new jump function types combination.
19098         (print_edge_addition_message): Removed.
19099         (make_edge_direct_to_target): New function.
19100         (try_make_edge_direct_simple_call): Likewise.
19101         (try_make_edge_direct_virtual_call): Likewise.
19102         (update_call_notes_after_inlining): Renamed to...
19103         (update_indirect_edges_after_inlining): this.  Moved edge creation for
19104         indirect calls to try_make_edge_direct_simple_call, also calls
19105         try_make_edge_direct_virtual_call for virtual calls.
19106         (ipa_print_node_params): Changed the header message.
19107         (ipa_write_jump_function): Stream also known type jump functions.
19108         (ipa_read_jump_function): Likewise.
19109         (ipa_write_indirect_edge_info): Stream new fields in
19110         cgraph_indirect_call_info.
19111         (ipa_read_indirect_edge_info): Likewise.
19112         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
19113         GIMPLE_FOLD_H.
19114
19115 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19116
19117         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
19118
19119 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
19120
19121         * tree.h (CALL_EXPR_ARGS): Delete.
19122         (call_expr_arglist): Delete.
19123         * tree.c (call_expr_arglist): Delete.
19124         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
19125         targetm.fold_builtin.
19126         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
19127         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
19128         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
19129         arglist parameter.  Use CALL_EXPR_ARG.
19130         (picochip_expand_builtin_3op): Likewise.
19131         (picochip_expand_builtin_2opvoid): Likewise.
19132         (picochip_expand_array_get): Likewise.
19133         (picochip_expand_array_put): Likewise.
19134         (picochip_expand_array_testport): Likewise.
19135         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
19136         rather than arglist.
19137         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
19138         CALL_EXPR_ARGS.
19139         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
19140         than TREE_VALUE and TREE_CHAIN.
19141         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
19142         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
19143         the arglist.
19144
19145 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
19146
19147         PR bootstrap/42347
19148         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
19149         to have no fallthru edge.
19150
19151         PR middle-end/44102
19152         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
19153         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
19154         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
19155         add BARRIER after previous bb if needed.
19156
19157 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
19158
19159         * tree.c (build_function_type_list_1): Remove bogus assert condition.
19160
19161 2010-05-17  Alan Modra  <amodra@gmail.com>
19162
19163         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
19164         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
19165         with copy_reg rtx param.
19166         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
19167         Correct cases where code for ABI_V4 did not initialise the reg
19168         used to access frame.  Also leave frame_reg_rtx as sp for large
19169         frames that save no regs.
19170
19171 2010-05-17  Martin Jambor  <mjambor@suse.cz>
19172
19173         PR middle-end/44133
19174         * tree-sra.c (create_access_replacement): New parameter rename, mark
19175         the replaement for renaming only when it is true.
19176         (get_access_replacement): Pass true in the rename parameter of
19177         create_access_replacement.
19178         (get_unrenamed_access_replacement): New function.
19179         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
19180         replacement declaration from it.
19181
19182 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
19183
19184         * function.c (try_fit_stack_local, add_frame_space): New static
19185         functions.
19186         (assign_stack_local_1): Use them.  Look for opportunities to use
19187         space previously wasted on alignment.
19188         * function.h (struct frame_space): New.
19189         (struct rtl_data): Add FRAME_SPACE_LIST member.
19190         * reload1.c (something_was_spilled): New static variable.
19191         (alter_reg): Set it.
19192         (reload): Test it in addition to testing if the frame size changed.
19193
19194 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
19195
19196         * config/s390/s390.c: Define sane prefetch settings and activate
19197         flag_prefetch_loop_arrays on -O3.
19198         * config/s390/s390.h: Declare that read can use write prefetch.
19199
19200 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
19201
19202         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
19203         build.
19204
19205 2010-05-16  Jan Hubicka  <jh@suse.cz>
19206
19207         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
19208         function body; do not check stdarg field of struct function.
19209
19210 2010-05-16  Jan Hubicka  <jh@suse.cz>
19211
19212         * cgraph.c (dump_cgraph_node): Dump versionable flag.
19213         * cgraph.h (cgraph_local_info): Add versionable flag.
19214         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
19215         (ipcp_versionable_function_p): Use it.
19216         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
19217         versionable flag.
19218
19219 2010-05-16  Jan Hubicka  <jh@suse.cz>
19220
19221         * cgraph.c (cgraph_clone_node): Take decl argument and insert
19222         clone into hash when it is different from orig.
19223         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
19224         * cgraph.h (cgraph_clone_node): Update prototype.
19225         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
19226         (lto_cgraph_encoder_delete): Delete body map.
19227         (lto_cgraph_encoder_size): Move to header.
19228         (lto_cgraph_encoder_encode_body_p,
19229         lto_set_cgraph_encoder_encode_body): New.
19230         (lto_output_node): Do not take written_decls argument; output clone_of
19231         pointer.
19232         (add_node_to): Add include_body_argument; call
19233         lto_set_cgraph_encoder_encode_body on master of the clone.
19234         (add_references): Update use of add_node_to.
19235         (compute_ltrans_boundary): Likewise.
19236         (output_cgraph): Do not create written_decls bitmap.
19237         (input_node): Take nodes argument; stream in clone_of correctly.
19238         (input_cgraph_1): Update use of input_node.
19239         * lto-streamer-out.c (lto_output): Use encoder info to decide
19240         what bodies to output.
19241         * ipa-inline.c (cgraph_clone_inlined_nodes,
19242         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
19243         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
19244         (lto_cgraph_encoder_size): Define here.
19245         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
19246         Declare.
19247
19248 2010-05-16  Richard Guenther  <rguenther@suse.de>
19249
19250         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
19251         -fipa-type-escape.
19252         * ipa-type-escape.c (gate_type_escape_vars): Run when
19253         -fipa-struct-reorg runs.
19254         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
19255         * common.opt (fipa-type-escape): Remove.
19256
19257 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19258
19259         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
19260         (decode_options): Likewise.
19261         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
19262
19263 2010-05-16  Jan Hubicka  <jh@suse.cz>
19264
19265         * ipa.c (function_and_variable_visibility): Also bring local all
19266         aliases.
19267
19268 2010-05-16  Richard Guenther  <rguenther@suse.de>
19269
19270         * alias.c (nonoverlapping_memrefs_p): Remove use of
19271         IPA type-escape information.
19272
19273 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
19274
19275         * c-common.c (c_common_reswords): Add _Static_assert for C.
19276         * c-parser.c (c_token_starts_declaration,
19277         c_parser_next_token_starts_declaration,
19278         c_parser_static_assert_declaration_no_semi,
19279         c_parser_static_assert_declaration): New.
19280         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
19281         Handle static assertions if static_assert_ok.
19282         (c_parser_external_declaration, c_parser_declaration_or_fndef,
19283         c_parser_compound_statement_nostart, c_parser_label,
19284         c_parser_for_statement, c_parser_objc_methodprotolist,
19285         c_parser_omp_for_loop): All callers of
19286         c_parser_declaration_or_fndef changed.
19287         (c_parser_struct_declaration): Handle static assertions.
19288         (c_parser_compound_statement_nostart): Use
19289         c_parser_next_token_starts_declaration and
19290         c_token_starts_declaration to detect start of declarations.
19291         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
19292         Likewise.
19293
19294 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
19295
19296         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19297         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19298         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19299         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19300         (mmix_function_outgoing_value): Rename to...
19301         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
19302         (mmix_function_value_regno_p): Make static.
19303         (mmix_libcall_value): New function.
19304         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
19305         mmix_function_value_regno_p): Remove declaration.
19306
19307 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19308
19309         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
19310         BUILT_IN_ALLOCA if stack checking is enabled.
19311
19312 2010-05-16  Richard Guenther  <rguenther@suse.de>
19313
19314         * var-tracking.c (vars_copy_1): Inline ...
19315         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19316         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
19317         (variable_merge_over_cur): Adjust.  Merge asserts.
19318         (variable_merge_over_src): Likewise.
19319         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
19320         (variable_post_merge_new_vals): Merge asserts.
19321         (variable_post_merge_perm_vals): Likewise.
19322         (find_mem_expr_in_1pdv): Likewise.
19323         (dataflow_set_different_value): Remove.
19324         (onepart_variable_different_p): Merge asserts.
19325         (variable_different_p): Likewise.
19326         (dataflow_set_different_1): Inline ...
19327         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19328         (emit_notes_for_differences_1): Merge asserts.
19329
19330 2010-05-16  Richard Guenther  <rguenther@suse.de>
19331
19332         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
19333         * optabs.c (libfunc_decl_hash): Likewise.
19334         * varasm.c (emutls_decl): Likewise.
19335
19336 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
19337
19338         * c-decl.c: Don't include gimple.h.
19339         (merge_decls): Do not copy gimple_body.
19340
19341 2010-05-15  Jason Merrill  <jason@redhat.com>
19342
19343         * c.opt: Add -fnothrow-opt.
19344
19345 2010-05-15  Jan Hubicka  <jh@suse.cz>
19346
19347         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
19348         analyzed.
19349         * passes.c (ipa_write_summaries): Write all analyzed nodes.
19350
19351 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
19352
19353         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
19354         * Makefile.in: Add it.
19355         Fix all other Makefile dependencies for changes below.
19356         * tree.h: Include it instead of defining VEC primitives here.
19357         * gimple.h: Likewise.
19358         * rtl.h: Likewise.
19359         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
19360         * except.h: Include vecir.h, break dependence on tree.h.
19361
19362         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
19363         Move from here...
19364         * tree-iterator.c: ...to here.
19365         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
19366
19367         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
19368         tm_p.h.
19369         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
19370         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
19371         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
19372         tree-mudflap.h, and target.h.
19373         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
19374         predict.h, tree-inline.h, gimple.h, and langhooks.h.
19375         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
19376         Add FIXME for why gimple.h is still included (should be unnecessary
19377         since GCC 4.5 gimplification unit-at-a-time).
19378         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
19379         * c-pragma.c: Add FIXME for why function.h needs to be included just
19380         for cfun, at front-end level.
19381         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
19382         Do not include ggc.h, but include vecprim.h for VEC(char).
19383         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
19384         Explain why target.h is included.
19385         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
19386         Explain why gimple.h is included.
19387         * c-ppoutput.c: Do not include tm.h.
19388         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
19389         * c-parses.c: Explain why rtl.h is included, and that this (and only
19390         this) is also why tm.h must be included.
19391         Do not include except.h.
19392         * c-lang.c: Do not include ggc.h.
19393
19394 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
19395
19396         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
19397
19398 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
19399
19400         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
19401         unions by default if those structs and unions have no tags.  Do
19402         not condition anonymous struct and unions handling on flag_iso.
19403         Allow anonymous structs and unions for C1X.
19404         (finish_struct): Do not diagnose lack of named fields when
19405         anonymous structs and unions present for C1X.  Accept flexible
19406         array members in structure with anonymous structs or unions but no
19407         directly named fields.
19408         * doc/extend.texi (Unnamed Fields): Update.
19409
19410 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
19411
19412         * gimple.h (compare_field_offset): Rename into...
19413         (gimple_compare_field_offset): ...this.
19414         * gimple.c (compare_field_offset): Rename into...
19415         (gimple_compare_field_offset): ...this.  Compare the full access if
19416         the offset is self-referential.
19417         (gimple_types_compatible_p): Adjust for above renaming.
19418         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
19419         DECL_NONADDRESSABLE_P flag of fields before merging them.
19420
19421 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
19422
19423         * tree.h (ctor_to_list): Delete.
19424         * tree.c (ctor_to_list): Delete.
19425
19426 2010-05-15  Jan Hubicka  <jh@suse.cz>
19427
19428         * ipa-reference.c: Include toplev.h
19429         (is_proper_for_analysis): Only add to all_module_statics
19430         if it is allocated.
19431         (write_node_summary_p, stream_out_bitmap,
19432         ipa_reference_write_optimization_summary,
19433         ipa_reference_read_optimization_summary): New.
19434         (struct ipa_opt_pass_d pass_ipa_reference): Add
19435         optimization summary streaming.
19436         * lto-cgraph.c (referenced_from_this_partition_p,
19437         reachable_from_this_partition_p): New functions.
19438         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
19439         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
19440         * opts.c (decode_options): Enable ipa_reference.
19441         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
19442         * lto-streamer.h (referenced_from_this_partition_p,
19443         reachable_from_this_partition_p): Declare.
19444
19445 2010-05-15  Richard Guenther  <rguenther@suse.de>
19446
19447         PR tree-optimization/44038
19448         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
19449         taking the address of a V_C_E of a constant.
19450
19451 2010-05-14  Jan Hubicka  <jh@suse.cz>
19452
19453         * tree.h (memory_identifier_string): Remove.
19454         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
19455         (ipa_reference_global_vars_info_d): Remove statics_not_read and
19456         statics_not_written.
19457         (ipa_reference_optimization_summary_d): New structure.
19458         (ipa_reference_optimization_summary_t): New type and vector.
19459         (ipa_reference_vars_info_d): Embedd structures instead of using
19460         pointers.
19461         (reference_vars_to_consider): Remove out of GGC space.
19462         (module_statics_escape): Remove.
19463         (global_info_obstack): Rename to ...
19464         (optimization_summary_obstack): ... this one.
19465         (initialization_status_t): Remove.
19466         (memory_identifier_string): Remove.
19467         (get_reference_vars_info): Fix indenting.
19468         (set_reference_vars_info): Likewise.
19469         (get_reference_optimization_summary): New.
19470         (set_reference_optimization_summary): New.
19471         (get_global_reference_vars_info): Remove.
19472         (ipa_reference_get_read_global): Remove.
19473         (ipa_reference_get_written_global): Remove.
19474         (ipa_reference_get_not_read_global): Update.
19475         (ipa_reference_get_not_written_global): Update.
19476         (is_proper_for_analysis): Outlaw addressable.
19477         (propagate_bits): Update for new datastructures.
19478         (analyze_variable): Remove.
19479         (init_function_info): Update for new datastructures.
19480         (clean_function_local_data): Remove.
19481         (clean_function): Remove.
19482         (copy_global_bitmap): Use optimizations_summary_obstack.
19483         (duplicate_node_data): Duplicate optimization summary only.
19484         (remove_node_data): Remove optimization summary only.
19485         (generate_summary): Do not analyze variables; do not compute
19486         module_statics_escape; do not prune solutions by it.
19487         (read_write_all_from_decl): Fix typos in comments.
19488         (propagate): Doscover readonly and nonaddressable first;
19489         update for new datastructures; share global bitmaps.
19490         * ipa-reference.h (ipa_reference_get_read_global,
19491         ipa_reference_get_written_global): Remove.
19492         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
19493         * Makefile.in: Remove ipa-refereference from GT files.
19494
19495 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
19496
19497         PR debug/44112
19498         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
19499         for all SYMBOL_REF_DECLs.
19500
19501 2010-05-14  Jan Hubicka  <jh@suse.cz>
19502
19503         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
19504         (varpool_all_refs_explicit_p): New inline function.
19505         * ipa-reference.c: Update comment.
19506         (module_statics_written): Remove.
19507         (get_static_decl): Remove.
19508         (ipa_init): Do not initialize module_statics_written.
19509         (analyze_function): Likewise.
19510         (generate_summary): Likewise; do not compute module_statics_readonly
19511         and do not update variable flags.
19512         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
19513         * ipa.c: Inlucde flags.h
19514         (cgraph_local_node_p): New.
19515         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
19516         promote functions to local.
19517         (ipa_discover_readonly_nonaddressable_vars): New function.
19518         (function_and_variable_visibility): Use cgraph_local_node_p.
19519         * varpool.c (varpool_finalize_decl): Set force_output for
19520         DECL_PRESERVE_P vars.
19521
19522 2010-05-14  Jan Hubicka  <jh@suse.cz>
19523
19524         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
19525
19526 2010-05-14  Richard Guenther  <rguenther@suse.de>
19527
19528         PR tree-optimization/44119
19529         * tree-ssa-pre.c (eliminate): Properly mark replacement of
19530         a PHI node necessary.
19531
19532 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
19533
19534         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
19535
19536 2010-05-14  Jason Merrill  <jason@redhat.com>
19537
19538         PR c++/44127
19539         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
19540         (gimple_call_set_nothrow): New.
19541         * gimple.c (gimple_build_call_from_tree): Call it.
19542         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
19543
19544         PR c++/44127
19545         * gimplify.c (gimplify_seq_add_stmt): No longer static.
19546         * gimple.h: Declare it.
19547         * gimple.c (gimple_build_eh_filter): No ops.
19548
19549 2010-05-14  Jan Hubicka  <jh@suse.cz>
19550
19551         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
19552         nodes already in queue.
19553         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
19554         re-enqueueing node.
19555
19556 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
19557
19558         PR debug/44136
19559         * cfgexpand.c (expand_debug_expr): If non-memory op0
19560         has BLKmode, return NULL.
19561
19562 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
19563
19564         * config.gcc: Add support for --with-cpu option for bdver1.
19565         * config/i386/i386.h (TARGET_BDVER1): New macro.
19566         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
19567         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19568         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
19569         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19570         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
19571         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
19572         (processor_type): Add PROCESSOR_BDVER1.
19573         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
19574         processor_type in config/i386/i386.h.
19575         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
19576         movaps <reg, reg> instead of movapd <reg, reg> when replacing
19577         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
19578         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
19579         to emit packed xor instead of packed double/packed integer
19580         xor for SSE and AVX when moving a zero value.
19581         * config/i386/sse.md: Add check for
19582         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
19583         movapd/movdqa for SSE and AVX.
19584         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
19585         single logical operations i.e and, or and xor instead of packed double
19586         logical operations for SSE and AVX.
19587         * config/i386/i386-c.c (ix86_target_macros_internal):
19588         Add PROCESSOR_BDVER1.
19589         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
19590         (has_fma4, has_xop): New.
19591         * config/i386/i386.c (bdver1_cost): New variable.
19592         (m_BDVER1): New macro.
19593         (m_AMD_MULTIPLE): Add m_BDVER1.
19594         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
19595         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
19596         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
19597         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
19598         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
19599         x86_tune_sse_partial_reg_dependency,
19600         x86_tune_sse_unaligned_load_optimal,
19601         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
19602         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
19603         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
19604         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
19605         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
19606         Enable/disable for bdver1.
19607         (processor_target_table): Add bdver1_cost.
19608         (cpu_names): Add bdver1.
19609         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
19610          processor_alias_table.
19611         (ix86_expand_vector_move_misalign): Change.
19612         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
19613         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
19614         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
19615         of movupd/movdqu for SSE and AVX.
19616         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
19617         (ix86_tune_adjust_cost): Add code for bdver1.
19618         (standard_sse_constant_opcode): Add check for
19619         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
19620         of packed double xor for SSE and AVX.
19621
19622 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
19623
19624         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
19625         result to unsigned.
19626
19627 2010-05-14  Tristan Gingold  <gingold@adacore.com>
19628
19629         * toplev.c (default_debug_hooks): Remove this variable.
19630         (process_options): Remove assignments to default_debug_hooks.
19631
19632 2010-05-14  Martin Jambor  <mjambor@suse.cz>
19633
19634         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
19635         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
19636         * langhooks.h (struct lang_hooks_for_decls): Removed field
19637         fold_obj_type_ref.
19638         * tree.c (free_lang_data): Remove assignment to
19639         lang_hooks.fold_obj_type_ref.
19640         * tree.def (OBJ_TYPE_REF): Update comment.
19641
19642 2010-05-14  Richard Guenther  <rguenther@suse.de>
19643
19644         PR tree-optimization/44124
19645         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
19646
19647 2010-05-14  Alan Modra  <amodra@gmail.com>
19648
19649         PR target/44075
19650         * config/rs6000/rs6000.c (struct machine_function): Reorder
19651         fields for better packing.  Add lr_save_state.
19652         (rs6000_ra_ever_killed): Return lr_save_state if set.
19653         (rs6000_emit_eh_reg_restore): Set lr_save_state.
19654
19655 2010-05-13  Jan Hubicka  <jh@suse.cz>
19656
19657         * varpool.c (decide_is_variable_needed): Drop code checking
19658         TREE_SYMBOL_REFERENCED.
19659
19660 2010-05-13  Jan Hubicka  <jh@suse.cz>
19661
19662         * final.c (output_addr_const): Do not call mark_decl_referenced.
19663         * cgraphunit.c (process_function_and_variable_attributes): Use
19664         mark_needed_node dirrectly.
19665         (assemble_thunk): Do not call mark_decl_referenced.
19666
19667 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
19668
19669         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
19670
19671 2010-05-13  Jeff Law  <law@redhat.com>
19672
19673         * ira-conflicts.c (print_allocno_conflicts): New function broken out
19674         from...
19675         (print_conflicts): Call print_allocno_conflicts.
19676
19677 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
19678
19679         PR debug/44104
19680         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
19681         if it is NULL.
19682
19683 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
19684
19685         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
19686         t-mingw-w64 or t-mingw-w32 for multilib configuration.
19687         * config/i386/t-mingw-w32: New.
19688         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
19689
19690 2010-05-13  Martin Jambor  <mjambor@suse.cz>
19691
19692         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
19693         gimple-fold.c).
19694         * gimple-fold.c (get_base_binfo_for_type): New function.
19695         (gimple_get_relevant_ref_binfo): Likewise.
19696         (gimple_fold_obj_type_ref_known_binfo): Likewise.
19697         (gimple_fold_obj_type_ref): Likewise.
19698         (fold_gimple_call): Simplify condition for folding virtual calls
19699         and call gimple_fold_obj_type_ref.
19700         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
19701         (gimple_fold_obj_type_ref_known_binfo): Likewise.
19702
19703 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
19704
19705         * config/rs6000/rs6000-protos.h
19706         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
19707         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
19708         (rs6000_debug_mode_dependent_address)
19709         (rs6000_mode_dependent_address_ptr): Likewise.
19710
19711 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
19712
19713         PR debug/43983
19714         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
19715         by SRA.
19716         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
19717         * tree-sra.c (create_access_replacement): Call unshare_expr before
19718         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
19719         * dwarf2out.c: Include tree-flow.h.
19720         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
19721         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
19722         Handle DW_OP_bit_piece.
19723         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
19724         construct_piece_list, adjust_piece_list): New functions.
19725         (add_var_loc_to_decl): Handle SRA optimized variables.
19726         Adjust for var_loc_note to loc field renaming.
19727         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
19728         in VAR_LOCATION note.
19729         (new_loc_descr_op_bit_piece): New function.
19730         (dw_sra_loc_expr): New function.
19731         (dw_loc_list): Use it.  Don't handle the last range after the
19732         loop, handle it inside of the loop.  Adjust for var_loc_note
19733         to loc field renaming.
19734         (add_location_or_const_value_attribute): Only special case
19735         single entry loc lists if loc is NOTE_P.  Adjust for
19736         var_loc_note to loc field renaming.
19737         (dwarf2out_var_location): Don't set newloc->var_loc_note
19738         and newloc->next here.
19739
19740 2010-05-12  Jan Hubicka  <jh@suse.cz>
19741
19742         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
19743         flag.
19744         * cgraph.h (cgraph_only_called_directly_p,
19745         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
19746         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
19747         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
19748         (assemble
19749         * ipa.c (cgraph_remove_unreachable_nodes): Use
19750         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
19751         flags.
19752         * tree-inline.c (copy_bb): Check address_taken flag.
19753         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
19754         externally_visible flag.
19755
19756 2010-05-12  Jason Merrill  <jason@redhat.com>
19757
19758         PR bootstrap/44048
19759         PR target/44099
19760         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
19761         * sdbout.c (plain_type_1): Likewise.
19762         * dwarf2out.c (is_base_type): Likewise.
19763         (gen_type_die_with_usage): Likewise.  Generate
19764         DW_TAG_unspecified_type for any LANG_TYPE.
19765
19766 2010-05-12  Jan Hubicka  <jh@suse.cz>
19767
19768         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
19769         indrect edges too.
19770         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
19771         (cgraph_clone_edge): Update.
19772         (cgraph_node_remove_callees): Remove indirect calls too.
19773         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
19774         (cgraph_create_indirect_edge): Update prototype.
19775         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
19776         is_proper_for_analysis.
19777         (add_new_function, visited_nodes, function_insertion_hook_holder,
19778         get_local_reference_vars_info, mark_address_taken, mark_address,
19779         mark_load, mark_store, check_asm_memory_clobber, check_call,
19780         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
19781         (ipa_init): Do not initialize visited_nodes;
19782         function_insertion_hook_holder.
19783         (analyze_variable): Rewrite.
19784         (analyze_function): Rewrite.
19785         (copy_local_bitmap): Remove.
19786         (duplicate_node_dat): Do not duplicate local info.
19787         (generate_summary): Simplify to only walk cgraph.
19788         (write_node_summary_p, ipa_reference_write_summary,
19789         ipa_reference_read_summary): Remove.
19790         (propagate): Do not remove function insertion;
19791         generate summary.
19792         (pass_ipa_reference): NULLify summary handling fields.
19793         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
19794         (input_edge): Input ecf_flags.
19795         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
19796         (update_indirect_edges_after_inlining): Ignore edges with unknown
19797         param.
19798
19799 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
19800
19801         * implicit-zee.c: New file.
19802         * tree-pass.h (pass_implicit_zee): Declare.
19803         * passes.c (init_optimization_passes): Add zee pass.
19804         * common.opt (fzee): New flag.
19805         * timevar.def (TV_ZEE): Define.
19806         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
19807         and beyond.
19808         * Makefile.in (implicit-zee.o): Add new build file.
19809
19810 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
19811             Nathan Froyd  <froydnj@codesourcery.com>
19812
19813         * c-common.c (sync_resolve_params): Remove write-only variable.
19814
19815 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
19816
19817         * target.h (struct gcc_target): Add mode_dependent_address_p field.
19818         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
19819         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
19820         * targhooks.c (default_mode_dependent_address_p): New function.
19821         * targhooks.h (default_mode_dependent_address_p): Declare function.
19822         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
19823         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
19824         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
19825         target hook. Change return type to bool.
19826         * recog.h (mode_dependent_address_p): Change return type to bool.
19827
19828 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
19829             Nathan Froyd  <froydnj@codesourcery.com>
19830
19831         * tree-mudflap.c (build_function_type_0, build_function_type_1,
19832         build_function_type_2, build_function_type_3): Remove.
19833         (mudflap_init): Use build_function_type_list.
19834
19835 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
19836             Nathan Froyd  <froydnj@codesourcery.com>
19837
19838         * coverage.c (build_fn_info_value): Call build_constructor instead of
19839         build_constructor_from_list.
19840         (build_ctr_info_value): Likewise.
19841         (build_gcov_info): Likewise.
19842
19843 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
19844
19845         * tree.c (build_constructor): Compute TREE_CONSTANT for the
19846         resultant constructor.
19847         (build_constructor_single): Don't set TREE_CONSTANT.
19848         (build_constructor_from_list): Don't compute TREE_CONSTANT.
19849
19850 2010-05-12  Jan Hubicka  <jh@suse.cz>
19851
19852         * cgraph.h (struct varpool_node): Add aux.
19853         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
19854         * varpool.c (varpool_remove_node): Do not remove initializer.
19855         (varpool_reset_queue): Export.
19856         (varpool_finalize_decl): Volatile vars are forced to be output.
19857         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
19858         replaced decl.
19859         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
19860         process_references, varpool_can_remove_if_no_refs): New functions.
19861         (cgraph_remove_unreachable_nodes): Handle variables too.
19862
19863 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
19864
19865         PR target/44088
19866         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
19867
19868 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
19869
19870         PR middle-end/44085
19871         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
19872         change value of ORT_TASK.
19873         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
19874         (omp_notice_threadprivate_variable): New function.
19875         (omp_notice_variable): Call it for threadprivate variables.
19876         If enclosing ctx is a task, print enclosing task rather than
19877         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
19878         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
19879         if task has untied clause.
19880
19881         PR debug/42278
19882         * dwarf2out.c (base_type_die): Don't add name attribute here.
19883         (modified_type_die): Instead of sizetype use
19884         its underlying original type.  If a DW_TAG_base_type doesn't
19885         have name added, add __unknown__.
19886         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
19887         always call force_type_die instead.
19888
19889 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
19890
19891         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
19892         for __stack_chk_guard.
19893
19894 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
19895
19896         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
19897         don't call start_source_file debug hook here...
19898         (finish_options): ... but here, after outputting predefined and
19899         command line defines and undefs.
19900
19901         PR middle-end/44071
19902         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
19903         no fallthru edge.
19904         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
19905         optimizing away empty bb with no successors, move over its
19906         footer chain to fallthru predecessor.
19907         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
19908         (rtl_split_edge): For asm goto call patch_jump_insn even if
19909         splitting fallthru edge.
19910
19911         PR c++/44059
19912         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
19913         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
19914         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
19915         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
19916         on DW.ref.* decls.
19917
19918         PR c++/44062
19919         * c-parser.c (c_parser_expression): Mark LHS of a comma
19920         expression as read if it is a decl, handled component or
19921         COMPOUND_EXPR with that on the RHS.
19922         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
19923         if it is a decl or handled component.
19924
19925 2010-05-11  Jan Hubicka  <jh@suse.cz>
19926
19927         * lto-symtab.c (lto_symtab_free): New function.
19928         * lto-streamer.h (lto_symtab_free): Declare.
19929
19930 2010-05-11  Jan Hubicka  <jh@suse.cz>
19931
19932         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
19933         that if function is needed it is reachable.
19934         (lto_output_node): See if it the function is reachable or referenced.
19935         (output_cgraph): Update call of lto_output_node.
19936         * lto-streamer.h (reachable_from_other_partition_p): Declare.
19937
19938 2010-05-11  Jan Hubicka  <jh@suse.cz>
19939
19940         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
19941         Mark as used.
19942
19943 2010-05-11  Jan Hubicka  <jh@suse.cz>
19944
19945         PR tree-optimize/44063
19946         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
19947         queue.
19948         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
19949         limits.
19950         (estimate_function_body_sizes): Compute sizes even when disregarding.
19951
19952 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
19953
19954         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
19955
19956 2010-05-11  Jan Hubicka  <jh@suse.cz>
19957
19958         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
19959         into every boundary.
19960
19961 2010-05-11  Jan Hubicka  <jh@suse.cz>
19962
19963         * matrix-reorg.c (matrix_reorg): Rebuild edges.
19964
19965 2010-05-11  Jan Hubicka  <jh@suse.cz>
19966
19967         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
19968         lto_streamer_cache_delete): Put nodes into heap.
19969         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
19970         heap.
19971
19972 2010-05-11  Jan Hubicka  <jh@suse.cz>
19973
19974         * cgraphbuild.c (cgraph_rebuild_references): New.
19975         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
19976         out extern inlines.
19977         * cgraph.h (cgraph_rebuild_references): Declare.
19978         * tree-inline.c (tree_function_versioning): Use it.
19979         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
19980
19981 2010-05-11  Jan Hubicka  <jh@suse.cz>
19982
19983         * cgraph.c: Include ipa-utils.h
19984         (cgraph_create_virtual_clone): Update references.
19985         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
19986
19987 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
19988
19989         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
19990         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
19991         cache size.
19992
19993 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
19994
19995         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
19996
19997 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
19998
19999         * gcc.c (execute): For -### don't quote arguments that
20000         contain just alphanumerics and _/-. characters.
20001         * doc/invoke.texi: Document that change for -###.
20002
20003         PR debug/44023
20004         * df-problems.c (struct dead_debug): Add to_rescan field.
20005         (dead_debug_init): Clear to_rescan field.
20006         (dead_debug_finish): Rescan all debug insns in to_rescan
20007         bitmap and free the bitmap.
20008         (dead_debug_insert_before): Instead of rescanning debug insns
20009         immediately queue their rescanning until dead_debug_finish.
20010         (df_note_bb_compute): After dead_debug_add do continue instead
20011         of break.
20012
20013 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
20014
20015         PR debug/44028
20016         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
20017         clear also INSN_REG_USE_LIST.
20018
20019 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20020
20021         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
20022
20023 2010-05-10  Jan Hubicka  <jh@suse.cz>
20024
20025         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
20026         commited change.
20027
20028 2010-05-10  Jan Hubicka  <jh@suse.cz>
20029
20030         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
20031         Allocate encoders.
20032         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
20033         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
20034         (lto_streamer_cache_create): Init alloc pool.
20035         (lto_streamer_cache_delete): Free alloc pool.
20036         * lto-streamer.h: Include alloc pool.
20037         (lto_streamer_cache_d): Use alloc pool.
20038         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
20039
20040 2010-05-10  Jan Hubicka  <jh@suse.cz>
20041
20042         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
20043         * cgraphbuild.c: Include except.h
20044         (record_type_list, record_eh_tables): New function.
20045         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
20046
20047 2010-05-10  Jan Hubicka  <jh@suse.cz>
20048
20049         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
20050         __frame_dummy_init_array_entry, force_to_data): Attribute as used
20051         rather than unused.
20052
20053 2010-05-10  Michael Matz  <matz@suse.de>
20054
20055         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
20056         (can_reassociate_p): Use FLOAT_TYPE_P.
20057         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
20058         (vect_force_simple_reduction): ... this.
20059         * tree-parloops.c (gather_scalar_reductions): Use
20060         vect_force_simple_reduction.
20061         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
20062         vect_is_simple_reduction, add modify argument, if true rewrite
20063         "a-b" into "a+(-b)".
20064         (vect_is_simple_reduction, vect_force_simple_reduction): New
20065         functions.
20066         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
20067
20068 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
20069             Vladimir Makarov  <vmakarov@redhat.com>
20070
20071         PR rtl-optimization/44012
20072         * ira-build.c (remove_unnecessary_allocnos): Nullify
20073         regno_allocno_map of the removed allocno.
20074
20075 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20076
20077         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
20078         to /dev/null.
20079         * configure: Regenerate.
20080
20081 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20082
20083         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
20084         unused.
20085         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
20086         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
20087         support in Sun ld.
20088         * configure: Regenerate.
20089
20090 2010-05-10  Richard Guenther  <rguenther@suse.de>
20091
20092         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
20093         marked if the entry identifier is marked.
20094
20095 2010-05-10  Richard Guenther  <rguenther@suse.de>
20096
20097         * c-common.c (struct c_common_attributes): Add fnspec attribute.
20098         (handle_fnspec_attribute): New function.
20099         * gimple.h (gimple_call_return_flags): Declare.
20100         (gimple_call_arg_flags): Likewise.
20101         * gimple.c (gimple_call_arg_flags): New function.
20102         (gimple_call_return_flags): Likewise.
20103         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
20104         New argument flags.
20105         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
20106         return value flags.
20107         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
20108         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
20109         main work to ...
20110         (make_heapvar_for): ... this new function.
20111         (handle_rhs_call): Handle fnspec attribute argument specifiers.
20112         (handle_lhs_call): Likewise.
20113         (find_func_aliases): Adjust.
20114
20115 2010-05-10  Richard Guenther  <rguenther@suse.de>
20116
20117         PR tree-optimization/44050
20118         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
20119
20120 2010-05-10  Wei Guozhi  <carrot@google.com>
20121
20122         PR target/42879
20123         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
20124
20125 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
20126
20127         PR c/10676
20128         * c-typeck.c (lookup_field): Take a type directly.  Update
20129         recursive calls.
20130         (build_component_ref): Update call to lookup_field.
20131         (set_init_label): Use lookup_field to find initialized field.
20132         Handle returned list of fields like a sequence of designators.
20133
20134 2010-05-09  Richard Guenther  <rguenther@suse.de>
20135
20136         PR middle-end/44024
20137         * fold-const.c (tree_single_nonzero_warnv_p): Properly
20138         handle &FUNCTION_DECL.
20139
20140 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
20141
20142         PR c/4784
20143         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
20144         structures and unions recursively.
20145         (detect_field_duplicates): Move duplicate detection with a hash to
20146         detect_field_duplicates_hash.  Always use a hash if anonymous
20147         structures or unions are present.
20148         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
20149         give errors.
20150
20151 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
20152
20153         PR target/44046
20154         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
20155         detect Atom, Core 2 and Core i7.
20156
20157 2010-05-09  Richard Guenther  <rguenther@suse.de>
20158
20159         * gcc.c (store_arg): Handle temporary file deletion for
20160         joined arguments.
20161
20162 2010-05-09  Richard Guenther  <rguenther@suse.de>
20163
20164         PR middle-end/44043
20165         * ipa-inline.c (estimate_function_body_sizes): Return after
20166         disregarding inline limits.
20167
20168 2010-05-09  Richard Guenther  <rguenther@suse.de>
20169
20170         * gcc.c (store_arg): Revert last change.
20171
20172 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
20173
20174         PR middle-end/28685
20175         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
20176         (optimize_ops_list): Call it.
20177
20178 2010-05-08  Richard Guenther  <rguenther@suse.de>
20179
20180         PR tree-optimization/44030
20181         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
20182         NECESSARY flag if we propagate from a inserted expression.
20183
20184 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
20185
20186         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
20187         domain types as equal if they are both PLACEHOLDER_EXPRs.
20188
20189 2010-05-08  Richard Guenther  <rguenther@suse.de>
20190
20191         * lto-wrapper.c (run_gcc): Remove linker output from
20192         command line for LTRANS invocation.
20193
20194 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
20195
20196         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
20197         lto-macho as lto_binary_reader.
20198         * target.h (struct gcc_target): New hooks lto_start and lto_end.
20199         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
20200         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
20201         in lto_start and lto_end calls.
20202         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
20203         magic numbers.
20204         (scan_prog_file): Update is_elf_or_coff call.
20205         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
20206
20207         * collect2.c (main): Fix enum comparison.
20208
20209         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
20210         Add prototypes.
20211         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
20212         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
20213         and TARGET_ASM_LTO_END.
20214         * darwin.c: Include obstack.h and lto-streamer.h.
20215         (lto_section_names_offset, lto_section_names_obstack,
20216         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
20217         global variables.
20218         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
20219         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
20220         to a temporary file.
20221         (darwin_asm_lto_end): New function.  Restore asm_out_file.
20222         (darwin_asm_named_section): For LTO sections, replace the name with
20223         the offset of the section name in a string table, and build this
20224         table.
20225         (darwin_file_start): Initialize global vars for LTO support.
20226         (darwin_file_end): If output to asm_out_file was redirected, append it
20227         to the proper asm_out_file here.  Add the section names section.
20228
20229 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
20230
20231         * c-pragma.c (pending_weak_d, pending_weak): New.
20232         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
20233         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
20234         handle_pragma_weak): Update the uses of pending_weaks.
20235
20236 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20237
20238         PR documentation/44016
20239         * doc/standards.texi (Standards): Link to unversioned
20240         cxx0x_status.html page.
20241
20242 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
20243
20244         PR target/43708
20245         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
20246         in addition to TREE_USED, to avoid "set but unused" warnings.
20247
20248 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20249
20250         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
20251         (is_loop_prefetching_profitable): Do not insert prefetches
20252         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
20253         times the prefetch ahead distance.
20254
20255 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20256
20257         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
20258         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
20259         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
20260         the unroll_factor.
20261
20262 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20263
20264         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
20265         a diagnostic info when the insn-to-mem ratio is too small.
20266
20267 2010-05-07  Richard Guenther  <rguenther@suse.de>
20268
20269         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
20270         the linker plugin.
20271         (store_arg): Queue temp_filename for deletion instead of
20272         the whole argument.
20273
20274 2010-05-07  Richard Guenther  <rguenther@suse.de>
20275
20276         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
20277         (run_gcc): Handle LTRANS phase invocation.
20278         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
20279
20280 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
20281
20282         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
20283         this is also meaningful on PARM_DECLs and RESULT_DECLs.
20284
20285 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20286
20287         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
20288
20289 2010-05-07  Richard Guenther  <rguenther@suse.de>
20290
20291         PR tree-optimization/44020
20292         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
20293         code when PRE is not yet initialized.
20294
20295 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20296
20297         * config/mips/dbxmdebug.h: Remove.
20298         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
20299
20300 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
20301
20302         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
20303         with null pointer and also warn about ordered comparison of zero with
20304         pointer if -Wextra.
20305
20306 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
20307
20308         * graphite-blocking.c
20309         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
20310         * graphite-clast-to-gimple.c
20311         (clast_to_gcc_expression): Same.
20312         (precision_for_value): Same.
20313         (precision_for_interval): Same.
20314         (gcc_type_for_interval): Same.
20315         (graphite_create_new_guard): Same.
20316         (compute_bounds_for_level): Same.
20317         (graphite_create_new_loop_guard): Same.
20318         * graphite-interchange.c
20319         (build_linearized_memory_access): Same.
20320         (pdr_stride_in_loop): Same.
20321         (memory_strides_in_loop_1): Same.
20322         (memory_strides_in_loop): Same.
20323         (extend_scattering): Same.
20324         (psct_scattering_dim_for_loop_depth): Same.
20325         (pbb_number_of_iterations): Same.
20326         * graphite-poly.h
20327         (debug_iteration_domains): Same.
20328         * graphite-ppl.c
20329         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
20330         (ppl_set_inhomogeneous_gmp): Same.
20331         (ppl_strip_loop): Same.
20332         (ppl_lexico_compare_linear_expressions): Same.
20333         (ppl_read_polyhedron_matrix): Same.
20334         (ppl_max_for_le_pointset): Same.
20335         * graphite-ppl.h
20336         (ppl_read_polyhedron_matrix): Same.
20337         (tree_int_to_gmp): Same.
20338         (gmp_cst_to_tree): Same.
20339         (ppl_set_inhomogeneous): Same.
20340         (ppl_set_inhomogeneous_tree): Same.
20341         (ppl_set_coef): Same.
20342         (ppl_set_coef_tree): Same.
20343         * graphite-sese-to-poly.c
20344         (build_pbb_scattering_polyhedrons): Same.
20345         (build_scop_scattering): Same.
20346         (scan_tree_for_params_right_scev): Same.
20347         (scan_tree_for_params): Same.
20348         (find_params_in_bb): Same.
20349         (find_scop_parameters): Same.
20350         (add_upper_bounds_from_estimated_nit): Same.
20351         (build_loop_iteration_domains): Same.
20352         (add_condition_to_domain): Same.
20353         (pdr_add_memory_accesses): Same.
20354
20355 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
20356
20357         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
20358         CLooG's value_* macros to their respective mpz_* counterparts.
20359         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
20360         (graphite_create_new_loop_guard): Same.
20361         * graphite-interchange.c (build_linearized_memory_access): Same.
20362         (pdr_stride_in_loop): Same.
20363         (memory_strides_in_loop_1): Same.
20364         (1st_interchange_profitable_p): Same.
20365         * graphite-poly.c (extend_scattering): Same.
20366         (psct_scattering_dim_for_loop_depth): Same.
20367         (pbb_number_of_iterations): Same.
20368         (pbb_number_of_iterations_at_time): Same.
20369         * graphite-poly.h (new_1st_loop): Same.
20370         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
20371         (oppose_constraint): Same.
20372         (insert_constraint_into_matrix): Same.
20373         (ppl_set_inhomogeneous_gmp): Same.
20374         (ppl_set_coef_gmp): Same.
20375         (ppl_strip_loop): Same.
20376         (ppl_lexico_compare_linear_expressions): Same.
20377         (ppl_max_for_le_pointset): Same.
20378         (ppl_min_for_le_pointset): Same.
20379         (ppl_build_realtion): Same.
20380         * graphite-ppl.h (gmp_cst_to_tree): Same.
20381         (ppl_set_inhomogeneous): Same.
20382         (ppl_set_inhomogeneous_tree): Same.
20383         (ppl_set_coef): Same.
20384         (ppl_set_coef_tree): Same.
20385         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20386         (build_scop_scattering): Same.
20387         (add_value_to_dim): Same.
20388         (scan_tree_for_params_right_scev): Same.
20389         (scan_tree_for_params_int): Same.
20390         (scan_tree_for_params): Same.
20391         (find_params_in_bb): Same.
20392         (find_scop_parameters): Same.
20393         (add_upper_bounds_from_estimated_nit): Same.
20394         (build_loop_iteration_domains): Same.
20395         (create_linear_expr_from_tree): Same.
20396         (add_condition_to_domain): Same.
20397         (pdr_add_memory_accesses): Same.
20398
20399 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
20400             Jason Merrill  <jason@redhat.com>
20401
20402         * c-common.c (c_common_reswords): Add nullptr.
20403         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
20404         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
20405         (gen_type_die_with_usage): Likewise.
20406         * dbxout.c (dbxout_type): Likewise.
20407         * sdbout.c (plain_type_1): Likewise.
20408
20409 2010-05-06  Jason Merrill  <jason@redhat.com>
20410
20411         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
20412         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
20413         ret appropriately.
20414         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
20415
20416         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
20417         stripping WITH_SIZE_EXPR.
20418         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
20419         change.
20420
20421 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20422
20423         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
20424         list of obsolete configurations.
20425         Disabled check for obsolete configurations.
20426         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
20427         Removed support for previous versions.
20428         * config/mips/iris.h: Removed.
20429         * config/mips/iris5.h: Removed.
20430         * config/mips/iris6.h: Merged old iris.h contents.
20431         (TARGET_IRIX): Removed.
20432         (DRIVER_SELF_SPECS): Removed mabi=32.
20433         (IDENT_ASM_OP): Removed undef.
20434         (STARTFILE_SPEC): Removed mabi=32.
20435         (ENDFILE_SPEC): Likewise.
20436         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
20437         (MACHINE_TYPE): Update for IRIX 6.5.
20438         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
20439         TARGET_IRIX by TARGET_IRIX6.
20440         (mips_file_start): Likewise.
20441         (mips_output_external): Remove IRIX 5/6 O32 support.
20442         (mips_output_function_prologue): Likewise.
20443         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
20444         TARGET_IRIX6.
20445         (TARGET_CPU_CPP_BUILTINS): Likewise.
20446         (TARGET_IRIX): Removed.
20447         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
20448         (MULTILIB_DIRNAMES): Removed 32.
20449         (MULTILIB_OSDIRNAMES): Removed ../lib.
20450         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
20451         (Specific, mips-sgi-irix5): Document removal.
20452         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
20453         Remove references to older IRIX 6 releases and the O32 ABI.
20454
20455 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
20456
20457         PR bootstrap/43994
20458         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
20459         instead of DF_REF_REAL_REG.
20460
20461 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
20462
20463         PR target/43888
20464         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
20465         handling to still return true for x64 targets.
20466
20467 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
20468
20469         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
20470
20471 2010-05-06  Jan Hubicka  <jh@suse.cz>
20472
20473         PR tree-optimization/43791
20474         * ipa-inline.c (update_caller_keys): Remove bogus
20475         disregard_inline_limits check.
20476
20477 2010-05-06  Michael Matz  <matz@suse.de>
20478
20479         PR tree-optimization/43984
20480         * tree-ssa-pre.c (inserted_phi_names): Remove.
20481         (inserted_exprs): Change to bitmap.
20482         (create_expression_by_pieces): Set bits, don't append to vector.
20483         (insert_into_preds_of_block): Don't handle inserted_phi_names.
20484         (eliminate): Don't look at inserted_phi_names, remove deleted
20485         insns from inserted_exprs.
20486         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
20487         (init_pre, fini_pre): Allocate and free bitmaps.
20488         (execute_pre): Insert insns on edges before elimination.
20489
20490 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
20491
20492         * tree.c (initializer_zerop): Handle STRING_CST.
20493
20494 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20495
20496         PR 40989
20497         * doc/invoke.texi (Wimplicit): Document as C only.
20498         * opts.c (common_handle_option): Add argument kind.
20499         (handle_option): Rename as read_cmdline_option. Factor out code to...
20500         (handle_option): ... here. New.
20501         (handle_options): Rename as read_cmdline_options.
20502         (decode_options): Update call.
20503         (set_option): Use option index instead of option pointer. Classify
20504         diagnostics correctly.
20505         (enable_warning_as_error): Call handle_option.
20506         * opts.h (set_option): Update declaration.
20507         (handle_option): Declare.
20508         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
20509         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
20510         * c-opts.c (set_Wimplicit): Delete.
20511         (c_family_lang_mask): New static constant.
20512         (c_common_handle_option): Add argument kind. Use handle_option
20513         instead of set_Wimplicit.
20514         (c_common_post_options): warn_implicit and warn_implicit_int
20515         are disabled by default.
20516         * c-common.c (warn_implicit): Do not define here.
20517         * c-common.h (warn_implicit): Do not declare here.
20518         (c_common_handle_option): Update declaration.
20519         * lto-opts.c (lto_reissue_options): Update call to set_option.
20520
20521 2010-05-06  Richard Guenther  <rguenther@suse.de>
20522
20523         PR tree-optimization/43571
20524         * domwalk.c (walk_dominator_tree): Walk the dominator
20525         sons in more optimal order.
20526
20527 2010-05-06  Richard Guenther  <rguenther@suse.de>
20528
20529         PR tree-optimization/43934
20530         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
20531         (stmt_cost): Likewise.
20532         (extract_true_false_args_from_phi): New helper.
20533         (determine_max_movement): For PHI nodes verify we can hoist them
20534         and compute their cost.
20535         (determine_invariantness_stmt): Handle PHI nodes.
20536         (move_computations_stmt): Likewise.  Hoist PHI nodes in
20537         if-converted form using COND_EXPRs.
20538         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
20539         (tree_ssa_lim): Likewise.
20540         * tree-flow.h (tree_ssa_lim): Adjust prototype.
20541         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
20542
20543 2010-05-06  Richard Guenther  <rguenther@suse.de>
20544
20545         PR tree-optimization/43987
20546         * tree-ssa-structalias.c (could_have_pointers): For possibly
20547         address-taken variables force pointers to be recorded.
20548         (create_variable_info_for_1): Likewise.
20549         (push_fields_onto_fieldstack): Pass in wheter all fields
20550         must have pointers.
20551         (find_func_aliases): Query types instead of vars whether
20552         they contain pointers where appropriate.
20553
20554 2010-05-06  Jan Hubicka  <jh@suse.cz>
20555
20556         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
20557         (record_reference, mark_address, mark_load, mark_store): Record
20558         references.
20559         (record_references_in_initializer): Update call of record_references.
20560         (rebuild_cgraph_edges): Remove all references before rebuiding.
20561         * cgraph.c (cgraph_create_node): Clear ref list.
20562         (cgraph_remove_node): Remove references.
20563         (dump_cgraph_node): Dump references.
20564         (cgraph_clone_node): Clone references.
20565         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
20566         (struct cgraph_node, varpool_node): Add ref_lst.
20567         * ipa-ref.c: New file.
20568         * ipa-ref.h: New file.
20569         * ipa-ref-inline.h: New file.
20570         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
20571         (referenced_from_other_partition_p): New function.
20572         (lto_output_varpool_node): Take set arugment; call
20573         referenced_from_other_partition.
20574         (lto_output_ref): New.
20575         (add_references): New.
20576         (output_refs): New.
20577         (output_cgraph): Compute boundary based on references; output refs.
20578         (output_varpool): Accept cgraph_node_set argument.
20579         (input_ref): New.
20580         (input_refs): New.
20581         (input_cgraph): Call input_refs.
20582         * lto-section-in.c (lto_section_name): Add refs.
20583         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
20584         (ipa-ref.o): New file.
20585         * varpool.c (varpool_node): Clear ipa ref list.
20586         (varpool_remove_node): Remove references.
20587         (dump_varpool_node): Dump references.
20588         (varpool_assemble_decl): Only compile finalized ones.
20589         (varpool_extra_name_alias): Initialize ref list.
20590         * lto-streamer.c (lto-get_section_name): Add .refs section.
20591         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
20592         (referenced_from_other_partition_p): Declared.
20593
20594 2010-05-06  Ira Rosen  <irar@il.ibm.com>
20595
20596         PR tree-optimization/43901
20597         * tree-vect-stmts.c (vectorizable_call): Assert that vector
20598         type is not NULL if it's transformation phase, and return
20599         FALSE if it's analysis.
20600         (vectorizable_conversion, vectorizable_operation,
20601         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
20602
20603 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
20604
20605         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20606         Delete.
20607         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20608         New define.
20609         * config/mips/mips-protos.h
20610         (mips_small_register_classes_for_mode_p): Delete prototype.
20611
20612 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
20613
20614         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
20615         * config/arm/arm.c (multiple_operation_profitable_p,
20616         compute_offset_order): New static functions.
20617         (load_multiple_sequence, store_multiple_sequence): Use them.
20618         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
20619         memory offsets, not register numbers.
20620         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
20621
20622 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
20623
20624         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
20625         (get_pending_sizes, put_pending_size, put_pending_sizes):
20626         Update the uses of pending_sizes.
20627         * c-decl.c (store_parm_decls): Likewise.
20628         * c-tree.h (struct c_arg_info): Likewise.
20629         * tree.h: Update the prototype for get_pending_sizes and
20630         put_pending_sizes.
20631
20632 2010-05-05  Jason Merrill  <jason@redhat.com>
20633
20634         PR debug/43370
20635         * c-common.c (handle_aligned_attribute): Respect
20636         ATTR_FLAG_TYPE_IN_PLACE.
20637
20638         PR testsuite/43758
20639         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
20640         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20641         (TARGET_INITIALIZER): Use it.
20642         * c-common.c (attribute_takes_identifier_p): Call it.
20643         * c-common.h: Update prototype.
20644         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
20645         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20646
20647 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
20648
20649         PR debug/43950
20650         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
20651         DW_ID_down_case for Fortran compilation units.
20652
20653 2010-05-05  Jan Hubicka  <jh@suse.cz>
20654
20655         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
20656         handle aliases.
20657
20658 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
20659
20660         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
20661         a variable-sized RESULT_DECL.
20662
20663 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
20664
20665         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
20666
20667 2010-05-05  Jason Merrill  <jason@redhat.com>
20668
20669         PR c++/43787
20670         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
20671         returns GS_OK.
20672         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
20673
20674 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
20675             Jakub Jelinek  <jakub@redhat.com>
20676
20677         PR debug/43478
20678         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
20679         (dead_debug_init, dead_debug_finish): New functions.
20680         (dead_debug_add, dead_debug_insert_before): Likewise.
20681         (df_note_bb_compute): Initialize a dead_debug object, add dead
20682         debug uses to it, insert debug bind insns before death insns,
20683         reset debug insns that refer to pending uses at the end.
20684         * rtl.h (make_debug_expr_from_rtl): New prototype.
20685         * varasm.c (make_debug_expr_from_rtl): New function.
20686
20687 2010-05-05  Jan Hubicka  <jh@suse.cz>
20688
20689         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
20690         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
20691         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
20692         lto_varpool_encoder_deref, lto_varpool_encoder_size,
20693         lto_varpool_encoder_encode_initializer_p,
20694         lto_set_varpool_encoder_encode_initializer): New functions.
20695         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
20696         call output_varpool.
20697         (input_varpool_node): Do not always set analyzed.
20698         (input_cgraph_1): Return vector of cgraph nodes.
20699         (input_varpool_1): Return vector of varpools.
20700         (input_cgraph): Free the vectors.
20701         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20702         output only initializers needed.
20703         (lto_output): Only call output_cgraph.
20704         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
20705         * lto-section-out.c (lto_new_out_decl_state): Initialize
20706         state->varpool_node_encoder.
20707         * lto-streamer.h (lto_varpool_encoder_d): New.
20708         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
20709         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
20710         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
20711         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
20712         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
20713         Declare.
20714         (output_varpool, input_varpool): Remove declarations.
20715
20716 2010-05-05  Jan Hubicka  <jh@suse.cz>
20717
20718         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
20719         with body can prevail.
20720
20721 2010-05-05  Jan Hubicka  <jh@suse.cz>
20722
20723         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
20724         size.
20725
20726 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20727
20728         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
20729
20730         * gengtype.h (erro_at_line): Constify pos argument.
20731
20732         * gengtype.c: Include hashtab.h.
20733         (enum gc_used): Document GC_MAYBE_POINTED_TO.
20734         (error_at_line): Constify pos argument.
20735         (do_typedef): Initialize p->opt field.
20736         (get_file_gtfilename): Fix comment typo.
20737         (struct walk_type_data): Constify line field.
20738         (get_output_file_for_structure): New function.
20739         (write_local_func_for_structure): Constify orig_s argument.
20740         Use get_output_file_for_structure.
20741         (write_func_for_structure): Use get_output_file_for_structure.
20742         (INDENT): New define.
20743         (dump_pair, dump_type, dump_type_list, dump_typekind)
20744         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
20745         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
20746         functions.
20747         (seen_types): New variable.
20748         (main): New variable do_dump.  Process "-d" command line option.
20749         Call dump_everything if dump requested.
20750
20751 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
20752
20753         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
20754         in a temporary instead of invoking the macro multiple times.
20755         (track_expr_p): Likewise.
20756
20757 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
20758
20759         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
20760         per new semantics.
20761         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
20762         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
20763         conditions for printing notes.
20764         * common.opt (-Wcoverage-mismatch): Allow negative, default to
20765         true, update documentation.
20766         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
20767
20768 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
20769
20770         PR c/43981
20771         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
20772         on dimen.
20773
20774 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20775
20776         PR target/43799
20777         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
20778         (*sse_prologue_save_insn1): Likewise.
20779         (SSE prologue save splitter): Likewise.
20780
20781 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
20782
20783         * tree.c (free_lang_data_in_one_sizepos): New inline function.
20784         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
20785         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
20786         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
20787         all decls.  Call it on DECL_FIELD_OFFSET of fields.
20788         (find_decls_types_r): Follow DECL_VALUE_EXPR.
20789         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
20790
20791 2010-05-04  Martin Jambor  <mjambor@suse.cz>
20792
20793         * tree-sra.c (build_access_from_expr_1): The first parameter type
20794         changed to simple tree.
20795         (build_access_from_expr): Likewise, gsi parameter was eliminated.
20796         (scan_assign_result): Renamed to assignment_mod_result, enum elements
20797         renamed as well.
20798         (build_accesses_from_assign): Removed all parameters except for a
20799         simple gimple statement.  Now returns a simple bool.
20800         (scan_function): All non-analysis parts moved to separate functions
20801         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
20802         parameters and updated both callers.
20803         (sra_modify_expr): Removed parameter data.
20804         (sra_modify_function_body): New function.
20805         (perform_intra_sra): Call sra_modify_function_body to modify the
20806         function body.
20807         (replace_removed_params_ssa_names): Parameter data changed into
20808         adjustments vector.
20809         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
20810         changed the parameter dont_convert to convert with the opposite
20811         meaning.
20812         (sra_ipa_modify_assign): Parameter data changed into adjustments
20813         vector, return value changed to bool.
20814         (ipa_sra_modify_function_body): New function.
20815         (sra_ipa_reset_debug_stmts): Updated a comment.
20816         (modify_function): Use ipa_sra_modify_function_body to modify function
20817         body.
20818
20819 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20820
20821         PR middle-end/43671
20822         * alias.c (true_dependence): Handle the same VALUE in x and mem.
20823         (canon_true_dependence): Likewise.
20824         (write_dependence_p): Likewise.
20825
20826 2010-05-04  Jan Hubicka  <jh@suse.cz>
20827
20828         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
20829         * cgraphbuild.c: Include ipa-utils.h
20830         (record_reference_ctx): New struct.
20831         (record_reference): Simplify to work on initializers; not statements.
20832         (mark_address, mark_load, mark_store): New.
20833         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
20834         walk PHI nodes too.
20835         (record_references_in_initializer): Update use of record_reference.
20836         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
20837         walk PHI nodes too.
20838
20839 2010-05-04  Jan Hubicka  <jh@suse.cz>
20840
20841         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
20842         node will be removed anyway.
20843         (lto_varpool_replace_node): Allow also unanalyzed nodes;
20844         relink aliases of node into prevailing node.
20845         * varpool.c (varpool_remove_node): Remove aliases properly;
20846         when removing node, remove all its aliases too; remove DECL_INITIAL
20847         of removed node; ggc_free the varpool node.
20848
20849 2010-05-04  Richard Guenther  <rguenther@suse.de>
20850
20851         PR tree-optimization/43879
20852         * tree-ssa-structalias.c (alias_get_name): Use
20853         DECL_ASSEMBLER_NAME if available.
20854         (create_function_info_for): Return the varinfo node.
20855         (ipa_pta_execute): Associate same-body aliases and extra names
20856         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
20857
20858 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20859
20860         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
20861
20862 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
20863
20864         PR bootstrap/43964
20865         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
20866         only if HONOR_REG_ALLOC_ORDER is not defined.
20867
20868 2010-05-04  Richard Guenther  <rguenther@suse.de>
20869
20870         PR tree-optimization/43949
20871         * tree-vrp.c (extract_range_from_binary_expr): Only handle
20872         TRUNC_MOD_EXPR.
20873
20874 2010-04-26  Jason Merrill  <jason@redhat.com>
20875
20876         * c.opt (-fstrict-enums): New.
20877         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
20878
20879 2010-05-03  David Ung  <davidu@mips.com>
20880             James E. Wilson  <wilson@codesourcery.com>
20881
20882         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
20883         emit the trap instruction before the divide for TUNE_74K.
20884
20885 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
20886
20887         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
20888         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
20889         based on the above, for new target hook.
20890
20891         * hooks.c (hook_bool_mode_true): New generic hook.
20892         * hooks.h (hook_bool_mode_true): Add prototype.
20893
20894         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
20895         target hook.
20896         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
20897         target hook, set to hook_bool_mode_false.
20898         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
20899         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
20900         with targetm.small_register_classes_for_mode_p.
20901         (find_reusable_reload): Likewise.
20902         (combine_reloads): Likewise.
20903         * reload1.c (reload_as_needed): Likewise.
20904         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
20905         * ifcvt.c (noce_process_if_block, check_cond_move_block,
20906         dead_or_predicable): Likewise.
20907         * regmove.c (optimize_reg_copy_1): Likewise.
20908         * calls.c (prepare_call_address): Likewise.
20909         (precompute_register_parameters): Likewise.
20910
20911         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
20912         hook definition.
20913         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
20914         implementation of the hook that considers all register classes
20915         small except for SH64.
20916         (sh_override_options): Use the new hook.
20917         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
20918         Add prototype.
20919
20920         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
20921         hook definition.
20922         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
20923         implementation of the hook that considers all register classes
20924         small for THUMB1.
20925         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
20926         Add prototype.
20927
20928         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
20929         hook definition.
20930         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
20931         implementation of the hook that considers all register classes
20932         small for MIPS16.
20933         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
20934         Add prototype.
20935
20936         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
20937         hook definition.
20938         * config/m32c/m32c.h: Likewise.
20939         * config/pdp11/pdp11.h: Likewise.
20940         * config/avr/avr.h: Likewise.
20941         * config/xtensa/xtensa.h: Likewise.
20942         * config/m68hc11/m68hc11.h: Likewise.
20943         * config/mn10300/mn10300.h: Likewise.
20944         * config/mcore/mcore.h: Likewise.
20945         * config/h8300/h8300.h: Likewise.
20946         * config/bfin/bfin.h: Likewise.
20947
20948         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
20949         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
20950
20951 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
20952
20953         * double-int.h (tree_to_double_int): Remove macro.
20954         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
20955         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
20956         (tree_to_double_int): New function.
20957         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
20958         Move ...
20959         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
20960
20961 2010-05-03  Richard Guenther  <rguenther@suse.de>
20962
20963         PR tree-optimization/43971
20964         * tree-ssa-structalias.c (get_constraint_for_1): Fix
20965         constraints in the !flag_delete_null_pointer_checks case.
20966
20967 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
20968
20969         PR debug/43972
20970         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
20971         result mode matches original rtl mode.
20972
20973 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
20974
20975         PR target/43888
20976         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
20977
20978 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
20979
20980         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
20981         when processing flag options.
20982
20983 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
20984
20985         * gcov-iov.c (main): Change format string placeholder
20986         from %#08x to 0x%08x.
20987         * genchecksum.c (dosum): Change format string placeholder
20988         from %#02x to 0x%02x.
20989
20990 2010-05-02  Richard Guenther  <rguenther@suse.de>
20991
20992         PR tree-optimization/43879
20993         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
20994
20995 2010-05-02  Bruno Haible  <bruno@clisp.org>
20996
20997         * doc/extend.texi (Function Attributes): Fix a typo.
20998
20999 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21000
21001         Revert:
21002         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
21003         placeholder from 0x%x to %#x.
21004         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21005         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
21006         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
21007         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
21008         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
21009         * config/i386/i386.c (ix86_target_string): Ditto.
21010         * config/i386/i386.c (output_pic_addr_const): Ditto.
21011         (print_operand): Ditto.
21012
21013 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21014
21015         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
21016         placeholder from 0x%x to %#x.
21017         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
21018         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
21019         (ASM_OUTPUT_DEBUG_DATA): Ditto.
21020         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
21021         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
21022         * optc-gen.awk: Ditto.
21023         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
21024         (HOST_WIDE_INT_PRINT_HEX): Ditto.
21025         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
21026         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21027
21028 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
21029
21030         * target.h (struct calls): Add function_value_regno_p field.
21031         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
21032         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
21033         * targhooks.c (default_function_value_regno_p): New function.
21034         * targhooks.h (default_function_value_regno_p): Declare function.
21035         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
21036         * builtins.c. (apply_result_size): (Ditto.).
21037         * combine.c. (likely_spilled_retval_p): (Ditto.).
21038         * mode-switching.c. Include 'target.h'.
21039         (create_pre_exit): Use function_value_regno_p hook.
21040         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
21041         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
21042         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
21043
21044         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
21045         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
21046         (ix86_function_value_regno_p): Declare as static, change argument
21047         type to const unsigned int.
21048         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
21049
21050 2010-05-01  Richard Guenther  <rguenther@suse.de>
21051
21052         PR tree-optimization/43949
21053         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
21054         types.
21055         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
21056
21057 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
21058
21059         * rtl.h (CONST_DOUBLE_P): Define.
21060         (rtx_to_double_int): Declare.
21061         * emit-rtl.c (rtx_to_double_int): New function.
21062         * dwarf2out.c (insert_double): New function.
21063         (loc_descriptor, add_const_value_attribute): Clean up, use
21064         rtx_to_double_int and insert_double functions.
21065
21066 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
21067
21068         * doc/extend.texi (Inline): Add missing return keyword to examples.
21069         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
21070         "command-line".
21071
21072 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
21073
21074         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
21075         the variable part of the offset as well.  Use highest_pow2_factor for
21076         all alignment checks.
21077
21078 2010-04-30  Richard Guenther  <rguenther@suse.de>
21079
21080         PR tree-optimization/43879
21081         * tree-ssa-structalias.c (type_could_have_pointers): Functions
21082         can have pointers.
21083
21084 2010-04-30  Jan Hubicka  <jh@suse.cz>
21085
21086         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
21087         varpool.
21088         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
21089
21090 2010-04-30  Jan Hubicka  <jh@suse.cz>
21091
21092         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
21093         New.
21094         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
21095         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
21096         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
21097         cgraph_node_set_needs_ltrans_p): Remove.
21098
21099 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
21100
21101         * sdbout.c: Include vec.h, do not include varray.h.
21102         (deferred_global_decls, sdbout_global_decl,
21103         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
21104         * toplev.c: Do not include varray.h.
21105         (dump_memory_report): Do not dump VARRAY statistics.
21106         * gengtype.c (open_base_file): Ignore varray.h.
21107         * Makefile.in: Update for abovementioned changes.
21108         Remove all traces of varray.c and varray.h.
21109         * varray.c: Remove file.
21110         * varray.h: Remove file.
21111
21112 2010-04-30  Jan Hubicka  <jh@suse.cz>
21113
21114         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
21115         references.
21116
21117 2010-04-30  Jan Hubicka  <jh@suse.cz>
21118
21119         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
21120         needed.
21121
21122 2010-04-30  Richard Guenther  <rguenther@suse.de>
21123
21124         * tree-ssa-structalias.c (get_constraint_for_1): Generate
21125         constraints for CONSTRUCTOR.
21126
21127 2010-04-30  Richard Guenther  <rguenther@suse.de>
21128
21129         PR lto/43946
21130         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
21131         first after all lowering passes.
21132
21133 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
21134
21135         * toplev.c: Include varray.h for statistics dumping.
21136         * tree.h: Do not declare varray_head_tag.
21137         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
21138         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
21139         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
21140         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
21141         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
21142         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
21143         c-common.c, c-common.h, reg-stack.c, basic-block.h,
21144         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
21145         include varray.h.
21146         * Makefile.in: Update for abovementioned changes.
21147
21148 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
21149
21150         PR debug/43942
21151         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
21152
21153 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
21154
21155         * config/picochip/picochip.c (picochip_legitimize_address): Define.
21156         Use this function to do machine-specific conversion.
21157         (picochip_legitimize_reload_address): Likewise.
21158         (picochip_legitimate_address_p): Check valid base register only if
21159         strict.
21160         (picochip_check_conditional_copy): Check for modw only if opnd is
21161         register.
21162         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
21163         to call the function in c.
21164         * config/picochip/picochip-protos.h
21165         (picochip_legitimize_reload_address): Define.
21166         * config/picochip/picochip.md (supported_compare1): Define.
21167
21168 2010-04-30  Jan Hubicka  <jh@suse.cz>
21169
21170         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
21171         (cgraph_global_info): Remove inlined.
21172         (LTO_cgraph_tag_names): Remove.
21173         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
21174         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
21175         simplify cgraph tags and document.
21176         (lto_output_node): Use only LTO_cgraph_unavail_node and
21177         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
21178         for_functions_valid, global info, process and output flags.
21179         (input_overwrite_node): Initialize estimated stack size and
21180         estimated growth.  Do not read flags we no longer store.
21181         (input_node): Likewise do not read info no longer stored.
21182         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
21183         flag.
21184
21185 2010-04-30  Richard Guenther  <rguenther@suse.de>
21186
21187         PR tree-optimization/43879
21188         * tree-ssa-structalias.c (get_constraint_for_1): Properly
21189         handle non-zero initializers.
21190
21191 2010-04-30  Richard Guenther  <rguenther@suse.de>
21192
21193         * builtins.c (fold_builtin_1): Delete free (0).
21194
21195 2010-04-29  Jan Hubicka  <jh@suse.cz>
21196
21197         * gengtype.c (open_base_files): Add lto-streamer.h
21198         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
21199         (pass_ipa_cp): GGC collect.
21200         * toplev. (compile_file): Do not output symbols.
21201         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
21202         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
21203         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
21204         * lto-section-in.c: Include ggc.h
21205         (lto_new_in_decl_state): Alloc in GGC.
21206         (lto_delete_in_decl_state): Likewise.
21207         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
21208         Collect.
21209
21210 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
21211
21212         PR target/42895
21213         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
21214         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
21215         (HONOR_REG_ALLOC_ORDER): Describe new macro.
21216         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
21217         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
21218         account only if HONOR_REG_ALLOC_ORDER is not defined.
21219         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
21220         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
21221
21222 2010-04-29  Jon Grant  <04@jguk.org>
21223
21224         * collect2.c (vflag): Change type from int to bool.
21225         (debug): Likewise.
21226         (helpflag): New global bool.
21227         (main): Set vflag and debug with boolean, not integer truth values.
21228         Accept new "--help" option and output usage text if found.
21229         * collect2.h (vflag): Update prototype.
21230         (debug): Likewise.
21231
21232 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21233
21234         PR bootstrap/43936
21235         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
21236
21237 2010-04-29  Richard Guenther  <rguenther@suse.de>
21238
21239         PR bootstrap/43935
21240         * plugin.h (invoke_plugin_callbacks): Annotate arguments
21241         with ATTRIBUTE_UNUSED.
21242
21243 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21244
21245         PR target/43921
21246         * config/i386/i386.c (get_some_local_dynamic_name): Replace
21247         INSN_P with NONDEBUG_INSN_P.
21248         (distance_non_agu_define): Likewise.
21249         (distance_agu_use): Likewise.
21250
21251 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
21252
21253         From Dominique d'Humieres  <dominiq@lps.ens.fr>
21254         PR bootstrap/43858
21255         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
21256         test_set.
21257
21258 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
21259
21260         * plugin.h (invoke_plugin_callbacks): New inline function.
21261         * plugin.c (flag_plugin_added): New global flag.
21262         (add_new_plugin): Initialize above flag.
21263         (invoke_plugin_callbacks): Rename to ...
21264         (invoke_plugin_callbacks_full): ... this.
21265
21266 2010-04-28  Jan Hubicka  <jh@suse.cz>
21267
21268         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
21269         (lto_varpool_replace_node): New.
21270         (lto_symtab_resolve_symbols): Resolve varpool nodes.
21271         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
21272         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
21273         * cgraph.h (varpool_node_ptr): New type.
21274         (varpool_node_ptr): New vector.
21275         (varpool_node_set_def): New structure.
21276         (varpool_node_set): New type.
21277         (varpool_node_set): New vector.
21278         (varpool_node_set_element_def): New structure.
21279         (varpool_node_set_element, const_varpool_node_set_element): New types.
21280         (varpool_node_set_iterator): New type.
21281         (varpool_node): Add prev pointers, add used_from_other_partition,
21282         in_other_partition.
21283         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
21284         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
21285         varpool_get_node, varpool_remove_node): Declare.
21286         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
21287         varpool_node_set_size): New inlines.
21288         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
21289         * tree-pass.h (varpool_node_set_def): Forward declare.
21290         (ipa_opt_pass_d): Summary writting takes vnode sets too.
21291         (ipa_write_optimization_summaries): Update prototype.
21292         * ipa-cp.c (ipcp_write_summary): Update.
21293         * ipa-reference.c (ipa_reference_write_summary): Update.
21294         * lto-cgraph.c (lto_output_varpool_node): New static function.
21295         (output_varpool): New function.
21296         (input_varpool_node): New static function.
21297         (input_varpool_1): New function.
21298         (input_cgraph): Input varpool.
21299         * ipa-pure-const.c (pure_const_write_summary): Update.
21300         * lto-streamer-out.c (lto_output): Update, output varpool too.
21301         (write_global_stream): Kill WPA hack.
21302         (produce_asm_for_decls): Update.
21303         (output_alias_pair_p): Handle variables.
21304         (output_unreferenced_globals): Output only needed partition of varpool.
21305         * ipa-inline.c (inline_write_summary): Update.
21306         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
21307         cgraph.
21308         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
21309         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
21310         varpool_node_set_new, varpool_node_set_add,
21311         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
21312         debug_varpool_node_set): New functions.
21313         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
21314         (execute_one_pass): Process new decls too.
21315         (ipa_write_summaries_2): Pass around vsets.
21316         (ipa_write_summaries_1): Likewise.
21317         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
21318         to add.
21319         (ipa_write_optimization_summaries_1): Pass around vsets.
21320         (ipa_write_optimization_summaries): Likewise.
21321         * varpool.c (varpool_get_node): New.
21322         (varpool_node): Update doubly linked lists.
21323         (varpool_remove_node): New.
21324         (dump_varpool_node): More dumping.
21325         (varpool_enqueue_needed_node): Update doubly linked lists.
21326         (decide_is_variable_needed): Kill ltrans hack.
21327         (varpool_finalize_decl): Kill lto hack.
21328         (varpool_assemble_decl): Skip decls in other partitions.
21329         (varpool_assemble_pending_decls): Update doubly linkes lists.
21330         (varpool_empty_needed_queue): Likewise.
21331         (varpool_extra_name_alias): Likewise.
21332         * lto-streamer.c (lto_get_section_name): Add vars section.
21333         * lto-streamer.h (lto_section_type): Update.
21334         (output_varpool, input_varpool): Declare.
21335
21336 2010-04-28  Mike Stump  <mikestump@comcast.net>
21337
21338         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
21339
21340 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21341
21342         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
21343         record or union type with RECORD_OR_UNION_TYPE_P predicate.
21344         (lto_input_ts_type_tree_pointers): Likewise.
21345         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
21346         (lto_output_ts_type_tree_pointers): Likewise.
21347
21348 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21349
21350         Uniquization of constants at the Tree level
21351         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
21352         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
21353         bit to the end.
21354         (tree_output_constant_def): Declare.
21355         * gimplify.c (gimplify_init_constructor): When using block copy, first
21356         uniquize the constant constructor on the RHS.
21357         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
21358         DECL_IN_CONSTANT_POOL flag.
21359         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
21360         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
21361         constant pool.
21362         (assemble_variable): Deal with symbols belonging to the tree constant
21363         pool.
21364         (get_constant_section): Add ALIGN parameter and simplify.
21365         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
21366         (assemble_constant_contents): Use the expression of the VAR_DECL.
21367         (output_constant_def_contents): Use the alignment of the VAR_DECL.
21368         (tree_output_constant_def): New global function.
21369         (mark_constant): Use the expression of the VAR_DECL.
21370         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
21371         its expression.
21372         (output_object_block): Likewise and assemble the expression.
21373
21374 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21375
21376         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
21377         hash_tree, eq_tree): New tree hash table.
21378         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
21379         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
21380         lto_orig_address_remove): Reimplement.
21381
21382 2010-04-28  Xinliang David Li  <davidxl@google.com>
21383
21384         PR c/42643
21385         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
21386         (compute_uninit_opnds_pos): New function.
21387         (is_non_loop_exit_postdominating): New function.
21388         (compute_control_dep_chain): New function.
21389         (find_pdom): New function.
21390         (convert_control_dep_chain_into_preds): New function.
21391         (find_predicates): New function.
21392         (find_control_equiv_block): New function.
21393         (collect_phi_def_edges): New function.
21394         (find_def_preds): New function.
21395         (find_dom): New function.
21396         (dump_predicates): New function.
21397         (get_cmp_code): New function.
21398         (is_value_included_in): New function.
21399         (find_matching_predicate_in_rest_chains): New function.
21400         (use_pred_not_overlap_with_undef_path_pred): New function.
21401         (is_use_properly_guarded): New function.
21402         (normalize_cond_1): New function.
21403         (is_and_or_or): New function.
21404         (normalize_cond): New function.
21405         (is_gcond_subset_of): New function.
21406         (is_subset_of_any): New function.
21407         (is_or_set_subset_of): New function.
21408         (is_and_set_subset_of): New function.
21409         (is_norm_cond_subset_of): New function.
21410         (is_pred_expr_subset_of): New function.
21411         (is_pred_chain_subset_of): New function.
21412         (is_included_in): New function.
21413         (is_superset_of): New function.
21414         (find_uninit_use): New function.
21415         (warn_uninitialized_phi): New function.
21416         (compute_possibly_undefined_names): New function.
21417         (ssa_undefined_value_p): New function.
21418         (execute_late_warn_uninitialized): New function.
21419         * tree-ssa.c (ssa_undefined_value_p): Removed.
21420         (warn_uninit): Changed to extern.
21421         (warn_uninitialized_phi): Removed.
21422         (warn_uninitialized_vars): Changed to extern.
21423         (execute_late_warn_uninitialized): Removed
21424         * tree-flow.h: Add new prototypes.
21425         * timevar.def: Add new time variable.
21426         * Makefile.in: Add new build file.
21427
21428 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
21429
21430         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
21431         type if available.
21432
21433 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21434
21435         PR target/22224
21436         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
21437
21438 2010-04-28  Martin Jambor  <mjambor@suse.cz>
21439
21440         * cgraph.h (struct cgraph_node): New field indirect_calls.
21441         (struct cgraph_indirect_call_info): New type.
21442         (struct cgraph_edge): Removed field indirect_call. New fields
21443         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
21444         (cgraph_create_indirect_edge): Declare.
21445         (cgraph_make_edge_direct): Likewise.
21446         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
21447         * ipa-prop.h (struct ipa_param_call_note): Removed.
21448         (struct ipa_node_params): Removed field param_calls.
21449         (ipa_create_all_structures_for_iinln): Declare.
21450         * cgraph.c: Described indirect edges and uids in initial comment.
21451         (cgraph_add_edge_to_call_site_hash): New function.
21452         (cgraph_edge): Search also among the indirect edges, use
21453         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
21454         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
21455         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
21456         site hash.
21457         (initialize_inline_failed): Assign a reason to indirect edges.
21458         (cgraph_create_edge_1): New function.
21459         (cgraph_create_edge): Moved some functionality to
21460         cgraph_create_edge_1.
21461         (cgraph_create_indirect_edge): New function.
21462         (cgraph_edge_remove_callee): Add an assert checking for
21463         non-indirectness.
21464         (cgraph_edge_remove_caller): Special-case indirect edges.
21465         (cgraph_remove_edge): Likewise.
21466         (cgraph_set_edge_callee): New function.
21467         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
21468         (cgraph_make_edge_direct): New function.
21469         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
21470         the declaration of the call statement matches.
21471         (cgraph_node_remove_callees): Special-case indirect edges.
21472         (cgraph_clone_edge): Likewise.
21473         (cgraph_clone_node): Clone also the indirect edges.
21474         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
21475         indirect_call, dump count of indirect_calls edges.
21476         * ipa-prop.c (iinlining_processed_edges): New variable.
21477         (ipa_note_param_call): Create indirect edges instead of
21478         creating notes.  New parameter node.
21479         (ipa_analyze_call_uses): New parameter node, pass it on to
21480         ipa_note_param_call.
21481         (ipa_analyze_stmt_uses): Likewise.
21482         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
21483         (print_edge_addition_message): Work on edges rather than on notes.
21484         (update_call_notes_after_inlining): Likewise, renamed to
21485         update_indirect_edges_after_inlining.
21486         (ipa_create_all_structures_for_iinln): New function.
21487         (ipa_free_node_params_substructures): Do not free notes.
21488         (ipa_edge_duplication_hook): Propagate bits within
21489         iinlining_processed_edges bitmap.
21490         (ipa_node_duplication_hook): Do not duplicate notes.
21491         (free_all_ipa_structures_after_ipa_cp): Renamed to
21492         ipa_free_all_structures_after_ipa_cp.
21493         (free_all_ipa_structures_after_iinln): Renamed to
21494         ipa_free_all_structures_after_iinln.
21495         (ipa_write_param_call_note): Removed.
21496         (ipa_read_param_call_note): Removed.
21497         (ipa_write_indirect_edge_info): New function.
21498         (ipa_read_indirect_edge_info): Likewise.
21499         (ipa_write_node_info): Do not stream notes, do stream information
21500         in indirect edges.
21501         (ipa_read_node_info): Likewise.
21502         (lto_ipa_fixup_call_notes): Removed.
21503         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
21504         * ipa-inline.c (pass_ipa_inline): Likewise.
21505         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
21506         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
21507         * tree-inline.c (copy_bb): Removed an unnecessary double check for
21508         is_gimple_call.
21509         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
21510         edges.
21511         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
21512         (output_cgraph): Stream also indirect edges.
21513         (lto_output_edge): Added capability to stream indirect edges.
21514         (input_edge): Likewise.
21515         (input_cgraph_1): Likewise.
21516         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
21517         of indirect edges.
21518
21519 2010-04-28  Richard Guenther  <rguenther@suse.de>
21520
21521         PR tree-optimization/43879
21522         PR tree-optimization/43909
21523         * tree-ssa-structalias.c (struct variable_info): Add
21524         only_restrict_pointers flag.
21525         (new_var_info): Initialize it.  Increment stats.total_vars here.
21526         (create_function_info_for): Do not increment stats.total_vars here.
21527         (get_function_part_constraint): Fix build with C++.
21528         (insert_into_field_list): Remove.
21529         (push_fields_onto_fieldstack): Properly merge fields.
21530         (create_variable_info_for): Split and simplify.
21531         (create_variable_info_for_1): New piece.
21532         (intra_create_variable_infos): Properly make restrict constraints
21533         from parameters.
21534
21535 2010-04-28  Richard Guenther  <rguenther@suse.de>
21536
21537         PR c++/43880
21538         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
21539
21540 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21541             Jan Hubicka  <hubicka@ucw.cz>
21542
21543         * doc/invoke.texi (-Wsuggest-attribute=const,
21544         -Wsuggest-attribute=pure): Document.
21545         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
21546         (function_always_visible_to_compiler_p,
21547         suggest_attribute, warn_function_pure, warn_function_const):
21548         New functions.
21549         (check_call): Improve debug info.
21550         (analyze_function): Do not check availability.
21551         (add_new_function): Check availability.
21552         (propagate): Output warnings.
21553         (skip_function_for_local_pure_const): New function.
21554         (local_pure_const): Use it; output warnings.
21555         * common.opt (Wsuggest-attribute=const,
21556         Wsuggest-attribute=pure): New.
21557
21558 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
21559
21560         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
21561         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
21562         or DW_CFA_def_cfa_offset{,_sf}.
21563
21564 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
21565
21566         * tree.h: Fix truncated long macros.
21567
21568 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
21569
21570         * collect2.c (TARGET_64BIT): Redefine to target's default.
21571         * tlink.c: Likewise.
21572         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
21573         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
21574         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
21575         for underscoring __USER_LABEL_PREFIX__.
21576         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
21577         (SUB_LINK_ENTRY32): New.
21578         (SUB_LINK_ENTRY64): New.
21579         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
21580         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
21581         (SUB_LINK_ENTRY64): New.
21582         (SUB_LINK_ENTRY): New.
21583         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
21584         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
21585         x64 target is choosen.
21586         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
21587         * configure: Regenerated.
21588         * configure.ac (leading-mingw64-underscores): Option added.
21589
21590 2010-04-27  Jan Hubicka  <jh@suse.cz>
21591
21592         * doc/invoke.texi (-fipa-profile): Document.
21593         * opts.c (decode_options): Enable ipa-profile at -O1.
21594         * timevar.def (TV_IPA_PROFILE): Define.
21595         * common.opt (fipa-profile): Add.
21596         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
21597         flag for clones.
21598         (cgraph_propagate_frequency): Handle only local ones.
21599         * tree-pass.h (pass_ipa_profile): Declare.
21600         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
21601         (pass_ipa_profile): Use TV_IPA_PROFILE.
21602         * ipa.c (ipa_profile): New function.
21603         (gate_ipa_profile): Likewise.
21604         (pass_ipa_profile): New global variable.
21605         * passes.c (pass_ipa_profile): New.
21606
21607 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
21608
21609         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
21610
21611 2010-04-27  Martin Jambor  <mjambor@suse.cz>
21612
21613         PR middle-end/43812
21614         * ipa.c (dissolve_same_comdat_group_list): New function.
21615         (function_and_variable_visibility): Call
21616         dissolve_same_comdat_group_list when comdat group contains external or
21617         newly local nodes.
21618         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
21619         lists are circular and that they contain only DECL_ONE_ONLY nodes.
21620
21621 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
21622
21623         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
21624         (const_hash_1) <VECTOR_CST>: New case.
21625         (compare_constant) <VECTOR_CST>: Likewise.
21626         <ADDR_EXPR>: Deal with LABEL_REFs.
21627         (copy_constant) <VECTOR_CST>: New case.
21628
21629 2010-04-27  Jan Hubicka  <jh@suse.cz>
21630
21631         * cgraph.c (cgraph_propagate_frequency): New function.
21632         * cgraph.h (cgraph_propagate_frequency): Declare.
21633         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
21634         cgraph_propagate_frequency.
21635
21636 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
21637
21638         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
21639
21640 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
21641
21642         PR target/40657
21643         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
21644         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
21645         here to determine which regs to push and how much stack to reserve.
21646
21647 2010-04-27  Jie Zhang  <jie@codesourcery.com>
21648
21649         * doc/gimple.texi (gimple_statement_with_ops): Remove
21650         addresses_taken field.
21651         (gimple_statement_with_memory_ops): Likewise.
21652
21653 2010-04-27  Jan Hubicka  <jh@suse.cz>
21654
21655         * tree-inline.c (eni_inlining_weights): Remove.
21656         (estimate_num_insns): Special case more builtins.
21657
21658 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
21659
21660         PR c/32207
21661         * c-typeck.c (build_binary_op): Move forward check for comparison
21662         pointer with null pointer constant and adjust the diagnostic message.
21663
21664 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
21665
21666         PR lto/42776
21667         * configure.ac (gcc_cv_as_section_has_align): Set if installed
21668         binutils supports extended .section directive needed by LTO, or
21669         warn if older binutils found.
21670         (LTO_BINARY_READER): New AC_SUBST'd variable.
21671         (LTO_USE_LIBELF): Likewise.
21672         * config.gcc (lto_binary_reader): New target-specific configure
21673         variable.
21674         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
21675         (LTO_USE_LIBELF): Likewise.
21676         * configure: Regenerate.
21677
21678         * collect2.c (is_elf): Rename from this ...
21679         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
21680          object files in addition to ELF-formatted ones.
21681         (scan_prog_file): Caller updated.  Also allow for LTO info marker
21682         symbol to be prefixed or not by an extra underscore.
21683
21684         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
21685         * config/i386/winnt.c: Also #include lto-streamer.h
21686         (i386_pe_asm_named_section): Specify 1-byte section alignment for
21687         LTO named sections.
21688         (i386_pe_asm_output_aligned_decl_common): Add comment.
21689         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
21690
21691 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
21692
21693         PR target/43889
21694         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
21695         Add missing earlyclobber for second alternative.
21696
21697 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
21698
21699         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
21700         bits for artificial defs at the top of the block.
21701         * fwprop.c (single_def_use_enter_block): Don't call it.
21702
21703 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
21704
21705         PR 43715
21706         * configure.ac: Use "$gcc_cv_nm -g" on darwin
21707         instead of "$gcc_cv_objdump -T".
21708         Use "-undefined dynamic_lookup" on darwin.
21709         * configure: Regenerate.
21710
21711 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
21712
21713         PR c/43893
21714         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
21715
21716 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
21717
21718         * c-parser.c (struct c_token): Move location field up.
21719         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
21720         (struct c_declspecs): Convert typespec_word, storage_class, and
21721         default_int_p into bitfields.
21722         (struct c_declarator): Move loc field up.
21723
21724 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
21725
21726         * cfgloop.h (struct loop): Move can_be_parallel field up.
21727         * ipa-prop.h (struct ip_node_params): Move bitfields up.
21728         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
21729         down.
21730         (struct iv_cand): Convert pos field into a bitfield.
21731         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
21732         field up.
21733         (struct _stmt_vec_info): Shuffle fields for better packing.
21734
21735 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
21736
21737         * varasm.c (IN_NAMED_SECTION): Remove guard.
21738         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
21739         (IN_NAMED_SECTION_P): ...this.
21740         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
21741         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
21742
21743 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
21744
21745         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
21746         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
21747         of shadowing it.  Fix comments.
21748
21749 2010-04-26  Jan Hubicka  <jh@suse.cz>
21750
21751         * cgraph.c (cgraph_create_node): Set node frequency to normal.
21752         (cgraph_clone_node): Copy function frequency.
21753         * cgraph.h (node_frequency): New enum
21754         (struct cgraph_node): Add.
21755         * final.c (rest_of_clean_state): Update.
21756         * lto-cgraph.c (lto_output_node): Output node frequency.
21757         (input_overwrite_node): Input node frequency.
21758         * tre-ssa-loop-ivopts (computation_cost): Update.
21759         * lto-streamer-out.c (output_function): Do not output function
21760         frequency.
21761         * predict.c (maybe_hot_frequency_p): Update and handle functions
21762         executed once.
21763         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
21764         attribute lookup.
21765         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
21766         (compute_function_frequency): Set noreturn functions to be executed
21767         once.
21768         (choose_function_section): Update.
21769         * lto-streamer-in.c (input_function): Do not input function frequency.
21770         * function.c (allocate_struct_function): Do not initialize function
21771         frequency.
21772         * function.h (function_frequency): Remove.
21773         (struct function): Remove function frequency.
21774         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
21775         (try_update): Update.
21776         * tree-inline.c (initialize_cfun): Do not update function frequency.
21777         * passes.c (pass_init_dump_file): Update.
21778         * i386.c (ix86_compute_frame_layout): Update.
21779         (ix86_pad_returns): Update.
21780
21781 2010-04-26  Jie Zhang  <jie@codesourcery.com>
21782
21783         PR tree-optimization/43833
21784         * tree-vrp.c (range_int_cst_p): New.
21785         (range_int_cst_singleton_p): New.
21786         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
21787         when both operands are constants.  Use range_int_cst_p in
21788         BIT_IOR_EXPR case.
21789
21790 2010-04-26  Jan Hubicka  <jh@suse.cz>
21791
21792         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
21793
21794 2010-04-26  Richard Guenther  <rguenther@suse.de>
21795
21796         PR lto/43080
21797         * gimple.c (gimple_decl_printable_name): Deal gracefully
21798         with a NULL DECL_NAME.
21799
21800 2010-04-26  Richard Guenther  <rguenther@suse.de>
21801
21802         PR lto/42425
21803         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
21804         if emitting debug information and it is either a function
21805         or a namespace decl.
21806
21807 2010-04-26  Ira Rosen  <irar@il.ibm.com>
21808
21809         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
21810         determine if the statement is vectorizable, and a macro to access it.
21811         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21812         Skip statements that can't be vectorized. If the analysis fails,
21813         mark the statement as unvectorizable if vectorizing basic block.
21814         (vect_compute_data_refs_alignment): Likewise.
21815         (vect_verify_datarefs_alignment): Skip statements marked as
21816         unvectorizable. Add print.
21817         (vect_analyze_group_access): Skip statements that can't be
21818         vectorized. If the analysis fails, mark the statement as
21819         unvectorizable if vectorizing basic block.
21820         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
21821         * tree-vect-stmts.c (vectorizable_store): Fix the number of
21822         generated stmts for SLP.
21823         (new_stmt_vec_info): Initialize the new field.
21824         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
21825         statements marked as unvectorizable.
21826
21827 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
21828
21829         * c-common.c (flag_isoc1x): New.
21830         (flag_isoc99): Update comment.
21831         * c-common.h (flag_isoc1x): New.
21832         (flag_isoc99): Update comment.
21833         * c-cppbuiltin.c (builtin_define_float_constants): Also define
21834         __<type>_DECIMAL_DIG__.
21835         * c-opts.c (set_std_c1x): New.
21836         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
21837         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
21838         * c.opt (-std=c1x, -std=gnu1x): New options.
21839         * doc/cpp.texi: Mention -std=c1x.
21840         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
21841         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
21842         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
21843         * doc/standards.texi: Mention C1X.
21844         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
21845         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
21846         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
21847         Define for C1X.
21848
21849 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
21850
21851         * config/i386/gmon-sol2.c (_mcleanup): Change format string
21852         placeholder from 0x%x to %#x.
21853         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
21854         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
21855         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
21856         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
21857         * config/i386/i386.c (ix86_target_string): Ditto.
21858         (output_pic_addr_const): Ditto.
21859         (print_operand): Ditto.
21860
21861 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
21862
21863         * combine.c (find_split_point): Add third argument.  Use it
21864         to find nested multiply-accumulate instructions.  Adjust calls.
21865         (try_combine): Adjust call to find_split_point.
21866
21867 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
21868
21869         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
21870
21871 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
21872
21873         PR tree-optimization/41442
21874         * fold-const.c (merge_truthop_with_opposite_arm): New function.
21875         (fold_binary_loc): Call it.
21876
21877 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21878
21879         * toplev.c (general_init): Set default for fdiagnostics-show-option.
21880         * opts.c (common_handle_option): Allow disabling it.
21881         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
21882
21883 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
21884
21885         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
21886         between modes if both types are integral.
21887
21888 2010-04-23  Richard Guenther  <rguenther@suse.de>
21889
21890         PR tree-optimization/43572
21891         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
21892
21893 2010-04-23  Richard Guenther  <rguenther@suse.de>
21894
21895         PR lto/43455
21896         * tree-inline.c (tree_can_inline_p): Also check compatibility
21897         of return types.
21898
21899 2010-04-23  Martin Jambor  <mjambor@suse.cz>
21900
21901         PR tree-optimization/43846
21902         * tree-sra.c (struct access): New flag grp_assignment_read.
21903         (build_accesses_from_assign): Set grp_assignment_read.
21904         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
21905         (enum mark_read_status): New type.
21906         (analyze_access_subtree): Propagate grp_assignment_read, create
21907         accesses also if both direct_read and root->grp_assignment_read.
21908
21909 2010-04-23  Martin Jambor  <mjambor@suse.cz>
21910
21911         PR middle-end/43835
21912         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
21913         function does not have type attributes.
21914
21915 2010-04-23  Richard Guenther  <rguenther@suse.de>
21916
21917         PR lto/42653
21918         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
21919         of FUNCTION_DECLs.
21920
21921 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21922
21923         * sese.h (create_if_region_on_edge): Remove.
21924
21925         * sese.c (create_if_region_on_edge): Make static.
21926
21927         * tree-inline.c: Do not include ggc.h.
21928
21929         * expr.c: Do not include ggc.h.
21930
21931         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
21932         dependencies.
21933
21934 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
21935
21936         PR target/43744
21937         * config/sh/sh.c (find_barrier): Don't emit a constant pool
21938         in the middle of insns for casesi_worker_2.
21939
21940 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
21941
21942         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
21943
21944 2010-04-22  Ira Rosen  <irar@il.ibm.com>
21945
21946         PR tree-optimization/43842
21947         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
21948         loop unrolling in update of exit phis. Fix comment.
21949         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
21950         least two reduction statements in the loop before starting SLP
21951         analysis.
21952
21953 2010-04-22  Nick Clifton  <nickc@redhat.com>
21954
21955         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
21956
21957 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
21958
21959         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
21960         to simplify a + ~a.
21961
21962 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21963
21964         * tree-parloops.c (loop_parallel_p): New argument
21965         parloop_obstack.  Pass it down.
21966         (parallelize_loops): New variable parloop_obstack.  Initialize it,
21967         pass it down, free it.
21968
21969         * tree-loop-linear.c (linear_transform_loops): Pass down
21970         lambda_obstack.
21971
21972         * tree-data-ref.h (lambda_compute_access_matrices): New argument
21973         of type struct obstack *.
21974
21975         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
21976         scratch_obstack.  Initialize it, pass down, free it.
21977
21978         * lambda.h (lambda_loop_new): Remove.
21979         (lambda_matrix_new, lambda_matrix_inverse)
21980         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
21981         argument of type struct obstack *.
21982
21983         * lambda-trans.c (lambda_trans_matrix_new): New argument
21984         lambda_obstack.  Pass it down, use obstack allocation for ret.
21985         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
21986         it down.
21987
21988         * lambda-mat.c (lambda_matrix_get_column)
21989         (lambda_matrix_project_to_null): Remove.
21990         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
21991         allocation for mat.
21992         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
21993         lambda_obstack.
21994
21995         * lambda-code.c (lambda_loop_new): New function.
21996         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
21997         (lambda_compute_auxillary_space, lambda_compute_target_space)
21998         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
21999         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
22000         (build_access_matrix): New argument lambda_obstack.  Use obstack
22001         allocation for am.
22002         (lambda_compute_step_signs, lambda_compute_access_matrices): New
22003         argument lambda_obstack.  Pass it down.
22004
22005 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22006
22007         * optabs.h (expand_widening_mult): Declare.
22008
22009 2010-04-22  Richard Guenther  <rguenther@suse.de>
22010
22011         PR tree-optimization/43845
22012         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
22013         lookup the CALL_EXPR function and arguments.
22014
22015 2010-04-22  Nick Clifton  <nickc@redhat.com>
22016
22017         * config/stormy16/stormy16.c
22018         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
22019         * config/stormy16/stormy16.h: Tidy up formatting.
22020         (DONT_USE_BUILTIN_SETJMP): Remove definition.
22021         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
22022         (ineqbranchsi): Delete pattern.
22023         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
22024         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
22025         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
22026         stormy16-lib2-ucmpsi2.c.
22027
22028 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22029
22030         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
22031         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
22032         extra set merge_set_noclobber, and use it to relax the final test
22033         slightly.
22034         * df.h (df_simulate_find_noclobber_defs): Declare.
22035         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
22036         conditional defs.
22037         (df_simulate_find_noclobber_defs): New function.
22038
22039 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
22040
22041         * config/i386/i386.md: Use {} around multi-line preparation statements.
22042
22043 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22044
22045         * c-tree.h (push_init_level, pop_init_level, set_init_index)
22046         (process_init_element): New argument of type struct obstack *.
22047
22048         * c-typeck.c (push_init_level, pop_init_level, set_designator)
22049         (set_init_index, set_init_label, set_nonincremental_init)
22050         (set_nonincremental_init_from_string, find_init_member)
22051         (output_init_element, output_pending_init_elements)
22052         (process_init_element): New argument braced_init_obstack.  Pass it
22053         down.
22054         (push_range_stack, add_pending_init): New argument
22055         braced_init_obstack.  Use obstack allocation.
22056
22057         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
22058         braced_init_obstack.  Pass it down.
22059         (c_parser_braced_init): New variables ret, braced_init_obstack.
22060         Initialize obstack, pass it down and finally free it.
22061
22062 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22063
22064         PR middle-end/29274
22065         * tree-pass.h (pass_optimize_widening_mul): Declare.
22066         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
22067         gate_optimize_widening_mul): New static functions.
22068         (pass_optimize_widening_mul): New.
22069         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
22070         <case MULT_EXPR>: Remove support for widening multiplies.
22071         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
22072         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
22073         simplify_gen_unary rather than directly building extensions.
22074         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
22075         WIDEN_MULT_EXPR.
22076         * expmed.c (expand_widening_mult): New function.
22077         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
22078
22079 2010-04-21  Jan Hubicka  <jh@suse.cz>
22080
22081         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
22082         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
22083         * lto-wpa-fixup.c: Remove.
22084         * Makefile.in (lto-wpa-fixup.o): Remove.
22085         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
22086         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
22087         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
22088
22089 2010-04-21  Jan Hubicka  <jh@suse.cz>
22090
22091         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
22092         add write_optimization_summary, read_optimization_summary.
22093         (ipa_write_summaries_of_cgraph_node_set): Remove.
22094         (ipa_write_optimization_summaries): Declare.
22095         (ipa_read_optimization_summaries): Declare.
22096         * ipa-cp.c (pass_ipa_cp): Update.
22097         * ipa-reference.c (pass_ipa_reference): Update.
22098         * ipa-pure-const.c (pass_ipa_pure_const): Update.
22099         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
22100         Update.
22101         * ipa-inline.c (pass_ipa_inline): Update.
22102         * ipa.c (pass_ipa_whole_program): Update.
22103         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
22104         * passes.c (ipa_write_summaries_1): Do not test wpa.
22105         (ipa_write_optimization_summaries_1): New.
22106         (ipa_write_optimization_summaries): New.
22107         (ipa_read_summaries): Do not test ltrans.
22108         (ipa_read_optimization_summaries_1): New.
22109         (ipa_read_optimization_summaries): New.
22110
22111 2010-04-21  Jan Hubicka  <jh@suse.cz>
22112
22113         * lto-cgraph.c (lto_output_node): Do not output comdat groups
22114         for boundary nodes.
22115         (output_cgraph): Do not arrange comdat groups for boundary nodes.
22116
22117 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22118
22119         PR debug/40040
22120         * dwarf2out.c (add_name_and_src_coords_attributes): Add
22121         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
22122
22123 2010-04-21  Jan Hubicka  <jh@suse.cz>
22124
22125         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
22126
22127 2010-04-21  Jan Hubicka  <jh@suse.cz>
22128
22129         * varpool.c (decide_is_variable_needed): Variable is always needed
22130         during ltrans.
22131
22132 2010-04-21  Jan Hubicka  <jh@suse.cz>
22133
22134         * opts.c (decode_options): Enable pure-const pass for whopr.
22135
22136 2010-04-21  Jan Hubicka  <jh@suse.cz>
22137
22138         * cgraph.c (dump_cgraph_node): Dump also assembler name.
22139         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
22140         at WPA dumping.
22141         (cgraph_decide_inlining): Do not expect callee to be removed in all
22142         cases.
22143
22144 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
22145
22146         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
22147
22148 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
22149
22150         * config/i386/i386.md (x86_shrd): Add athlon_decode and
22151         amdfam10_decode attributes.
22152
22153 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22154
22155         PR middle-end/43570
22156         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
22157         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
22158         (lower_copyprivate_clauses): Use private var in outer
22159         context instead of original var.  Make sure the types
22160         are correct for VLAs.
22161
22162 2010-04-21  Richard Guenther  <rguenther@suse.de>
22163
22164         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
22165         to non-pointer objects.
22166
22167 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22168
22169         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
22170         last chain entry if it starts with the still current label.
22171         (add_location_or_const_value_attribute): Check that
22172         loc_list->first->next is NULL instead of comparing ->first with ->last.
22173         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
22174         to add_var_loc_to_decl.
22175
22176         * dwarf2out.c (output_call_frame_info): For dw_cie_version
22177         >= 4 add also address size and segment size fields into CIE header.
22178
22179         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
22180         long as address size is the same as sizeof (void *) and
22181         segment size is 0.
22182         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
22183         address size or segment size is unexpected, return DW_EH_PE_omit.
22184         (classify_object_over_fdes): If get_cie_encoding returned
22185         DW_EH_PE_omit, return -1.
22186         (init_object): If classify_object_over_fdes returned -1,
22187         pretend there were no FDEs at all.
22188
22189 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
22190
22191         * config/i386/i386.md (bswap<mode>2): Macroize expander from
22192         bswap{si,di}2 using SWI48 mode iterator.
22193         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
22194         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
22195         set modrm attribute of bswap insn to 0 and remove length attribute.
22196         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
22197         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
22198         set mode attribute to <MODE> and remove length attribute.
22199
22200 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
22201
22202         PR rtl-optimization/43520
22203         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
22204         zero available registers.
22205
22206 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22207
22208         * builtins.c (fold_builtin_cproj): Fold more cases.
22209
22210 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22211
22212         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
22213         (fold_builtin_1): Fold builtin cproj.
22214         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
22215         Use ATTR_CONST_NOTHROW_LIST.
22216
22217 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
22218
22219         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
22220         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
22221         ffsi2_no_cmove for !TARGET_CMOVE.
22222         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
22223         (ffssi2): Remove expander.
22224         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
22225         mode iterator.
22226         (ctz<mode>2): Ditto from ctz{si,di}2.
22227         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
22228         mode iterator.
22229         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
22230         mode iterator.
22231
22232 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
22233
22234         * dwarf2out.c (AT_linkage_name): Define.
22235         (clone_as_declaration): Handle DW_AT_linkage_name.
22236         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
22237         of DW_AT_MIPS_linkage_name.
22238         (move_linkage_attr): Likewise.
22239         (dwarf2out_finish): Likewise.
22240
22241 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
22242
22243         PR middle-end/41952
22244         * fold-const.c (fold_comparison): New folding rule.
22245
22246 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
22247
22248         * double-int.h (double_int_setbit): Declare.
22249         * double-int.c (double_int_setbit): New function.
22250         * rtl.h (immed_double_int_const): Declare.
22251         * emit-rtl.c (immed_double_int_const): New function.
22252         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
22253         and immed_double_int_const functions.
22254         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
22255         expand_copysign_bit): (Ditto.).
22256         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
22257         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
22258         * dojump.c (prefer_and_bit_test): (Ditto.).
22259         * expr.c (convert_modes, reduce_to_bit_field_precision,
22260         const_vector_from_tree): (Ditto.).
22261         * expmed.c (mask_rtx, lshift_value): (Ditto.).
22262
22263 2010-04-20  Jan Hubicka  <jh@suse.cz>
22264
22265         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
22266         (dump_cgraph_node): Dump new flags.
22267         * cgraph.h (struct cgraph_node): Add flags
22268         reachable_from_other_partition and in_other_partition.
22269         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
22270         other partition can not be removed.
22271         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
22272         the other partition must be output; silence sanity checking on
22273         leaking functions bodies from other paritition.
22274         * lto-cgraph.c (reachable_from_other_partition_p): New function.
22275         (lto_output_node): Output new flags; do not sanity check that inline
22276         clones are output; drop lto_forced_extern_inline_p code; do not mock
22277         visibility flags at partition boundaries.
22278         (add_node_to): New function.
22279         (output_cgraph): Use it to sort functions so masters appear before
22280         clones.
22281         (input_overwrite_node): Input new flags.
22282         * passes.c (ipa_write_summaries): Do not call
22283         lto_new_extern_inline_states.
22284         * lto-section-out.c (forced_extern_inline,
22285         lto_new_extern_inline_states lto_delete_extern_inline_states,
22286         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
22287         * lto-streamer.h (lto_new_extern_inline_states,
22288         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
22289         lto_forced_extern_inline_p): Kill.
22290
22291 2010-04-20  Richard Guenther  <rguenther@suse.de>
22292
22293         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
22294         from vars that can have pointers.
22295         (process_constraint): Dump useless constraints.
22296
22297 2010-04-20  Richard Guenther  <rguenther@suse.de>
22298
22299         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
22300         (dump_sa_points_to_info): Remove asserts.
22301         (init_base_vars): nothing_id isn't an escape point nor does it
22302         have pointers.
22303
22304 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
22305
22306         * tree.h (TYPE_REF_IS_RVALUE): Define.
22307         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
22308         should_move_die_to_comdat, prune_unused_types_walk): Handle
22309         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
22310         (modified_type_die, gen_reference_type_die): Emit
22311         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
22312         if TYPE_REF_IS_RVALUE and -gdwarf-4.
22313
22314 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22315
22316         PR target/43635
22317         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
22318         calls for -fpic -m31 if they have been sibcall optimized.
22319
22320 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
22321
22322         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
22323         ar.lc fixed and call-used.
22324
22325         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
22326
22327 2010-04-19  Jan Hubicka  <jh@suse.cz>
22328
22329         * opts.c (decode_options): Disable whpr incompatible passes.
22330         * lto/lto.c (lto_1_to_1_map): Skip clones.
22331         (read_cgraph_and_symbols): Do not mark everything as needed.
22332         (do_whole_program_analysis): Do map only after optimizing;
22333         set proper cgraph_state; use passmanager.
22334
22335 2010-04-19  DJ Delorie  <dj@redhat.com>
22336
22337         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
22338         POINTER_PLUS_EXPR and fix them.
22339
22340 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
22341
22342         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
22343         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
22344         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
22345         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
22346         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
22347         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
22348         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
22349         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
22350         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
22351         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
22352         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
22353
22354 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
22355
22356         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
22357         (check_cond_move_block): Likewise.
22358         (cond_move_process_if_block): Likewise.
22359         (noce_find_if_block): Improve formatting.
22360         (find_if_header): Pass 0 to memset and tweak conditions.
22361         (cond_exec_find_if_block): Fix long lines and tweak conditions.
22362
22363 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
22364
22365         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
22366         for -gdwarf-4.
22367
22368         PR middle-end/43337
22369         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
22370         with non-local decl doesn't need chain.
22371
22372 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
22373
22374         * ira-color.c (allocno_reload_assign): Avoid accumulating
22375         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
22376
22377 2010-04-19  Martin Jambor  <mjambor@suse.cz>
22378
22379         * gimple.h (create_tmp_reg): Declare.
22380         * gimplify.c (create_tmp_reg): New function.
22381         (gimplify_return_expr): Use create_tmp_reg.
22382         (gimplify_omp_atomic): Likewise.
22383         (gimple_regimplify_operands): Likewise.
22384         * tree-dfa.c (make_rename_temp): Likewise.
22385         * tree-predcom.c (predcom_tmp_var): Likewise.
22386         (reassociate_to_the_same_stmt): Likewise.
22387         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
22388         (get_replaced_param_substitute): Likewise.
22389         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
22390         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
22391         * tree-ssa-pre.c (get_representative_for): Likewise.
22392         (create_expression_by_pieces): Likewise.
22393         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
22394         (create_tailcall_accumulator): Likewise.
22395
22396 2010-04-19  Martin Jambor  <mjambor@suse.cz>
22397
22398         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
22399         new_stmt.
22400         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
22401
22402 2010-04-19  Richard Guenther  <rguenther@suse.de>
22403
22404         PR tree-optimization/43796
22405         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
22406         from SCEV in the lattice.
22407         (vrp_visit_phi_node): Dump change.
22408
22409 2010-04-19  Richard Guenther  <rguenther@suse.de>
22410
22411         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
22412         * configure: Re-generated.
22413
22414 2010-04-19  Richard Guenther  <rguenther@suse.de>
22415
22416         PR tree-optimization/43783
22417         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
22418         constant ARRAY_REF operands two and three if possible.
22419
22420 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
22421
22422         PR target/43766
22423         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
22424
22425 2010-04-19  Jie Zhang  <jie@codesourcery.com>
22426
22427         PR target/43662
22428         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
22429
22430 2010-04-19  Ira Rosen  <irar@il.ibm.com>
22431
22432         PR tree-optimization/37027
22433         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
22434         and macro to access it.
22435         (vectorizable_reduction): Add argument.
22436         (vect_get_slp_defs): Likewise.
22437         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
22438         statements for possible use in SLP.
22439         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
22440         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
22441         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
22442         add new argument.
22443         (vectorizable_reduction): Likewise.
22444         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
22445         vect_get_slp_defs.
22446         (vectorizable_type_demotion, vectorizable_type_promotion,
22447         vectorizable_store): Likewise.
22448         (vect_analyze_stmt): Update call to vectorizable_reduction.
22449         (vect_transform_stmt): Likewise.
22450         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
22451         (vect_build_slp_tree): Fix indentation. Check that there are no loads
22452         from different interleaving chains in same node.
22453         (vect_slp_rearrange_stmts): New function.
22454         (vect_supported_load_permutation_p): Allow load permutations for
22455         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
22456         inside SLP nodes if necessary.
22457         (vect_analyze_slp_instance): Handle reductions.
22458         (vect_analyze_slp): Try to build SLP instances originating from groups
22459         of reductions.
22460         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
22461         (vect_get_constant_vectors): Create initial vectors for reductions
22462         according to reduction code. Add new argument.
22463         (vect_get_slp_defs): Add new argument, pass it to
22464         vect_get_constant_vectors.
22465         (vect_schedule_slp_instance): Remove SLP tree root statements.
22466
22467 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
22468
22469         * tree.h (ENUM_IS_SCOPED): Define.
22470         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
22471         for ENUM_IS_SCOPED enums.
22472
22473 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
22474
22475         * fold-const.c (fold_comparison): Use ssizetype.
22476         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
22477         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
22478         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
22479         * tree-object-size.c (compute_object_sizes): Use size_type_node.
22480
22481         * tree.h (initialize_sizetypes): Remove parameter.
22482         (build_common_tree_nodes): Remove second parameter.
22483         * stor-layout.c (initialize_sizetypes): Remove parameter.
22484         Always create an unsigned type.
22485         (set_sizetype): Assert that the passed type is unsigned and simplify.
22486         * tree.c (build_common_tree_nodes): Remove second parameter.
22487         Adjust call to initialize_sizetypes.
22488         * c-decl.c (c_init_decl_processing): Remove second argument in call to
22489         build_common_tree_nodes.
22490
22491 2010-04-18  Matthias Klose  <doko@ubuntu.com>
22492
22493         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
22494
22495 2010-04-18  Ira Rosen  <irar@il.ibm.com>
22496
22497         PR tree-optimization/43771
22498         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
22499         load permutation doesn't have gaps.
22500
22501 2010-04-18  Jan Hubicka  <jh@suse.cz>
22502
22503         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
22504         (sse_prologue_save_insn expander): Use new pattern.
22505         (sse_prologue_save_insn1): New pattern and splitter.
22506         (sse_prologue_save_insn): Update to deal also with 64bit aligned
22507         blocks.
22508         * i386.c (setup_incoming_varargs_64): Do not compute jump
22509         destination here.
22510         (ix86_gimplify_va_arg): Update alignment needed.
22511         (ix86_local_alignment): Do not align all local arrays to 128bit.
22512
22513 2010-04-17  Jan Hubicka  <jh@suse.cz>
22514
22515         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
22516
22517 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22518
22519         * arm.md (negdi2): Remove redundant code to force values into a
22520         register.
22521
22522 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22523
22524         * arm/bpabi.S: Add EABI alignment attributes to objects.
22525         * arm/bpabi-v6m.S: Likewise.
22526         * arm/crti.asm: Likewise.
22527         * arm/crtn.asm: Likewise.
22528         * arm/lib1funcs.asm: Likewise.
22529         * arm/libunwind.S: Likewise.
22530
22531 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22532
22533         * arm-protos.h (tune_params): New structure.
22534         * arm.c (current_tune): New variable.
22535         (arm_constant_limit): Delete.
22536         (struct processors): Add pointer to the tune parameters.
22537         (arm_slowmul_tune): New tuning option.
22538         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
22539         (all_cores): Adjust to pick up the tuning model.
22540         (arm_constant_limit): New function.
22541         (arm_override_options): Select the appropriate tuning model.  Delete
22542         initialization of arm_const_limit.
22543         (arm_split_constant): Use the new constant-limit model.
22544         (arm_rtx_costs): Pick up the current tuning model.
22545         * arm.md (is_strongarm, is_xscale): Delete.
22546         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
22547         for Xscale variant architectures.
22548         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
22549
22550 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22551
22552         * config/arm/arm.c (arm_gen_constant): Remove unused variable
22553         can_shift.
22554         (arm_rtx_costs_1): Remove unused variable extra_cost.
22555         (arm_unwind_emit_set): Use variable offset.
22556         (thumb1_output_casesi): Remove unused variable flags.
22557
22558 2010-04-16  Jeff Law  <law@redhat.com>
22559
22560         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
22561         needing assignment rather than doing a two-phase assignment.  Remove
22562         unused variable 'm'.
22563
22564 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22565
22566         PR bootstrap/43767
22567         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
22568
22569 2010-04-16  Doug Kwan  <dougkwan@google.com>
22570
22571         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
22572         (next_operand_entry_id): New static variable.
22573         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
22574         (add_to_ops_vec): Assigned unique ID to operand entry.
22575         (struct oecount_s): New field ID.
22576         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
22577         (undistribute_ops_list): Assign unique IDs to oecounts.
22578         (init_reassoc): reset next_operand_entry_id.
22579
22580 2010-04-16  Doug Kwan  <dougkwan@google.com>
22581
22582         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
22583         missing left parenthesis.
22584
22585 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
22586
22587         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
22588         *btdi_rex64 using SWI48 mode iterator.
22589         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
22590         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
22591         *jcc_btdi_mask_rex64.
22592
22593 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
22594
22595         * double-int.h (tree_to_double_int): Convert to macro.
22596         * double-int.c (tree_to_double_int): Remove.
22597
22598 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22599
22600         PR debug/43762
22601         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
22602         with want_address 2 and in case a single element list might be
22603         possible, call it again with want_address 0.
22604
22605 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
22606
22607         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
22608         case 'W' print operands for HI mode.
22609         * config/h8300/h8300.h (Y0, Y2) : New constraints.
22610         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
22611         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
22612         * config/h8300/predicate.md (bit_register_indirect_operand): New.
22613
22614         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
22615
22616         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
22617         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
22618         #xx:3 and #xx:4 mode.
22619
22620         * config/h8300/h8300.md (inverted load with HImode dest): Add
22621         support for H8300SX.
22622
22623         * config/h8300/predicate.md (bit_operand): Allow immediate values that
22624         satisfy 'U' constraint.
22625
22626 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22627
22628         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
22629         * configure: Regenerate.
22630         * config.in: Regenerate.
22631         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
22632         works.
22633
22634 2010-04-16  Richard Guenther  <rguenther@suse.de>
22635
22636         * tree.h (struct tree_decl_minimal): Move pt_uid ...
22637         (struct tree_decl_common): ... here.
22638         (DECL_PT_UID): Adjust.
22639         (SET_DECL_PT_UID): Likewise.
22640         (DECL_PT_UID_SET_P): Likewise.
22641
22642 2010-04-16  Richard Guenther  <rguenther@suse.de>
22643
22644         PR tree-optimization/43572
22645         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
22646         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
22647         * tree-flow.h (is_call_clobbered): Remove.
22648         * tree-flow-inline.h (is_call_clobbered): Likewise.
22649         * tree-dfa.c (dump_variable): Do not dump call clobber state.
22650         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
22651         (execute_return_slot_opt): Adjust.
22652         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
22653         check for call clobbered vars here.
22654         (find_tail_calls): Move tailcall verification to the
22655         proper place.
22656
22657 2010-04-16  Diego Novillo  <dnovillo@google.com>
22658
22659         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
22660
22661 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
22662
22663         PR target/40603
22664         * config/arm/arm.md (cbranchqi4): New pattern.
22665         * config/arm/predicates.md (const0_operand,
22666         cbranchqi4_comparison_operator): New predicates.
22667
22668 2010-04-16  Richard Guenther  <rguenther@suse.de>
22669
22670         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
22671         (dump_gimple_stmt): Likewise.
22672
22673 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
22674
22675         * recog.h (struct recog_data): New field is_operator.
22676         (struct insn_operand_data): New field is_operator.
22677         * recog.c (extract_insn): Set recog_data.is_operator.
22678         * genoutput.c (output_operand_data): Emit code to set the
22679         is_operator field.
22680         * reload.c (find_reloads): Use it rather than testing for an
22681         empty constraint string.
22682
22683         PR target/41514
22684         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
22685         If the previous insn is a cbranchsi4_insn with the same arguments,
22686         omit the compare instruction.
22687
22688         * config/arm/arm.md (addsi3_cbranch): If destination is a high
22689         register, inputs must be low registers and we need a low register
22690         scratch.  Handle alternative 2 like alternative 3.
22691
22692 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22693
22694         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
22695         don't call get_addr on both.  If one expression is a VALUE and
22696         the other a REG, check VALUE's locs if the REG isn't among them.
22697
22698 2010-04-16  Christian Bruel  <christian.bruel@st.com>
22699
22700         * config/sh/sh.h (sh_frame_pointer_required): New function.
22701         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
22702         (flag_omit_frame_pointer) Set.
22703         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
22704         (rounded_frame_size): Adjust size with outgoing_args_size.
22705         (sh_set_return_address): Must return from stack pointer.
22706         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
22707         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
22708         (ACCUMULATE_OUTGOING_ARGS): Define.
22709         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
22710         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
22711
22712 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
22713
22714         PR target/43471
22715         * config/sh/sh.c (sh_legitimize_reload_address): Use
22716         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
22717         Remove a unneeded check for offset_base.
22718
22719 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
22720
22721         * configure: Regenerated.
22722
22723 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22724
22725         * config/s390/s390.c (s390_call_save_register_used): Switch back
22726         to HARD_REGNO_NREGS.
22727
22728 2010-04-15  Richard Guenther  <rguenther@suse.de>
22729
22730         * alias.c (alias_set_subset_of): Handle alias-set zero
22731         child properly.
22732
22733 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
22734             Julian Brown  <julian@codesourcery.com>
22735
22736         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
22737         alternatives according to use of high and low regs.
22738         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
22739         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
22740         optimizing for size on Thumb-2.
22741
22742 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
22743
22744         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
22745
22746 2010-04-15  Richard Guenther  <rguenther@suse.de>
22747
22748         * tree-ssa-structalias.c (struct variable_info): Add
22749         is_fn_info flag.
22750         (new_var_info): Initialize it.
22751         (dump_constraints): Support printing last added constraints.
22752         (debug_constraints): Adjust.
22753         (dump_constraint_graph): Likewise.
22754         (make_heapvar_for): Check for NULL cfun.
22755         (get_function_part_constraint): New function.
22756         (get_fi_for_callee): Likewise.
22757         (find_func_aliases): Properly implement IPA PTA constraints.
22758         (process_ipa_clobber): New function.
22759         (find_func_clobbers): Likewise.
22760         (insert_into_field_list_sorted): Remove.
22761         (create_function_info_for): Properly allocate vars for IPA mode.
22762         Do not use insert_into_field_list_sorted.
22763         (create_variable_info_for): Properly generate constraints for
22764         global vars in IPA mode.
22765         (dump_solution_for_var): Always dump the solution.
22766         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
22767         (find_what_var_points_to): Adjust.
22768         (pt_solution_set): Change.
22769         (pt_solution_ior_into): New function.
22770         (pt_solution_empty_p): Export.
22771         (pt_solution_includes_global): Adjust.
22772         (pt_solution_includes_1): Likewise.
22773         (pt_solutions_intersect_1): Likewise.
22774         (dump_sa_points_to_info): Check some invariants.
22775         (solve_constraints): Move constraint dumping ...
22776         (compute_points_to_sets): ... here.
22777         (ipa_pta_execute): ... and here.
22778         (compute_may_aliases): Do not re-compute points-to info
22779         locally if IPA info is available.
22780         (ipa_escaped_pt): New global var.
22781         (ipa_pta_execute): Properly implement IPA PTA.
22782         * tree-into-ssa.c (dump_decl_set): Support dumping
22783         decls not in referenced-vars.
22784         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
22785         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
22786         (dump_points_to_solution): Likewise.
22787         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
22788         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
22789         (remap_gimple_stmt): Reset call clobber/use information if necessary.
22790         (copy_decl_to_var): Copy DECL_PT_UID.
22791         (copy_result_decl_to_var): Likewise.
22792         * tree.c (make_node_stat): Initialize DECL_PT_UID.
22793         (copy_node_stat): Copy it.
22794         * tree.h (DECL_PT_UID): New macro.
22795         (SET_DECL_PT_UID): Likewise.
22796         (DECL_PT_UID_SET_P): Likewise.
22797         (struct tree_decl_minimal): Add pt_uid member.
22798         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
22799         (pt_solution_empty_p): Declare.
22800         (pt_solution_set): Adjust.
22801         (ipa_escaped_pt): Declare.
22802         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
22803         * gimple-pretty-print.c (pp_points_to_solution): New function.
22804         (dump_gimple_call): Dump call clobber/use information.
22805         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
22806         * tree-pass.h (TDF_ALIAS): New dump option.
22807         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
22808         * doc/invoke.texi (-fipa-pta): Update documentation.
22809
22810 2010-04-15  Richard Guenther  <rguenther@suse.de>
22811
22812         * Makefile.in (OBJS-common): Add gimple-fold.o.
22813         (gimple-fold.o): New rule.
22814         * tree.h (maybe_fold_offset_to_reference,
22815         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
22816         prototypes ...
22817         * gimple.h: ... here.
22818         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
22819         may_propagate_address_into_dereference): Move prototypes ...
22820         * gimple.h: ... here.
22821         * tree-ssa-ccp.c (get_symbol_constant_value,
22822         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
22823         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
22824         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
22825         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
22826         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
22827         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
22828         gimplify_and_update_call_from_tree): Move ...
22829         * gimple-fold.c: ... here.  New file.
22830         (ccp_fold_builtin): Rename to ...
22831         (gimple_fold_builtin): ... this.
22832         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
22833
22834 2010-04-15  Richard Guenther  <rguenther@suse.de>
22835
22836         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
22837         fit_double_type, force_fit_type_double, add_double_with_sign,
22838         neg_double, mul_double_with_sign, lshift_double, rshift_double,
22839         lrotate_double, rrotate_double, div_and_round_double): Move ...
22840         * double-int.c: ... here.
22841         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
22842         add_double, neg_double, mul_double_with_sign, mul_double,
22843         lshift_double, rshift_double, lrotate_double, rrotate_double,
22844         div_and_round_double): Move prototypes ...
22845         * double-int.h: ... here.
22846
22847 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
22848
22849         PR target/43742
22850         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
22851         matching constraints to ensure inputs match the output.
22852
22853 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
22854
22855         PR target/43742
22856         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
22857         in an input-only operand.
22858
22859 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
22860
22861         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
22862         (double_int_not, double_int_lshift, double_int_rshift): Declare.
22863         (double_int_negative_p): Convert to static inline function.
22864         * double-int.c (double_int_lshift, double_int_lshift): New functions.
22865         (double_int_negative_p): Remove.
22866         * tree.h (lshift_double, rshift_double):
22867         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
22868         * fold-const.c (fold_convert_const_int_from_real,
22869         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
22870         (lshift_double): Change type of arith argument to bool.
22871         (rshift_double): Change type of arith argument to bool. Correct
22872         comment.
22873         * expmed.c (mask_rtx, lshift_value): (Ditto.).
22874
22875 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
22876
22877         PR target/21803
22878         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
22879         at the start and end of the then/else blocks, and omit them from the
22880         conversion.
22881         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
22882         argument; all callers changed.  Pass zero to old_insns_match_p instead.
22883         (flow_find_head_matching_sequence): New function.
22884         (old_insns_match_p): Check REG_EH_REGION notes for calls.
22885         * basic-block.h (flow_find_cross_jump,
22886         flow_find_head_matching_sequence): Declare functions.
22887
22888 2010-04-14  Jason Merrill  <jason@redhat.com>
22889
22890         PR c++/36625
22891         * c-common.c (attribute_takes_identifier_p): New fn.
22892         * c-common.h: Declare it.
22893
22894 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22895
22896         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
22897         splitter condition.
22898         (*udivmod<mode>4): Ditto.
22899
22900 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22901
22902         * config/i386/i386.md (maxmin_int): Rename code attribute from
22903         maxminiprefix and update all users.
22904         (maxmin_float): Ditto from maxminfprefix.
22905         (logic): Ditto from logicprefix.
22906         (absneg_mnemonic): Ditto from absnegprefix.
22907         * config/i386/mmx.md: Update all users of maxminiprefix,
22908         maxminfprefix and logicprefix for rename.
22909         * config/i386/sse.md: Ditto.
22910         * config/i386/sync.md (sync_<code><mode>): Update for
22911         logicprefix rename.
22912
22913 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22914
22915         PR 42966
22916         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
22917         warnings converted to errors.
22918
22919 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22920
22921         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
22922         used insn_type variable.
22923         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
22924         to avoid set-but-not-used warning.
22925
22926 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22927
22928         * df-core.c (df_ref_debug): Change format string placeholder
22929         from 0x%x to %#x.
22930         * dwarf2asm.c (dw2_asm_output_data_raw,
22931         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
22932         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
22933         * dwarf2out.c (output_cfi, output_cfi_directive,
22934         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
22935         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
22936         Ditto.
22937         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
22938         * print-rtl.c (print_rtx): Ditto.
22939
22940 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22941
22942         PR middle-end/42694
22943         * builtins.c (expand_builtin_pow_root): New function to expand pow
22944         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
22945         series of sqrt and cbrt calls under -ffast-math.
22946         (expand_builtin_pow): Call it.
22947
22948 2010-04-14  Michael Matz  <matz@suse.de>
22949
22950         PR tree-optimization/42963
22951         * tree-cfg.c (touched_switch_bbs): New static variable.
22952         (group_case_labels_stmt): New function broken out from ...
22953         (group_case_labels): ... here, use the above.
22954         (start_recording_case_labels): Allocate touched_switch_bbs.
22955         (end_recording_case_labels): Deallocate it, call
22956         group_case_labels_stmt.
22957         (gimple_redirect_edge_and_branch): Remember index of affected BB.
22958
22959 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22960
22961         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
22962         from insn template.
22963
22964 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22965
22966         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
22967
22968 2010-04-13  Jan Hubicka  <jh@suse.cz>
22969
22970         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
22971         of optimized out static functions.
22972         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
22973         cost computation.  Also sanity check for overflows.
22974         (update_caller_keys): Update cgraph_edge_badness call; properly
22975         update fibheap and sanity check that it is up to date.
22976         (add_new_edges_to_heap): Update cgraph_edge_badness.
22977         (cgraph_decide_inlining_of_small_function): Likewise;
22978         add sanity checking that badness in heap is up to date;
22979         improve dumping of reason; Update badness of calls to the
22980         offline copy of function currently inlined; dump badness
22981         of functions not inlined because of unit growth limits.
22982
22983 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
22984
22985         PR middle-end/32628
22986         * c-common.c (pointer_int_sum): Disregard overflow that occured only
22987         because of sign-extension change when converting to sizetype here...
22988         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
22989
22990         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
22991         the folding to constants.  Remove redundant final conversion.
22992         (fold_binary) <associate>: Do not associate if the re-association of
22993         constants alone overflows.
22994         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
22995         to the end of the list.
22996         (multiple_of_p) <COND_EXPR>: New case.
22997
22998 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22999
23000         * opt-functions.awk (opt_sanitized_name): New.
23001         (opt_enum): New.
23002         * optc-gen.awk: Use it
23003         * opth-gen.awk: Use it.
23004
23005 2010-04-13  Martin Jambor  <mjambor@suse.cz>
23006
23007         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
23008         (sra_modify_assign): Delete stmts loading dead data even if racc has no
23009         children.  Call replace_uses_with_default_def_ssa_name to handle
23010         SSA_NAES on lhs.
23011
23012 2010-04-13  Michael Matz  <matz@suse.de>
23013
23014         PR middle-end/43730
23015         * builtins.c (expand_builtin_interclass_mathfn): Also create
23016         a register if the predicate doesn't match.
23017
23018 2010-04-13  Diego Novillo  <dnovillo@google.com>
23019
23020         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
23021         * c-pch.c: Include timevar.h.
23022         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
23023         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
23024         * ggc-common.c: Include timevar.h.
23025         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
23026         * timevar.def (TV_PCH_SAVE): Define.
23027         (TV_PCH_CPP_SAVE): Define.
23028         (TV_PCH_PTR_REALLOC): Define.
23029         (TV_PCH_PTR_SORT): Define.
23030         (TV_PCH_RESTORE): Define.
23031         (TV_PCH_CPP_RESTORE): Define.
23032
23033 2010-04-13  Michael Matz  <matz@suse.de>
23034
23035         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
23036         into MINUS_EXPRs.
23037         (can_reassociate_p): New function.
23038         (break_up_subtract_bb, reassociate_bb): Use it.
23039
23040 2010-04-13  Richard Guenther  <rguenther@suse.de>
23041
23042         PR bootstrap/43737
23043         * builtins.c (c_readstr): Fix assert.
23044
23045 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
23046
23047         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
23048         when generating cltd insn.
23049
23050         (*ashl<mode>3_1): Remove special handling for register operand 2.
23051         (*ashlsi3_1_zext): Ditto.
23052         (*ashlhi3_1): Ditto.
23053         (*ashlhi3_1_lea): Ditto.
23054         (*ashlqi3_1): Ditto.
23055         (*ashlqi3_1_lea): Ditto.
23056         (*<shiftrt_insn><mode>3_1): Ditto.
23057         (*<shiftrt_insn>si3_1_zext): Ditto.
23058         (*<shiftrt_insn>qi3_1_slp): Ditto.
23059         (*<rotate_insn><mode>3_1): Ditto.
23060         (*<rotate_insn>si3_1_zext): Ditto.
23061         (*<rotate_insn>qi3_1_slp): Ditto.
23062
23063 2010-04-13  Richard Guenther  <rguenther@suse.de>
23064
23065         * tree-ssa-structalias.c (callused_id): Remove.
23066         (call_stmt_vars): New.
23067         (get_call_vi): Likewise.
23068         (lookup_call_use_vi): Likewise.
23069         (lookup_call_clobber_vi): Likewise.
23070         (get_call_use_vi): Likewise.
23071         (get_call_clobber_vi): Likewise.
23072         (make_transitive_closure_constraints): Likewise.
23073         (handle_const_call): Adjust to do per-call call-used handling.
23074         (handle_pure_call): Likewise.
23075         (find_what_var_points_to): Remove general callused handling.
23076         (init_base_vars): Likewise.
23077         (init_alias_vars): Initialize call_stmt_vars.
23078         (compute_points_to_sets): Process call-used and call-clobbered
23079         vars for call statements.
23080         (delete_points_to_sets): Free call_stmt_vars.
23081
23082 2010-04-13  Richard Guenther  <rguenther@suse.de>
23083
23084         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
23085         Only add RW dependence for dependence distance zero.
23086         Adjust maximal vectorization factor according to dependences.
23087         Move alignment handling ...
23088         (vect_find_same_alignment_drs): ... here.  New function.
23089         (vect_analyze_data_ref_dependences): Adjust.
23090         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
23091         (vect_analyze_data_refs): Adjust minimal vectorization factor
23092         according to data references.
23093         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
23094         dependences before determining the vectorization factor.
23095         Analyze alignment after determining the vectorization factor.
23096         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
23097         dependences before alignment.
23098         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
23099         Adjust prototype.
23100         (vect_analyze_data_refs): Likewise.
23101         (MAX_VECTORIZATION_FACTOR): New define.
23102
23103 2010-04-13  Duncan Sands  <baldrick@free.fr>
23104
23105         * except.h (lang_eh_type_covers): Remove.
23106         * except.c (lang_eh_type_covers): Likewise.
23107
23108 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23109             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23110
23111         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
23112         * config/s390/s390.c: Replace UNTIS_PER_WORD with
23113         UNITS_PER_LONG where it is ABI relevant.
23114         (s390_return_addr_rtx): Likewise.
23115         (s390_back_chain_rtx): Likewise.
23116         (s390_frame_area): Likewise.
23117         (s390_frame_info): Likewise.
23118         (s390_initial_elimination_offset): Likewise.
23119         (save_gprs): Likewise.
23120         (s390_emit_prologue): Likewise.
23121         (s390_emit_epilogue): Likewise.
23122         (s390_function_arg_advance): Likewise.
23123         (s390_function_arg): Likewise.
23124         (s390_va_start): Likewise.
23125         (s390_gimplify_va_arg): Likewise.
23126         (s390_function_profiler): Likewise.
23127         (s390_optimize_prologue): Likewise.
23128         (s390_rtx_costs): Likewise.
23129         (s390_secondary_reload): Likewise.
23130         (s390_promote_function_mode): Likewise.
23131         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
23132         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
23133         registers available.
23134         (s390_unwind_word_mode): New function.
23135         (s390_function_value): Split 64 bit values into register pair if
23136         used as return value.
23137         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
23138         function call parameters.  Handle parallels.
23139         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
23140         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
23141         (DWARF_CIE_DATA_ALIGNMENT): New macro.
23142         (s390_expand_setmem): Remove unused variable src_addr.
23143         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
23144         deal with 64 bit registers.
23145         * config/s390/s390.h: Define __zarch__ predefined macro.
23146         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
23147         (UNITS_PER_LONG): New macro.
23148         * libjava/include/s390-signal.h: Define extended ucontext
23149         structure containing the upper halfs of the 64 bit registers.
23150
23151 2010-04-13  Simon Baldwin  <simonb@google.com>
23152
23153         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
23154
23155 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
23156
23157         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
23158         rvalue on the RHS if the LHS is of a non-renamable type.
23159         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
23160
23161 2010-04-13  Matthias Klose  <doko@ubuntu.com>
23162
23163         * gcc.c (cc1_options): Handle -iplugindir before processing
23164         the cc1 spec. Only add -iplugindir once.
23165         (cpp_unique_options): Add -iplugindir option if -fplugin* options
23166         found.
23167         * common.opt (iplugindir): Remove `Separate' property, initialize.
23168         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
23169         option.
23170         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
23171         (distclean): Remove plugin dir.
23172         * doc/invoke.texi: Document -iplugindir.
23173
23174 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
23175
23176         * doc/plugins.texi (Loading Plugins): Document short
23177         -fplugin=foo option.
23178         (Plugin API): Mention default_plugin_dir_name function.
23179
23180         * gcc.c (find_file_spec_function): Add new declaration.
23181         (static_spec_func): Use it for "find-file".
23182         (find_file_spec_function): Add new function.
23183         (cc1_options): Add -iplugindir option if -fplugin* options found.
23184
23185         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
23186
23187         * plugin.c (add_new_plugin): Updated comment, and handle short
23188         plugin name.
23189         (default_plugin_dir_name): Added new function.
23190
23191         * common.opt (iplugindir): New option to set the plugin directory.
23192
23193 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
23194
23195         * config/i386/i386.md (any_rotate): New code iterator.
23196         (rotate_insn): New code attribute.
23197         (rotate): Ditto.
23198         (SWIM124): New mode iterator.
23199         (<rotate_insn>ti3): New expander.
23200         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
23201         any_rotate code iterator.
23202         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
23203         using any_rotate code iterator and SWIM124 mode iterator.
23204         (ix86_rotlti3): New insn_and_split pattern.
23205         (ix86_rotrti3): Ditto.
23206         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
23207         ix86_rotl{di,ti}3 patterns.
23208         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
23209         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
23210         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
23211         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
23212         code iterator and SWI mode iterator.
23213         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
23214         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
23215         code iterator.
23216         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
23217         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
23218         (bswap rotatert splitter): Add splitter.
23219         (bswap splitter): Macroize splitter using any_rotate code iterator.
23220         Add insn predicate to split only for TARGET_USE_XCHGB or when
23221         optimizing function for size.
23222
23223 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23224
23225         * config/pa/pa.c (emit_move_sequence): Remove use of
23226         deleted variable flag_argument_noalias.
23227
23228 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23229
23230         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
23231         configurations.
23232         Add to unsupported targets list.
23233         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
23234         sparc*-sun-solaris2.[567]* from target lists.
23235         * configure: Regenerate.
23236         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
23237         removal.
23238         Remove Solaris 7 patch references.
23239         (Specific, sparc-sun-solaris2.7): Removed.
23240         (sparc-sun-solaris2*): Update Solaris 7 example.
23241         (sparc64-*-solaris2*): Likewise.
23242
23243 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23244
23245         * config.build (alpha*-dec-osf4*): Remove.
23246         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
23247         of obsolete configurations.
23248         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
23249         support.
23250         * config/alpha/t-osf4: Renamed to ...
23251         * config/alpha/t-osf5: ... this.
23252         * config/alpha/osf.h: Renamed to ...
23253         * config/alpha/osf5.h: ... this.
23254         Merged old osf5.h contents.
23255         Update comments.
23256         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
23257         (EXTRA_SPECS): Removed.
23258         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
23259         reflect removal of Tru64 UNIX V4.0/V5.0 support.
23260         Document that.
23261
23262 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23263
23264         * doc/contrib.texi (Contributors, Rainer Orth): Update.
23265
23266 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
23267
23268         PR/43702
23269         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
23270         __thiscall convention.
23271
23272 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23273
23274         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
23275         orig_base.
23276         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
23277
23278 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23279
23280         * function.c (assign_parms_initialize_all): Add unused attribute
23281         to fntype.
23282
23283 2010-04-12  Richard Guenther  <rguenther@suse.de>
23284
23285         * gsstruct.def (GSS_CALL): New.
23286         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
23287         * gimple.h: Include tree-ssa-alias.h.
23288         (struct gimple_statement_call): New.
23289         (union gimple_statement_struct_d): Add gimple_call member.
23290         (gimple_call_reset_alias_info): Declare.
23291         (gimple_call_use_set): New function.
23292         (gimple_call_clobber_set): Likewise.
23293         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
23294         * gimple.c (gimple_call_reset_alias_info): New function.
23295         (gimple_build_call_1): Call it.
23296         * lto-streamer-in.c (input_gimple_stmt): Likewise.
23297         * tree-inline.c (remap_gimple_stmt): Likewise.
23298         (expand_call_inline): Remove callused handling.
23299         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
23300         * tree-dfa.c (dump_variable): Likewise.
23301         * tree-parloops.c (parallelize_loops): Likewise.
23302         * tree-ssa.c (init_tree_ssa): Likewise.
23303         (delete_tree_ssa): Likewise.
23304         * tree-flow-inline.h (is_call_used): Remove.
23305         * tree-flow.h (struct gimple_df): Remove callused member.
23306         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
23307         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
23308         (ref_maybe_used_by_call_p_1): Simplify.
23309         (call_may_clobber_ref_p_1): Likewise.
23310         * tree-ssa-structalias.c (compute_points_to_sets): Set
23311         the call stmt used and clobbered sets.
23312         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
23313         (find_tail_calls): Verify the tail call.
23314
23315 2010-04-12  Richard Guenther  <rguenther@suse.de>
23316
23317         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
23318         single-iteration always-inline inlining.
23319         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
23320         (cgraph_decide_inlining): Do not handle always-inline specially.
23321         (try_inline): Remove always-inline cycle detection special case.
23322         Do not recurse on always-inlines.
23323         (cgraph_early_inlining): Do not iterate if not optimizing.
23324         (cgraph_gate_early_inlining): remove.
23325         (pass_early_inline): Run unconditionally.
23326         (gate_cgraph_decide_inlining): New function.
23327         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
23328         not inlining or optimizing.
23329         (cgraph_decide_inlining_of_small_functions): Also consider
23330         always-inline functions.
23331         (cgraph_default_inline_p): Return true for nodes which should
23332         disregard inline limits.
23333         (estimate_function_body_sizes): Assume zero size and time for
23334         nodes which are marked as disregarding inline limits.
23335         (cgraph_decide_recursive_inlining): Do not perform recursive
23336         inlining on always-inline nodes.
23337
23338 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
23339
23340         PR bootstrap/43699
23341         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
23342         for exprs satisfying handled_component_p.
23343
23344 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
23345
23346         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
23347         non-constant aggregate elements.
23348
23349         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
23350         is a real initialization.
23351
23352 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
23353
23354         PR c/36774
23355         * c-decl.c (start_function): Move forward check for nested function.
23356
23357 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
23358
23359         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
23360         * config/sh/sh.c: Include reload.h.
23361         (sh_legitimize_reload_address): New.
23362         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
23363         sh_legitimize_reload_address.
23364
23365 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
23366
23367         * config/sh/sh.md (*movqi_pop): New insn pattern.
23368         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
23369
23370 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23371
23372         * config/i386/i386.md (any_shiftrt): New code iterator.
23373         (shiftrt_insn): New code attribute.
23374         (shiftrt): Ditto.
23375         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
23376         using any_shiftrt code iterator.
23377         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
23378         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
23379         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
23380         pattern from corresponding peephole2 patterns.
23381         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
23382         using any_shiftrt code iterator.
23383         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
23384         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
23385         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
23386         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
23387         *{ashr,lshr}<mode>3_cmp_zext.
23388         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
23389
23390 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23391
23392         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
23393         scratch register.
23394         (*lshr<mode>3_cconly): Ditto.
23395
23396 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23397
23398         * config/i386/i386.md (lshr<mode>3): Macroize expander from
23399         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23400         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23401         pattern from *lshr{di,ti}3_1 and corresponding splitters using
23402         DWI mode iterator.
23403         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23404         from corresponding peephole2 patterns.
23405         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
23406         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
23407         and *lshrdi3_1_rex64 using SWI mode iterator.
23408         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
23409         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
23410         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
23411         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
23412         and *lshrdi3_cmp_rex64 using SWI mode iterator.
23413         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
23414         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
23415         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
23416         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
23417         SWI mode iterator.
23418
23419 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
23420
23421         * config/i386/i386.md (ashr<mode>3): Macroize expander from
23422         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23423         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23424         pattern from *ashr{di,ti}3_1 and corresponding splitters using
23425         DWI mode iterator.
23426         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23427         from corresponding peephole2 patterns.
23428         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
23429         (ashrsi3_cvt): Rename from ashrsi3_31.
23430         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
23431         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
23432         and x86_64_shift_adj_3 using SWI48 mode iterator.
23433         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
23434         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
23435         and *ashrdi3_1_rex64 using SWI mode iterator.
23436         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
23437         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
23438         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
23439         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
23440         and *ashrdi3_cmp_rex64 using SWI mode iterator.
23441         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
23442         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
23443         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
23444         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
23445         SWI mode iterator.
23446         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
23447         * config/i386/i386.c (ix86_split_ashr): Update for renamed
23448         x86_shift<mode>_adj_3 expanders.
23449
23450 2010-04-10  Wei Guozhi  <carrot@google.com>
23451
23452         PR target/42601
23453         * config/arm/arm.c (arm_pic_static_addr): New function.
23454         (legitimize_pic_address): Call arm_pic_static_addr when it detects
23455         a static symbol.
23456         (arm_output_addr_const_extra): Output expression for new pattern.
23457         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
23458
23459 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
23460
23461         * ira-costs.c (record_reg_classes): Ignore alternatives that are
23462         not enabled.
23463
23464         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
23465         * web.c: Include "insn-config.h" and "recog.h".
23466         (union_match_dups): New function.
23467         (web_main): Call it.
23468         (union_defs): Don't try to recognize match_dups.
23469
23470         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
23471         if doing so would replace the entire pattern.
23472
23473 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
23474
23475         PR target/43707
23476         PR target/43709
23477         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
23478         and splitter pattern.  Change splitter operand 1 predicate to
23479         nonmemory_operand.
23480
23481 2010-04-09  Martin Jambor  <mjambor@suse.cz>
23482
23483         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
23484         lattices are addresses of CONST_DECLs with the same initial value.
23485         (ipcp_print_all_lattices): Print values of CONST_DECLs.
23486         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
23487
23488 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
23489             Bernd Schmidt  <bernds@codesourcery.com>
23490
23491         * loop-invariant.c (replace_uses): New static function.
23492         (move_invariant_reg): Use it to ensure we can replace the uses.
23493
23494 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
23495
23496         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
23497         function template.
23498         (picochip_override_options): Enable section anchors only above -O1.
23499         (picochip_reorg): Fixed a couple of build warnings.
23500
23501 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23502
23503         * configure.ac (plugin -rdynamic test): Log result.
23504         * configure: Regenerate.
23505         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
23506         (RDYNAMIC_SPEC): Define.
23507         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
23508
23509 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23510
23511         * configure.ac: Determine Sun ld version numbers.
23512         (comdat_group): Restrict GNU ld version checks to gld.
23513         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
23514         (enable_comdat): Support --enable-comdat.
23515         * configure: Regenerate.
23516         * doc/install.texi (Configuration): Document --enable-comdat.
23517
23518 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23519
23520         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
23521         * config/sol2-gld.h: ... here.
23522         * config.gcc (sparc*-*-solaris2*): Reflect this.
23523         (i[34567]86-*-solaris2*): Use it.
23524
23525 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
23526
23527         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
23528         setup_clocks_p.
23529         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
23530
23531 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23532
23533         PR 42965
23534         * diagnostic.c (diagnostic_initialize): Initialize
23535         some_warnings_are_errors.
23536         (diagnostic_finish): New.
23537         (diagnostic_action_after_output): Call it before exiting.
23538         (diagnostic_report_diagnostic): Do not print message here. Set
23539         some_warnings_are_errors.
23540         * diagnostic.h (diagnostic_context): Delete
23541         issue_warnings_are_errors_message. Add some_warnings_are_errors.
23542         (diagnostic_finish): Declare.
23543         * toplev.c (toplev_main): Call it before exit.
23544
23545 2010-04-09  Jason Merrill  <jason@redhat.com>
23546
23547         PR c++/42623
23548         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
23549         for incomplete type.
23550
23551         PR c++/41788
23552         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
23553         based on a warning flag.
23554
23555 2010-04-09  Richard Guenther  <rguenther@suse.de>
23556
23557         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
23558
23559 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
23560
23561         PR bootstrap/43684
23562         * varasm.c (default_assemble_visibility): Wrap vars that are
23563         set, but unused, by targets without GAS.
23564         * config/rs6000/rs6000.c (paired_emit_vector_compare):
23565         Remove set, but unused, vars.
23566         (rs6000_legitimize_tls_address): Likewise.
23567         (altivec_expand_dst_builtin): Likewise.
23568         * config/darwin.c (machopic_classify_symbol): Likewise.
23569         (machopic_indirection_name): Likewise.
23570
23571 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
23572
23573         * config/i386/i386.md (DWI): New mode iterator.
23574         (S): New mode attribute.
23575         (shift_operand): Ditto.
23576         (shift_immediate_operand): Ditto.
23577         (ashl_input_operand): Ditto.
23578         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
23579         using SDWIM mode iterator.
23580         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23581         pattern from *ashl{di,ti}3_1 and corresponding splitters using
23582         DWI mode iterator.
23583         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
23584         from corresponding peephole2 patterns.
23585         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
23586         and x86_64_shift_adj_1 using SWI48 mode iterator.
23587         (x86_shift<mode>_adj_2): Ditto.
23588         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
23589         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
23590         using SWI48 mode iterator.
23591         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
23592         *ashldi3_cmp_rex64 using SWI mode iterator.
23593         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
23594         *ashldi3_cconly_rex64 using SWI mode iterator.
23595         * config/i386/i386.c (ix86_split_ashl): Update for renamed
23596         x86_shift<mode>_adj_{1,2}.
23597         (ix86_split_ashr): Ditto.
23598         (ix86_split_lshr): Ditto.
23599
23600 2010-04-09  Richard Guenther  <rguenther@suse.de>
23601
23602         * target.h (builtin_conversion): Pass in input and output types.
23603         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
23604         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
23605         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
23606         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
23607
23608         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
23609         Handle AVX modes.
23610         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
23611
23612 2010-04-09  Richard Guenther  <rguenther@suse.de>
23613
23614         PR target/43152
23615         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
23616
23617 2010-04-09  Richard Guenther  <rguenther@suse.de>
23618
23619         * tree-vectorizer.h (struct _stmt_vec_info): Document
23620         that vectype is the type of the LHS.
23621         (supportable_widening_operation, supportable_narrowing_operation):
23622         Get both input and output vector types as arguments.
23623         (vect_is_simple_use_1): Declare.
23624         (get_same_sized_vectype): Likewise.
23625         * tree-vect-loop.c (vect_determine_vectorization_factor):
23626         Set STMT_VINFO_VECTYPE to the vector type of the def.
23627         (vectorizable_reduction): Adjust.
23628         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
23629         Adjust.  Specify the output vector type.
23630         (vect_pattern_recog_1): Adjust.
23631         * tree-vect-stmts.c (get_same_sized_vectype): New function.
23632         (vectorizable_call): Adjust.
23633         (vectorizable_conversion): Likewise.
23634         (vectorizable_operation): Likewise.
23635         (vectorizable_type_demotion): Likewise.
23636         (vectorizable_type_promotion): Likewise.
23637         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
23638         the def.
23639         (vect_is_simple_use_1): New function.
23640         (supportable_widening_operation): Get both input and output
23641         vector types.
23642         (supportable_narrowing_operation): Likewise.
23643         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
23644
23645 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
23646
23647         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
23648         __thiscall and _thiscall as predefined macros.
23649         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
23650         thiscall attribute handling.
23651         (ix86_comp_type_attributes): Likewise.
23652         (ix86_function_regparm): Likewise.
23653         (ix86_return_pops_args): Likewise.
23654         (init_cumulative_args): Likewise.
23655         (find_drap_reg): Likewise.
23656         (ix86_static_chain): Likewise.
23657         (x86_this_parameter): Likewise.
23658         (x86_output_mi_thunk): Likewise.
23659         (ix86_attribute_table): Add description for thiscall attribute.
23660         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
23661         * doc/extend.texi: Add documentation for thiscall.
23662
23663 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23664
23665         PR c++/28584
23666         * c.opt (Wint-to-pointer-cast): Available in C++.
23667         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
23668
23669 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
23670
23671         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
23672         * calls.c (expand_call): Pass the function type to aggregate_value_p.
23673         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
23674         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
23675         function type instead.  Reorder and simplify checks.
23676
23677         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
23678
23679 2010-04-08  Jing Yu  <jingyu@google.com>
23680             Zdenek Dvorak  <ook@ucw.cz>
23681
23682         PR tree-optimization/42720
23683         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
23684         loop unswitch conditions here from ...
23685         (tree_unswitch_single_loop): ... here.
23686
23687 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
23688
23689         * tree-if-conv.c: Fix comments and simplify logic.
23690
23691 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
23692
23693         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
23694         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
23695         (main_tree_if_conversion): Update call to tree_if_conversion.
23696
23697 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23698
23699         PR 42485
23700         * doc/invoke.texi (-b,-V): Delete.
23701         * doc/tm.texi: Do not mention -b.
23702         * gcc.c (display_help): Delete -b and -V.
23703         (process_command): Delete -b and -V.
23704         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
23705
23706 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
23707             Wolfgang Gellerich  <gellerich@de.ibm.com>
23708
23709         Implement target hook for loop unrolling
23710         * target.h (loop_unroll_adjust): Add a new target hook function.
23711         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
23712         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
23713         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
23714         (s390_loop_unroll_adjust): Implement the new target hook for s390.
23715         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
23716         target hook.
23717         (decide_unroll_stupid): Likewise.
23718
23719 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23720
23721         PR target/43643
23722         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
23723
23724 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23725
23726         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
23727         (Specific, *-*-solaris2*): Likewise.
23728         Don't prefer Sun as over GNU as.
23729
23730 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
23731
23732         * config/s390/s390.c (override_options): Adjust the z10 defaults
23733         for max-unroll-times, max-completely-peeled-insns
23734         and max-completely-peel-times.
23735
23736 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23737
23738         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
23739         instructions for z10.
23740         (s390_expand_setmem): Likewise.
23741         (s390_expand_cmpmem): Likewise.
23742
23743 2010-04-08  Richard Guenther  <rguenther@suse.de>
23744
23745         PR tree-optimization/43679
23746         * tree-ssa-pre.c (eliminate): Only propagate copies.
23747
23748 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
23749
23750         PR bootstrap/43681
23751         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
23752         set but not used variable warning.
23753
23754 2010-04-08  Wei Guozhi  <carrot@google.com>
23755
23756         PR target/41653
23757         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
23758         (arm_size_rtx_costs): Call the new function when optimized for size.
23759
23760 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
23761
23762         PR debug/43670
23763         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
23764         op0 is not a MEM, just return NULL instead of assertion
23765         failure.
23766         (discover_nonconstant_array_refs): Don't walk debug stmts.
23767
23768 2010-04-08  Doug Kwan  <dougkwan@google.com>
23769
23770         * configure.ac: Recognize gold and do not use its version number
23771         to test ld features.
23772         * configure: Regenerate.
23773
23774 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
23775
23776         PR middle-end/40815
23777         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
23778         (negate_value): Move code to push elements to broken_up_substracts ...
23779         (eliminate_plus_minus_pair): ... here.  Push operands that have no
23780         negative pair to plus_negates.
23781         (repropagate_negates, init_reassoc, fini_reassoc): Update.
23782
23783 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23784
23785         * doc/install.texi (Configuration): Move description of
23786         --enable-lto, --with-libelf*, --enable-gold from Java section to
23787         general section.
23788
23789         * doc/generic.texi (Working with declarations)
23790         (Function Properties, C and C++ Trees): Fix typos.
23791         * doc/sourcebuild.texi (Top Level): Likewise.
23792
23793 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
23794
23795         PR c/18624
23796         * tree.h (DECL_READ_P): Define.
23797         (struct tree_decl_common): Add decl_read_flag.
23798         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
23799         a set but not used warning.
23800         (merge_decls): Merge DECL_READ_P flag.
23801         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
23802         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
23803         * c-common.c (handle_used_attribute, handle_unused_attribute):
23804         Likewise.
23805         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
23806         New prototypes.
23807         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
23808         New functions.
23809         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
23810         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
23811         c_parser_binary_expression, c_parser_cast_expression,
23812         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
23813         Call default_function_array_read_conversion instead of
23814         default_function_array_conversion where needed.
23815         (c_parser_unary_expression, c_parser_conditional_expression,
23816         c_parser_postfix_expression_after_primary, c_parser_initelt):
23817         Likewise.  Call mark_exp_read where needed.
23818         (c_parser_statement_after_labels, c_parser_asm_operands,
23819         c_parser_typeof_specifier, c_parser_sizeof_expression,
23820         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
23821         where needed.
23822         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
23823         New.
23824         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
23825         (warn_unused_but_set_parameter): Default to warn_unused
23826         && extra_warnings.
23827         * doc/invoke.texi: Document -Wunused-but-set-variable and
23828         -Wunused-but-set-parameter.
23829
23830         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
23831         used count variable.
23832         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
23833         when operandN variables aren't used in the body of the expander
23834         or splitter.
23835         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
23836         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
23837         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
23838         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
23839         FOR_EACH_IMM_USE_ON_STMT): Likewise.
23840         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
23841         * tree.c (PROCESS_ARG): Likewise.
23842
23843 2010-04-07  Simon Baldwin  <simonb@google.com>
23844
23845         * diagnostic.h (diagnostic_override_option_index): New macro to
23846         set a diagnostic's option_index.
23847         * c-tree.h (c_cpp_error): Add warning reason argument.
23848         * opts.c (_warning_as_error_callback): New.
23849         (register_warning_as_error_callback): Store callback for
23850         warnings enabled via enable_warning_as_error.
23851         (enable_warning_as_error): Call callback, minor code tidy.
23852         * opts.h (register_warning_as_error_callback): Declare.
23853         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
23854         response to -Werror=.
23855         (c_common_init_options): Register warning_as_error_callback in opts.c.
23856         * common.opt: Add -Wno-cpp option.
23857         * c-common.c (struct reason_option_codes_t): Map cpp warning
23858         reason codes to gcc option indexes.
23859         * (c_option_controlling_cpp_error): New function, lookup the gcc
23860         option index for a cpp warning reason code.
23861         * (c_cpp_error): Add warning reason argument, call
23862         c_option_controlling_cpp_error for diagnostic_override_option_index.
23863         * doc/invoke.texi: Document -Wno-cpp.
23864
23865 2010-04-07  Richard Guenther  <rguenther@suse.de>
23866
23867         * ipa-reference.c (mark_load): Use get_base_address.
23868         (mark_store): Likewise.
23869
23870         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
23871         inserting GIMPLE_NOPs into the IL.
23872         * tree-ssa-structalias.c (get_constraint_for_component_ref):
23873         Explicitly strip handled components and indirect references.
23874
23875         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
23876         folding address expressions.
23877         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
23878         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
23879         operand_equal_p to compare decls.
23880         (ptr_deref_may_alias_decl_p): Likewise.
23881         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
23882         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
23883         Handle reversed comparison ops.
23884         * tree-sra.c (asm_visit_addr): Use get_base_address.
23885         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
23886         * ipa-reference.c (mark_address): Use get_base_address.
23887
23888 2010-04-07  Richard Guenther  <rguenther@suse.de>
23889
23890         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
23891         Propagate constants everywhere.
23892
23893 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
23894
23895         PR debug/43516
23896         * tree.c (MAX_INT_CACHED_PREC): Define.
23897         (nonstandard_integer_type_cache): New array.
23898         (build_nonstandard_integer_type): Cache results for precision
23899         <= MAX_INT_CACHED_PREC.
23900
23901 2010-04-07  Richard Guenther  <rguenther@suse.de>
23902
23903         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
23904         -fargument-noalias-global, -fargument-noalias-anything): Remove.
23905         * common.opt: Likewise.
23906         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
23907         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
23908         (nonoverlapping_memrefs_p): Likewise.
23909         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
23910         * opts.c (common_handle_option): Handle OPT_fargument_alias,
23911         OPT_fargument_noalias, OPT_fargument_noalias_anything and
23912         OPT_fargument_noalias_global for backward compatibility.
23913
23914 2010-04-07  Richard Guenther  <rguenther@suse.de>
23915
23916         PR tree-optimization/43270
23917         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
23918         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
23919         * tree-ssa-pre.c (phi_translate_1): Adjust.
23920         (fully_constant_expression): Split out vn_reference handling to ...
23921         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
23922         Fold reads from constant strings.
23923         (vn_reference_lookup): Handle fully constant references.
23924         (vn_reference_lookup_pieces): Likewise.
23925         * Makefile.in (expmed.o-warn): Add -Wno-error.
23926
23927 2010-04-07  Martin Jambor  <mjambor@suse.cz>
23928
23929         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
23930
23931 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
23932
23933         PR driver/41594
23934         * gcc.c: Add -static-libstdc++ to list of recognized options.
23935
23936 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23937
23938         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
23939
23940 2010-04-07  Richard Guenther  <rguenther@suse.de>
23941
23942         PR middle-end/42617
23943         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
23944         bases build simple mem attributes to retain points-to information.
23945
23946 2010-04-07  Richard Guenther  <rguenther@suse.de>
23947
23948         PR middle-end/42617
23949         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
23950         preserve points-to related information.
23951
23952 2010-04-07  Richard Guenther  <rguenther@suse.de>
23953
23954         PR middle-end/42617
23955         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
23956         discard plain indirect references.
23957         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
23958         * tree.c (tree_nop_conversion): Likewise.
23959
23960 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
23961
23962         PR debug/43628
23963         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
23964
23965 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
23966
23967         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
23968         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
23969
23970 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
23971
23972         * tree-if-conv.c: Fix indentation and comments.
23973
23974 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
23975
23976         * tree-if-conv.c: Sort static functions in topological order.
23977
23978 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
23979
23980         * tree-if-conv.c: Fix indentation and comments.
23981
23982 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23983
23984         PR middle-end/43519
23985         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
23986         lang_hooks.types.type_for_size instead of
23987         build_nonstandard_integer_type.
23988         When converting an unsigned type to signed, double its precision.
23989         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
23990         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
23991         (graphite_create_new_loop_guard): When ub + 1 wraps around,
23992         use lb <= ub.
23993
23994 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23995
23996         PR middle-end/43519
23997         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23998         POINTER_PLUS_EXPR for pointer types.
23999
24000 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24001
24002         PR middle-end/43519
24003         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
24004         * graphite-clast-to-gimple.c: Include langhooks.h.
24005         (max_signed_precision_type): New.
24006         (max_precision_type): Takes two types as arguments.
24007         (precision_for_value): New.
24008         (precision_for_interval): New.
24009         (gcc_type_for_interval): New.
24010         (gcc_type_for_value): New.
24011         (gcc_type_for_clast_term): New.
24012         (gcc_type_for_clast_red): New.
24013         (gcc_type_for_clast_bin): New.
24014         (gcc_type_for_clast_expr): Split up into several functions.
24015         (gcc_type_for_clast_eq): Rewritten.
24016         (compute_bounds_for_level): New.
24017         (compute_type_for_level_1): New.
24018         (compute_type_for_level): New.
24019         (gcc_type_for_cloog_iv): Removed.
24020         (gcc_type_for_iv_of_clast_loop): Rewritten.
24021         (graphite_create_new_loop): Compute the lower and upper bound types
24022         with gcc_type_for_clast_expr.
24023         (graphite_create_new_loop_guard): Same.
24024         (find_cloog_iv_in_expr): Removed.
24025         (compute_cloog_iv_types_1): Removed.
24026         (compute_cloog_iv_types): Removed.
24027         (gloog): Do not call compute_cloog_iv_types.
24028         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
24029         GBB_CLOOG_IV_TYPES.
24030         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
24031         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
24032         (GBB_CLOOG_IV_TYPES): Removed.
24033
24034 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24035
24036         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
24037         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
24038         (detect_commutative_reduction): Same.
24039
24040 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24041
24042         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
24043         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
24044         argument.
24045         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
24046         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
24047         (rewrite_commutative_reductions_out_of_ssa): Same.
24048         * passes.c (execute_function_todo): Call verify_ssa for every pass
24049         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
24050         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
24051         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
24052         with an extra argument.
24053         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
24054         verify_ssa only when the extra argument is true.
24055         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
24056         with an extra argument.
24057         (tree_transform_and_unroll_loop): Same.
24058
24059 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24060
24061         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
24062         for all the passes of the LNO having LOOP_CLOSED_SSA.
24063         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
24064         * tree-loop-distribution.c (pass_loop_distribution): Same.
24065         * tree-pass.h (TODO_verify_loops): Removed.
24066         * tree-ssa-loop.c (pass_tree_loop_init): Same.
24067         (pass_lim): Same.
24068         (pass_tree_unswitch): Same.
24069         (pass_predcom): Same.
24070         (pass_vectorize): Same.
24071         (pass_linear_transform): Same.
24072         (pass_graphite_transforms): Same.
24073         (pass_iv_canon): Same.
24074         (pass_complete_unroll): Same.
24075         (pass_complete_unrolli): Same.
24076         (pass_parallelize_loops): Same.
24077         (pass_loop_prefetch): Same.
24078         (pass_iv_optimize): Same.
24079
24080 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
24081
24082         PR middle-end/32824
24083         * passes.c (init_optimization_passes): Move pass_lim before
24084         pass_copy_prop and pass_dce_loop.
24085
24086 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
24087
24088         PR target/43667
24089         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
24090         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
24091         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
24092         MULTI_* defines for 4 argument vpermil2p* builtins.
24093
24094 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
24095
24096         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
24097         * config/i386/i386.c (x86_maybe_negate_const_int): New.
24098         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
24099         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
24100         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
24101         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
24102         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
24103         Use x86_maybe_negate_const_int to output insn mnemonic.
24104         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
24105         check from instruction predicate.  Update comments.
24106         * config/i386/sync.md (sync_add<mode>): Use
24107         x86_maybe_negate_const_int to output insn mnemonic.
24108
24109 2010-04-06  Jan Hubicka  <jh@suse.cz>
24110
24111         PR tree-optimization/42906
24112         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
24113         IGNORE_SELF argument.  Set visited_control_parents for fully
24114         processed BBs.
24115         (find_obviously_necessary_stmts): Update call of
24116         mark_control_dependent_edges_necessary.
24117         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
24118
24119 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
24120
24121         * config/i386/i386.md: Remove comment about 'e' and 'E'
24122         operand modifier.
24123
24124 2010-04-06  Richard Guenther  <rguenther@suse.de>
24125
24126         PR tree-optimization/43627
24127         * tree-vrp.c (extract_range_from_unary_expr): Widenings
24128         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
24129         not varying.
24130
24131 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
24132
24133         * BASE-VER: Change to 4.6.0.
24134
24135         PR target/43638
24136         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
24137         handling.
24138
24139 2010-04-06  Richard Guenther  <rguenther@suse.de>
24140
24141         PR middle-end/43661
24142         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
24143
24144 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24145
24146         * doc/invoke.texi (Optimize Options): Document that LTO
24147         won't remove object access purely due to incompatible
24148         declarations.
24149
24150 2010-04-04  Matthias Klose  <doko@ubuntu.com>
24151
24152         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
24153         Initialize variable.
24154
24155 2010-04-03  Richard Guenther  <rguenther@suse.de>
24156
24157         PR middle-end/42509
24158         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
24159         require a non-NULL MEM_OFFSET.
24160
24161 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
24162
24163         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
24164         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
24165         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
24166         config/alpha/predicates.md, config/arm/arm.md,
24167         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
24168         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
24169         config/darwin9.h, config/darwin.c, config/darwin.h,
24170         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
24171         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
24172         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
24173         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
24174         config/mips/mips.md, config/mn10300/mn10300.c,
24175         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
24176         config/rs6000/aix.h, config/rs6000/dfp.md,
24177         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
24178         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
24179         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
24180         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
24181         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
24182         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
24183         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
24184         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
24185         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
24186         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
24187         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
24188         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
24189         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
24190         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
24191         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
24192         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
24193         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
24194         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
24195         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
24196         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
24197         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
24198         opt-functions.awk, opth-gen.awk, params.def, passes.c,
24199         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
24200         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
24201         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
24202         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
24203         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
24204         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
24205         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
24206         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
24207         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
24208         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
24209         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
24210         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
24211         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
24212         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
24213
24214 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24215
24216         PR other/43620
24217         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
24218         * aclocal.m4: Regenerate.
24219
24220 2010-04-02  Richard Guenther  <rguenther@suse.de>
24221
24222         PR tree-optimization/43629
24223         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
24224         if we have seen a constant value.
24225
24226 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
24227
24228         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
24229
24230 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
24231
24232         PR target/43469
24233         * arm.c (legitimize_tls_address): Adjust call to
24234         gen_tls_load_dot_plus_four.
24235         (arm_note_pic_base): New function.
24236         (arm_cannot_copy_insn_p): Use it.
24237         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
24238         constraint.
24239
24240 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24241
24242         PR bootstrap/43531
24243
24244         Revert:
24245         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24246
24247         * Makefile.in ($(out_object_file)): Depend on
24248         gt-$(basename $(notdir $(out_file))).h.
24249
24250 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
24251
24252         * config.gcc (lm32-*-rtems*): Add t-lm32.
24253
24254 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
24255
24256         * config.gcc: Add lm32-*-rtems*.
24257         * config/lm32/rtems.h: New file.
24258
24259 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
24260
24261         PR target/42609
24262         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
24263
24264 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
24265
24266         * dwarf2out.c (output_compilation_unit_header): For
24267         -gdwarf-4 use version 4 instead of version 3.
24268         (output_line_info): For version 4 and above emit additional
24269         maximum ops per insn header field.
24270         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
24271
24272         * dwarf2out.c (is_c_family, is_java): Remove.
24273         (lower_bound_default): New function.
24274         (add_bound_info, gen_descr_array_type_die): Use it.
24275
24276 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
24277
24278         PR debug/43325
24279         * dwarf2out.c (gen_variable_die): Allow debug info for variable
24280         re-declaration when it happens in a function.
24281
24282 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
24283
24284         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
24285         (cgraph_remove_function_insertion_hook): Same.
24286         (cgraph_call_function_insertion_hooks): Same.
24287
24288 2010-04-01  Richard Guenther  <rguenther@suse.de>
24289
24290         PR middle-end/43614
24291         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
24292         and TREE_THIS_VOLATILE.
24293         (copy_ref_info): Likewise.
24294         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
24295         * tree.c (build6_stat): Ignore side-effects of all but arg5
24296         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
24297         TARGET_MEM_REF.
24298
24299 2010-04-01  Richard Guenther  <rguenther@suse.de>
24300
24301         PR tree-optimization/43607
24302         * ipa-type-escape.c (check_call): Do not access non-existing
24303         arguments.
24304
24305 2010-04-01  Richard Guenther  <rguenther@suse.de>
24306
24307         PR middle-end/43602
24308         Revert
24309         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
24310                     Jack Howarth  <howarth@bromo.med.uc.edu>
24311
24312         * tree-profile.c (tree_init_ic_make_global_vars): Make static
24313         variables TLS.
24314
24315 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24316
24317         * doc/install.texi (Prerequisites): Document libelf usability on
24318         IRIX 5/6 and Solaris 2.
24319         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
24320         Update GNU as, GNU ld requirements.
24321         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
24322         Document Sun Studio compiler download.
24323         Update and simplify as, ld recommendations.
24324         (Specific, *-*-solaris2.7): Note obsoletion, removal.
24325
24326 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24327
24328         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
24329         with_tune_32 to pentium4.
24330
24331 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
24332
24333         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
24334
24335 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24336
24337         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
24338         obsoletion, removal.
24339         Update IDO URL.
24340         Document GNU as requirement.
24341         Update configure requirements.
24342         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
24343         Recomment IRIX 6.5.18+.
24344         Document IDF/IDL requirement.
24345         Document GNU as requirement.
24346         Document GNU ld bootstrap failure.
24347         Remove freeware.sgi.com reference.
24348
24349 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24350
24351         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
24352         UNIX V4.0, V5.0 obsoletion, removal.
24353         Remove --with-gc=simple reference.
24354         Update VM requirements during bootstrap.
24355         Remove -oldas bootstrap description.
24356         Update binutils reference.
24357         Remove comparison failure note.
24358
24359 2010-03-31  Richard Guenther  <rguenther@suse.de>
24360             Zdenek Dvorak  <ook@ucw.cz>
24361             Sebastian Pop  <sebastian.pop@amd.com>
24362
24363         PR middle-end/43464
24364         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
24365         with multiple arguments.
24366         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
24367
24368 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24369
24370         * graphite-dependences.c (print_pddr): Call print_pdr with an
24371         extra argument.
24372         * graphite-poly.c (debug_pdr): Add an extra argument for the
24373         verbosity level.
24374         (print_pdr): Same.
24375         (print_pbb_domain): Same.
24376         (print_pbb): Same.
24377         (print_scop_context): Same.
24378         (print_scop): Same.
24379         (print_cloog): Same.
24380         (debug_pbb_domain): Same.
24381         (debug_pbb): Same.
24382         (print_pdrs): Same.
24383         (debug_pdrs): Same.
24384         (debug_scop_context): Same.
24385         (debug_scop): Same.
24386         (debug_cloog): Same.
24387         (print_scop_params): Same.
24388         (debug_scop_params): Same.
24389         (print_iteration_domain): Same.
24390         (print_iteration_domains): Same.
24391         (debug_iteration_domain): Same.
24392         (debug_iteration_domains): Same.
24393         (print_scattering_function): Same.
24394         (print_scattering_functions): Same.
24395         (debug_scattering_function): Same.
24396         (debug_scattering_functions): Same.
24397         * graphite-poly.h (debug_pdr): Update declaration.
24398         (print_pdr): Same.
24399         (print_pbb_domain): Same.
24400         (print_pbb): Same.
24401         (print_scop_context): Same.
24402         (print_scop): Same.
24403         (print_cloog): Same.
24404         (debug_pbb_domain): Same.
24405         (debug_pbb): Same.
24406         (print_pdrs): Same.
24407         (debug_pdrs): Same.
24408         (debug_scop_context): Same.
24409         (debug_scop): Same.
24410         (debug_cloog): Same.
24411         (print_scop_params): Same.
24412         (debug_scop_params): Same.
24413         (print_iteration_domain): Same.
24414         (print_iteration_domains): Same.
24415         (debug_iteration_domain): Same.
24416         (debug_iteration_domains): Same.
24417         (print_scattering_function): Same.
24418         (print_scattering_functions): Same.
24419         (debug_scattering_function): Same.
24420         (debug_scattering_functions): Same.
24421
24422 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24423
24424         * graphite-poly.c (print_scattering_function_1): New.
24425         (print_scattering_function): Call it.
24426         (print_scop_params): Remove spaces at the end of lines.
24427         (print_cloog): New.
24428         (debug_cloog): New.
24429         * graphite-poly.h (print_cloog): Declared.
24430         (debug_cloog): Declared.
24431
24432 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24433
24434         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
24435         in loop->header.
24436         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
24437         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
24438         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
24439         to switch between adding the IV bump in loop->latch or in loop->header.
24440
24441 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24442
24443         * graphite-poly.c (print_scattering_function): Pretty print following
24444         the scoplib format.
24445         (print_pdr): Same.
24446         (print_pbb_domain): Same.
24447         (dump_gbb_cases): Same.
24448         (dump_gbb_conditions): Same.
24449         (print_pdrs): Same.
24450         (print_pbb): Same.
24451         (print_scop_params): Same.
24452         (print_scop_context): Same.
24453         (print_scop): Same.
24454         (print_pbb_body): New.
24455         (lst_indent_to): New.
24456         (print_lst): Start new lines with a #.
24457         * graphite-poly.h (pbb_bb): New.
24458         (pbb_index): Use pbb_bb.
24459         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
24460         disjuncts.
24461         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
24462
24463 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
24464
24465         * dwarf2out.c (size_of_die): For -gdwarf-4 use
24466         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
24467         and 0 instead of 1 for dw_val_class_flag.
24468         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
24469         dw_val_class_range_list, dw_val_class_loc_list,
24470         dw_val_class_lineptr and dw_val_class_macptr, use
24471         DW_FORM_flag_present for dw_val_class_flag and
24472         DW_FORM_exprloc for dw_val_class_loc.
24473         (output_die): For -gdwarf-4 print dw_val_class_loc
24474         size as uleb128 instead of 1 or 2 bytes and don't print
24475         anything for dw_val_class_flag.
24476
24477         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
24478         instead of cselib_lookup following by tweaking locs->setting_insn.
24479
24480         PR bootstrap/43596
24481         * cselib.c (cselib_process_insn): Clear cselib_current_insn
24482         even before returning from label, setjmp call or volatile asm
24483         handling.
24484
24485 2010-03-31  Richard Guenther  <rguenther@suse.de>
24486
24487         PR middle-end/43600
24488         * cgraphunit.c (cgraph_output_in_order): Do not allocate
24489         temporary data on stack.
24490
24491 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24492
24493         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
24494         (PUSHSECTION_ASM_OP): Remove.
24495         (POPSECTION_ASM_OP): Remove.
24496         (PUSHSECTION_FORMAT): Remove.
24497         * config/sol2.h (PUSHSECTION_FORMAT): Define.
24498         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
24499         * config/sol2.c (solaris_output_init_fini): Use it.
24500
24501 2010-03-31  Jie Zhang  <jie@codesourcery.com>
24502
24503         PR 43574
24504         * opt-functions.awk (var_type_struct): Use signed char type
24505         for simple variables.
24506
24507 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24508
24509         * config/sol2.c: Include output.h.
24510         (solaris_assemble_visibility): New function.
24511         * config/t-sol2 (sol2.o): Add output.h dependency.
24512         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
24513         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
24514         Redefine.
24515
24516 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
24517
24518         PR target/43580
24519         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
24520         V2SImode or XFmode on PRE_DEC.
24521
24522         PR debug/43557
24523         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
24524         BLKmode.
24525
24526 2010-03-31  Jie Zhang  <jie@codesourcery.com>
24527
24528         PR 43562
24529         * reload.h (caller_save_initialized_p): Declare.
24530         * toplev.c (backend_init_target): Don't call
24531         init_caller_save but set caller_save_initialized_p to false.
24532         * caller-save.c (caller_save_initialized_p): Define.
24533         (init_caller_save): Check caller_save_initialized_p.
24534         * ira.c (ira): Call init_caller_save if flag_caller_saves.
24535
24536 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24537
24538         PR target/39048
24539         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
24540         and soft-fp/t-softfp to tmake_file.
24541         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
24542         (LIBGCC2_TF_CEXT): Define.
24543         (TF_SIZE): Define.
24544
24545 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
24546
24547         PR debug/42977
24548         * cselib.c (n_useless_values): Document handling of debug locs.
24549         (n_useless_debug_values, n_debug_values): New variables.
24550         (new_elt_loc_list): Don't add to debug values, keep count.
24551         (promote_debug_loc): New.
24552         (cselib_reset_table): Zero new variables.
24553         (entry_and_rtx_equal_p): Promote debug locs.
24554         (discard_useless_locs): Increment n_useless_debug_values for
24555         debug values.
24556         (remove_useless_values): Adjust n_useless_values and n_debug_values
24557         with n_useless_debug_values.
24558         (add_mem_for_addr): Promote debug locs.
24559         (cselib_lookup_mem): Likewise.
24560         (cselib_lookup_addr): Renamed to...
24561         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
24562         (cselib_log_lookup): ... this.  Turn into...
24563         (cselib_lookup_addr): ... new wrapper.
24564         (cselib_lookup_from_insn): New.
24565         (cselib_invalidate_regno): Increment n_useless_debug_values for
24566         debug values.
24567         (cselib_invalidate_mem): Likewise.
24568         (cselib_process_insn): Take n_deleted and n_debug_values into
24569         account to guard remove_useless_value call.
24570         (cselib_finish): Zero n_useless_debug_values.
24571         * cselib.h (cselib_lookup_from_insn): Declare.
24572         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
24573         (sched_analyze_2): Likewise.
24574
24575 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
24576
24577         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
24578         functions.
24579         (adjust_mems): Replace narrowing SUBREG of expression containing
24580         just PLUS, MINUS, MULT and ASHIFT of registers and constants
24581         with operations in the narrower mode.
24582
24583         PR debug/43593
24584         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
24585         regs_invalidated_by_call instead all call_used_reg_set registers.
24586
24587 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
24588
24589         PR middle-end/43430
24590         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
24591         pointer comparisons with types_compatible_p.
24592         * tree-vect-stmts.c (vectorizable_call): Same.
24593         (vectorizable_condition): Same.
24594
24595 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24596
24597         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
24598         stack check if the mask would be zero.
24599
24600 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
24601             Jack Howarth  <howarth@bromo.med.uc.edu>
24602
24603         * tree-profile.c (tree_init_ic_make_global_vars): Make static
24604         variables TLS.
24605
24606 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
24607
24608         PR other/25232
24609         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
24610         and __unordtf2.
24611         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
24612         Include ___unordxf2 and ___unordtf2.
24613         * config/i386/libgcc-glibc.ver: Do not define inheritance from
24614         GCC_4.4.0 here.
24615
24616 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
24617
24618         * config/lm32/t-lm32: New file.
24619         * config.gcc: Use the above file when targetting lm32.
24620
24621 2010-03-28  Duncan Sands  <baldrick@free.fr>
24622
24623         * Makefile.in (PLUGIN_HEADERS): Add except.h.
24624
24625 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
24626
24627         PR middle-end/43431
24628         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
24629         Improve vectorization cost model diagnostic.
24630
24631 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
24632
24633         PR middle-end/43436
24634         * tree-vect-data-refs.c (vect_analyze_data_refs): When
24635         compute_data_dependences_for_loop returns false, early exit
24636         and output an extra diagnostic for the failed data reference
24637         analysis.
24638
24639 2010-03-29  Richard Guenther  <rguenther@suse.de>
24640
24641         PR tree-optimization/43560
24642         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
24643         (can_sm_ref_p): Treat stores to readonly locations as trapping.
24644
24645 2010-03-29  Jie Zhang  <jie@codesourcery.com>
24646
24647         PR 43564
24648         * toplev.c (process_options): Set optimization_default_node
24649         and optimization_current_node.
24650         * opts.c (decode_options): Don't set optimization_default_node
24651         and optimization_current_node.
24652
24653 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
24654
24655         * config/rtems.h: Abandon -qrtems_debug.
24656
24657 2010-03-28  Jan Hubicka  <jh@suse.cz>
24658
24659         PR tree-optimization/43505
24660         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
24661         map should not be copied.
24662
24663 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24664
24665         PR middle-end/41674
24666         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
24667         cdtors, set DECL_PRESERVE_P.
24668         * ipa.c (cgraph_externally_visible_p): Return true if declaration
24669         should be preseved.
24670
24671 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
24672
24673         PR tree-optimization/43528
24674         * stor-layout.c (place_field): Check that constant fits into
24675         unsigned HWI when skipping calculation of MS bitfield layout.
24676
24677 2010-03-27  Jan Hubicka  <jh@suse.cz>
24678
24679         PR middle-end/43391
24680         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
24681         notice_global_symbol work.
24682
24683 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
24684
24685         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
24686         instead of dwarf2out_decl.
24687         (struct var_loc_node): Remove section_label field.
24688         (dwarf2out_function_decl): New function.
24689         (dwarf2out_var_location): Don't set section_label field.
24690         (dwarf2out_begin_function): Don't empty decl_loc_table here.
24691
24692 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
24693
24694         PR tree-optimization/43544
24695         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
24696         First argument for builtin vectorized function hook is now a
24697         tree to be able to distinguish between machine specific and
24698         standard builtins.
24699         * targhooks.c (default_builtin_vectorized_function): Ditto.
24700         * targhooks.h (default_builtin_vectorized_function): Ditto.
24701         * target.h (struct gcc_target): Ditto.
24702         * tree-vect-stmts.c (vectorizable_function): Ditto.
24703         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
24704         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
24705         Ditto.
24706
24707 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
24708
24709         PR c/43381
24710         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
24711         nested binding iff it is a FUNCTION_DECL.
24712         (store_parm_decls_newstyle): Pass nested=true to bind for
24713         FUNCTION_DECLs amongst parameters.
24714
24715 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
24716
24717         * var-tracking.c (vt_expand_loc_callback): Don't run
24718         cselib_expand_value_rtx_cb in dummy mode if
24719         cselib_dummy_expand_value_rtx_cb returned false.
24720
24721         * var-tracking.c (emit_note_insn_var_location): For one part
24722         notes with offset 0, don't add EXPR_LIST around the location.
24723         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
24724         add_location_or_const_value_attribute): Adjust for that change.
24725
24726         PR debug/43540
24727         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
24728         into first operand and location into second.
24729         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
24730         dw_cfi_oprnd_loc for DW_CFA_expression.
24731         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
24732         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
24733         assume first argument is regnum and second argument is location.
24734
24735 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
24736
24737         PR target/42113
24738         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
24739         of scratch register to DImode.  Split to DImode comparison operator.
24740         Use SImode subreg of scratch register in the multiplication.
24741         (*cmp_sadd_sidi): Ditto.
24742         (*cmp_ssub_si): Ditto.
24743         (*cmp_ssub_sidi): Ditto.
24744
24745 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
24746
24747         PR target/43524
24748         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
24749         Remove invalid assert and wrong comment.
24750
24751 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
24752
24753         PR debug/43516
24754         * flags.h (final_insns_dump_p): New extern.
24755         * final.c (final_insns_dump_p): New variable.
24756         (rest_of_clean_state): Set it before -fdump-final-insns=
24757         dumping, clear afterwards.
24758         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
24759         MEM_ALIAS_SET on MEMs.
24760
24761 2010-03-26  David S. Miller  <davem@davemloft.net>
24762
24763         * configure.ac: Fix sparc GOTDATA_OP bug check.
24764         * configure: Rebuild.
24765
24766 2010-03-26  Alan Modra  <amodra@gmail.com>
24767
24768         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
24769
24770 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24771
24772         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
24773         TLS_SECTION_ASM_FLAG.
24774
24775 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
24776
24777         PR bootstrap/43511
24778         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
24779         Clear first_function_block_is_cold.
24780
24781         PR c/43385
24782         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
24783         argument if the argument is truth_value_p.
24784
24785 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24786
24787         * config/rs6000/constraints.md: Update copyright year for my changes.
24788
24789         PR target/43484
24790         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
24791         used in reg+reg addressing, swap registers.
24792
24793 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
24794
24795         PR debug/43293
24796         * target.h (struct gcc_target): Add code_end hook.
24797         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
24798         if not yet defined.
24799         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
24800         * toplev.c (compile_file): Call targetm.asm_out.code_end
24801         hook before unwind info/debug info output.
24802         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
24803         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
24804         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
24805         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
24806         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
24807         * config/i386/i386.c (ix86_file_end): Renamed to...
24808         (ix86_code_end): ... this.  Make static.  Don't call
24809         file_end_indicate_exec_stack.  Emit unwind info using
24810         final_start_function/final_end_function.
24811         (darwin_x86_file_end): Remove.
24812         (TARGET_ASM_CODE_END): Define.
24813         * config/i386/i386.h (TARGET_ASM_FILE_END,
24814         NEED_INDICATE_EXEC_STACK): Don't define.
24815         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
24816         (TARGET_ASM_FILE_END): Define to darwin_file_end.
24817         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
24818         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
24819
24820         PR target/43498
24821         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
24822         at the beginning and final_end_function at the end.
24823         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
24824
24825 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24826
24827         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
24828         and Sun as TLS syntax.
24829         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
24830         * configure: Regenerate.
24831         * config.in: Regenerate.
24832         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
24833         (default_elf_asm_named_section): Use it.
24834         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
24835         (i386_output_dwarf_dtprel): Likewise.
24836         (output_addr_const_extra): Likewise.
24837         (output_pic_addr_const): Lowercase @GOTTPOFF.
24838         (output_addr_const_extra): Likewise.
24839         (output_pic_addr_const): Lowercase @GOTNTPOFF.
24840         (output_addr_const_extra): Likewise.
24841         (output_pic_addr_const): Lowercase @INDNTPOFF.
24842         (output_addr_const_extra): Likewise.
24843         (output_pic_addr_const): Lowercase @NTPOFF.
24844         (output_addr_const_extra): Likewise.
24845         (output_pic_addr_const): Lowercase @TPOFF.
24846         (output_addr_const_extra): Likewise.
24847         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
24848         (*tls_global_dynamic_64): Likewise.
24849         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
24850         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
24851
24852         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
24853         (ASM_OUTPUT_TLS_COMMON): Use it.
24854         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
24855
24856         PR target/38118
24857         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
24858         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
24859         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
24860         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
24861         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
24862         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
24863
24864 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24865
24866         * config/i386/i386.c (override_options): Don't accept
24867         -mtls-dialect=sun any longer.
24868         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
24869         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
24870         (*tls_local_dynamic_base_32_sun): Likewise.
24871         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
24872
24873 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
24874
24875         PR debug/43508
24876         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
24877         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
24878
24879         PR debug/43479
24880         * ira.c (adjust_cleared_regs): New function.
24881         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
24882
24883         PR debug/19192
24884         PR debug/43479
24885         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
24886         from gimple_block.
24887         * expr.c (expand_expr_real): Restore previous
24888         curr_insn_source_location and curr_insn_block after
24889         expand_expr_real_1 call.
24890         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
24891         instead of expand_expr_real_1.
24892
24893 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
24894
24895         PR rtl-optimization/43413
24896         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
24897         hard regs too.
24898
24899 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
24900
24901         PR target/43348
24902         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
24903         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
24904
24905 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
24906
24907         * config/i386/i386.c (ix86_target_string): Add -mfma.
24908         Fix a typo in comment.
24909
24910 2010-03-22  Mike Stump  <mikestump@comcast.net>
24911
24912         PR target/23071
24913         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
24914         Don't overly align based upon packed packed fields.
24915
24916 2010-03-22  Jason Merrill  <jason@redhat.com>
24917
24918         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
24919         Use () rather than [], and move before the element type.
24920
24921 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24922
24923         * doc/configfiles.texi (Configuration Files): Removed
24924         fixinc/Makefile*, intl/Makefile.*.
24925         * doc/makefile.texi: Fixed markup. Abstract from version
24926         control system used.
24927         (Makefile): Removed obsolete java/parse.y example.
24928         * doc/sourcebuild.texi: Likewise.
24929         (Top Level): Added config, gnattools, libdecnumber, libgcc,
24930         libgomp, libssp.  Removed fastjar.
24931         (Miscellaneous Docs): Clarify location.
24932         Added COPYING3, COPYING3.LIB.
24933         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
24934
24935 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24936
24937         PR target/38085
24938         * config/i386/i386.c (x86_function_profiler)
24939         [!NO_PROFILE_COUNTERS]: Fix typo.
24940         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
24941         instead of callq.
24942
24943 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
24944             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24945
24946         * doc/sourcebuild.texi (Test Directives): Split into six
24947         subsections, with most of the current text in new subsections
24948         Directives, Selectors, and Final Actions.
24949         (Directives): Split list of test directives into multiple
24950         subsubsections.
24951         (Selectors): Describe use and syntax of selectors.
24952         (Effective-Target Keywords): Describe all existing keywords.
24953         (Add Options): Describe features for dg-add-options.
24954         (Require Support): Describe variants of dg-require-support.
24955         (Final Actions): Describe commands to use in dg-final.
24956
24957 2010-03-22  Michael Matz  <matz@suse.de>
24958
24959         PR middle-end/43475
24960         * recog.c (validate_replace_rtx_group): Replace also in
24961         REG_EQUAL and REG_EQUIV notes.
24962
24963 2010-03-22  Richard Guenther  <rguenther@suse.de>
24964
24965         PR tree-optimization/43390
24966         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
24967         sure vector extracts are type correct.
24968
24969 2010-03-22  Richard Guenther  <rguenther@suse.de>
24970
24971         PR middle-end/40106
24972         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
24973         x * sqrt (x) even when optimizing for size if the target
24974         has native support for sqrt.
24975
24976 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
24977
24978         * varasm.c (make_decl_rtl_for_debug): Also clear
24979         flag_mudflap for the duration of make_decl_rtl call.
24980
24981         PR debug/43443
24982         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
24983         locs from preserved VALUEs.
24984
24985 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24986
24987         PR middle-end/42718
24988         * pa.md (movmemsi): Set align to one if zero.
24989         (movmemdi): Likewise.
24990
24991 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
24992
24993         PR target/42321
24994         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
24995         with their corresponding prologue pushes.
24996
24997 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
24998
24999         PR target/43156
25000         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
25001         at the begining or end.
25002         (spu_expand_epilogue): Likewise.
25003
25004 2010-03-20  Richard Guenther  <rguenther@suse.de>
25005
25006         PR rtl-optimization/43438
25007         * combine.c (make_extraction): Properly zero-/sign-extend an
25008         extraction of the low part of a CONST_INT.  Also handle
25009         CONST_DOUBLE.
25010
25011 2010-03-19  Mike Stump  <mikestump@comcast.net>
25012
25013         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
25014         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
25015         (override_options): Use SUBTARGET32_DEFAULT_CPU.
25016
25017 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
25018
25019         PR c/43211
25020         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
25021         an error.
25022
25023 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
25024
25025         PR rtl-optimization/42258
25026         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
25027         use that may match DEF.
25028
25029         PR target/40697
25030         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
25031         the cost of loading the constant rather than assuming
25032         COSTS_N_INSNS (1).
25033         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
25034         outer code is AND, do the same tests as the andsi3 expander and
25035         return COSTS_N_INSNS (1) if and is cheap.
25036
25037         * optabs.c (avoid_expensive_constant): Fix formatting.
25038
25039 2010-03-19  Michael Matz  <matz@suse.de>
25040
25041         PR c++/43116
25042         * attribs.c (decl_attributes): When rebuilding a function pointer
25043         type use the same qualifiers as the original pointer type.
25044
25045 2010-03-19  Martin Jambor  <mjambor@suse.cz>
25046
25047         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
25048         and is_gimple_ip_invariant_address.
25049
25050 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25051
25052         Revert
25053         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25054
25055         * config/arm/arm.c (arm_override_options): Turn off
25056         flag_dwarf2_cfi_asm for AAPCS variants.
25057
25058 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25059
25060         PR target/43399
25061         * config/arm/arm.c (emit_multi_reg_push): Update comments.
25062         Use PRE_MODIFY instead of PRE_DEC.
25063         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
25064         (vfp_emit_fstmd): Likewise.
25065
25066 2010-03-19  Michael Matz  <matz@suse.de>
25067
25068         PR target/43305
25069         * builtins.c (expand_builtin_interclass_mathfn,
25070         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
25071         if that fails.
25072
25073 2010-03-19  Richard Guenther  <rguenther@suse.de>
25074
25075         PR tree-optimization/43415
25076         * tree-ssa-pre.c (phi_translate): Split out worker to ...
25077         (phi_translate_1): ... this.
25078         (phi_translate): Move all caching here.  Cache all NARY
25079         and REFERENCE translations.
25080
25081 2010-03-19  David S. Miller  <davem@davemloft.net>
25082
25083         With help from Eric Botcazou.
25084         * config/sparc/sparc.c: Include dwarf2out.h.
25085         (emit_pic_helper): Delete.
25086         (pic_helper_symbol_name): Delete.
25087         (pic_helper_emitted_p): Delete.
25088         (pic_helper_needed): New.
25089         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
25090         (get_pc_thunk_name): New.
25091         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
25092         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
25093         Set pic_helper_needed to true.  Don't call emit_pic_helper.
25094         (sparc_expand_prologue): Update load_pic_register call.
25095         (sparc_output_mi_thunk): Likewise.
25096         (sparc_file_end): Emit a hidden comdat symbol for the PIC
25097         thunk if possible.  Output CFI information as needed.
25098
25099 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
25100             Jack Howarth  <howarth@bromo.med.uc.edu>
25101
25102         PR target/36399
25103         * config/i386/i386.h: Fix ABI on darwin x86-32.
25104
25105 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
25106
25107         * tree.h: Declare make_decl_rtl_for_debug.
25108         * varasm.c (make_decl_rtl_for_debug): New.
25109         * dwarf2out.c (rtl_for_decl_location): Call it.
25110         * cfgexpand.c (expand_debug_expr): Call it.
25111
25112 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
25113
25114         PR bootstrap/43399
25115         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
25116         mem_mode.
25117
25118         PR bootstrap/43403
25119         * var-tracking.c (vt_init_cfa_base): Do nothing if
25120         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
25121
25122 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
25123
25124         PR debug/42873
25125         * var-tracking.c (canonicalize_vars_star): New.
25126         (dataflow_post_merge_adjust): Use it.
25127
25128 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
25129
25130         PR debug/43058
25131         * var-tracking.c (non_suitable_const): New function.
25132         (add_uses): For DEBUG_INSNs with constants, don't record any
25133         value, instead just the constant value itself.
25134         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
25135         is not VAR_LOC_UNKNOWN_P, set var to the constant.
25136         (emit_notes_in_bb): Likewise.
25137         (emit_note_insn_var_location): For onepart variables if
25138         cur_loc is a VOIDmode constant, use DECL_MODE.
25139
25140 2010-03-18  Martin Jambor  <mjambor@suse.cz>
25141
25142         PR middle-end/42450
25143         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
25144         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
25145         all non-clones.  Moved call redirection...
25146         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
25147         (cgraph_materialize_all_clones): Dispose of all
25148         combined_args_to_skip bitmaps.
25149         (verify_cgraph_node): Do not check for edges pointing to wrong
25150         nodes in inline clones.
25151         * tree-inline.c (copy_bb): Call
25152         cgraph_redirect_edge_call_stmt_to_callee.
25153         * ipa.c (cgraph_remove_unreachable_nodes): Call
25154         cgraph_node_remove_callees even when there are used clones.
25155
25156 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
25157
25158         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
25159
25160 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
25161
25162         PR target/43383
25163         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
25164         for 32bit.
25165
25166 2010-03-18  Michael Matz  <matz@suse.de>
25167
25168         PR middle-end/43419
25169         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
25170         into sqrt(x) if we need to preserve signed zeros.
25171
25172 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
25173             Eric Botcazou  <ebotcazou@adacore.com>
25174
25175         PR rtl-optimization/43360
25176         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
25177         note if we don't know its invariant status.
25178
25179 2010-03-18  Michael Matz  <matz@suse.de>
25180
25181         PR tree-optimization/43402
25182         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
25183         PHI chains of ssa names registered for update.
25184
25185 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
25186
25187         PR target/42427
25188         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
25189         non-offsettable and pre_modify update addressing.
25190         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
25191         and "2" alternatives "#".
25192         (*movdd_softfloat32): Make all alternatives "#";
25193         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
25194         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
25195         (*movdf_softfloat32): Make all alternatives "#";
25196         (movdi): Use the new DIFD mode iterator to create a common splitter
25197         for movdi, movdf and movdd patterns.
25198
25199 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
25200
25201         * common.opt (dumpdir): Remove redundant tab.
25202
25203 2010-03-17  Martin Jambor  <mjambor@suse.cz>
25204
25205         PR tree-optimization/43347
25206         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
25207         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
25208
25209 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
25210
25211         PR rtl-optimization/42216
25212         * regrename.c (create_new_chain): New function, broken out from...
25213         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
25214         appending a use to an empty chain.
25215         (build_def_use): Remove previous changes that convert OP_INOUT to
25216         OP_OUT operands; instead detect the case where an OP_INOUT operand
25217         uses a previously untracked register and create an empty chain for it.
25218
25219 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25220
25221         * doc/extend.texi (Function Attributes): Rewrite unfinished
25222         sentence in ms_abi documentation.
25223
25224 2010-03-17  Alan Modra  <amodra@gmail.com>
25225
25226         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
25227         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
25228         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
25229         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
25230
25231 2010-03-16  Richard Henderson  <rth@redhat.com>
25232
25233         PR middle-end/43365
25234         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
25235         (lower_try_finally): Save and restore eh_seq around the expansion
25236         of the try-finally.
25237
25238 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
25239
25240         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
25241         statements before splitting block.
25242
25243 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25244
25245         * doc/sourcebuild.texi (Testsuites): Fix markup.
25246         Use pathnames relative to gcc/testsuite.
25247         (Test Directives): Move description of how timeout is determined.
25248         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
25249         (C Tests): Correct gcc.misc-tests directory.
25250         Framework tests now live in gcc.test-framework.
25251
25252 2010-03-16  Richard Guenther  <rguenther@suse.de>
25253
25254         PR middle-end/43379
25255         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
25256         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
25257
25258 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
25259             Alexandre Oliva  <aoliva@redhat.com>
25260
25261         PR tree-optimization/42917
25262         * lambda-code.c (remove_iv): Skip debug statements.
25263         (lambda_loopnest_to_gcc_loopnest): Likewise.
25264         (not_interesting_stmt): Debug statements are not interesting.
25265
25266 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
25267
25268         PR debug/43051
25269         PR debug/43092
25270         * cselib.c (cselib_preserve_constants,
25271         cfa_base_preserved_val): New static variables.
25272         (preserve_only_constants): New function.
25273         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
25274         clear its REG_VALUES.  If cselib_preserve_constants, don't
25275         empty the whole hash table, but preserve there VALUEs with constants,
25276         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
25277         (cselib_preserve_cfa_base_value): New function.
25278         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
25279         (cselib_init): Change argument to int bitfield.  Set
25280         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
25281         is in it.
25282         (cselib_finish): Clear cselib_preserve_constants and
25283         cfa_base_preserved_val.
25284         * cselib.h (enum cselib_record_what): New enum.
25285         (cselib_init): Change argument to int.
25286         (cselib_preserve_cfa_base_value): New prototype.
25287         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
25288         * dse.c (dse_step1): Likewise.
25289         * cfgcleanup.c (thread_jump): Likewise.
25290         * sched-deps.c (sched_analyze): Likewise.
25291         * gcse.c (local_cprop_pass): Likewise.
25292         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
25293         If FN is non-NULL, call the callback always and whenever it returns
25294         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
25295         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
25296         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
25297         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
25298         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
25299         * var-tracking.c: Include recog.h.
25300         (bb_stack_adjust_offset): Remove.
25301         (vt_stack_adjustments): Don't call it, instead just gather the
25302         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
25303         (adjust_stack_reference): Remove.
25304         (compute_cfa_pointer): New function.
25305         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
25306         (struct adjust_mem_data): New type.
25307         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
25308         functions.
25309         (get_address_mode): New function.
25310         (replace_expr_with_values): Use it.
25311         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
25312         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
25313         (adjust_sets): Remove.
25314         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
25315         Use get_address_mode.
25316         (get_adjusted_src): Remove.
25317         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
25318         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
25319         (add_with_sets): Don't call adjust_sets.
25320         (fp_setter, vt_init_cfa_base): New functions.
25321         (vt_initialize): Change return type to bool.  Move most of pool etc.
25322         initialization to the beginning of the function from end.  Pass
25323         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
25324         If !frame_pointer_needed, call vt_stack_adjustment before mos
25325         vector is filled, call vt_init_cfa_base if argp/framep has been
25326         eliminated to sp.  If frame_pointer_needed and argp/framep has
25327         been eliminated to hard frame pointer, set
25328         hard_frame_pointer_adjustment and call vt_init_cfa_base after
25329         encountering fp setter in the prologue.  For MO_ADJUST, call
25330         log_op_type before pusing the op into mos vector, not afterwards.
25331         Call adjust_insn before cselib_process_insn/add_with_sets,
25332         call cancel_changes (0) afterwards.
25333         (variable_tracking_main_1): Adjust for vt_initialize calling
25334         vt_stack_adjustments and returning whether it succeeded or not.
25335
25336 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
25337
25338         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
25339         debug statements.
25340
25341 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
25342
25343         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
25344         has been set.
25345         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
25346         drap_reg has not been set.
25347
25348 2010-03-15  Michael Matz  <matz@suse.de>
25349
25350         PR middle-end/43300
25351         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
25352         use it to expand block copies.
25353         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
25354         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
25355         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
25356
25357 2010-03-15  Richard Guenther  <rguenther@suse.de>
25358
25359         PR tree-optimization/43367
25360         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
25361         elimination check.
25362
25363 2010-03-15  Richard Guenther  <rguenther@suse.de>
25364
25365         PR tree-optimization/43317
25366         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
25367
25368 2010-03-15  Martin Jambor  <mjambor@suse.cz>
25369
25370         PR tree-optimization/43141
25371         * tree-sra.c (create_abstract_origin): New function.
25372         (modify_function): Call create_abstract_origin.
25373
25374 2010-03-15  Chris Demetriou  <cgd@google.com>
25375
25376         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
25377         wasn't copied.
25378
25379 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25380
25381         PR middle-end/43354
25382         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
25383         call insert_out_of_ssa_copy for default definitions.
25384
25385 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25386
25387         * graphite-clast-to-gimple.c (my_long_long): Defined.
25388         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
25389         * graphite-sese-to-poly.c (my_long_long): Defined.
25390         (scop_ivs_can_be_represented): Use it.
25391
25392 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25393
25394         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
25395         graphite-max-bbs-per-function, and loop-block-tile-size.
25396         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
25397         with "maximum".
25398         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
25399
25400 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25401
25402         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
25403         forward declaration.
25404         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
25405         (add_upper_bounds_from_estimated_nit): New.
25406         (build_loop_iteration_domains): Use it.
25407
25408 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25409
25410         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
25411
25412 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25413
25414         PR middle-end/43306
25415         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
25416         should be an INTEGER_CST.  Also handle CASE_CONVERT.
25417
25418 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25419
25420         * graphite.c (graphite_initialize): To bound the number of bbs per
25421         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
25422         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
25423         * doc/invoke.texi: Document it.
25424
25425 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25426
25427         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
25428         * graphite-sese-to-poly.h (build_poly_scop): Same.
25429
25430 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25431
25432         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
25433         the number of parameters in the scop.  Use as an upper bound
25434         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
25435         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
25436         * doc/invoke.texi: Document it.
25437
25438 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
25439
25440         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
25441         * doc/c-tree.texi: Remove.
25442         * doc/generic.texi: Merge c-tree.texi here.
25443         * doc/gccint.texi (Trees): Remove menu entry.
25444         (c-tree.texi): Remove @include.
25445         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
25446         * doc/languages.texi (Reading RTL): Ditto.
25447
25448 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
25449
25450         PR target/42869
25451         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
25452
25453 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
25454
25455         PR middle-end/42431
25456         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
25457         code added to work around reload clobbering CONST insns.
25458
25459 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
25460
25461         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
25462         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
25463         (cselib_preserve_only_values): Remove retain argument, don't
25464         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
25465         * cselib.h (cselib_preserve_only_values): Remove retain argument.
25466         * var-tracking.c (micro_operation): Move insn field before union.
25467         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
25468         (struct variable_tracking_info_def): Remove n_mos field, change
25469         mos into a vector of micro_operations.
25470         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
25471         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
25472         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
25473         changing into a vector.
25474         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
25475         come before all other uops generated by add_stores.
25476         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
25477         argument removal.
25478         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
25479         a vector.  Run just one pass over the bbs instead of separate counting
25480         and computation phase.
25481         (vt_finalize): Free VTI (bb)->mos vector instead of array.
25482
25483         PR debug/43329
25484         * tree-inline.c (remap_decls): Put old_var rather than origin_var
25485         into *nonlocalized_list vector.
25486         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
25487         even if origin is non-NULL.
25488         (gen_variable_die): Likewise.
25489         (process_scope_var): Don't change origin.
25490         (gen_decl_die): Likewise.
25491         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
25492         before adding new edges instead of after it, fix moving over
25493         debug stmts.
25494
25495 2010-03-11  David S. Miller  <davem@davemloft.net>
25496
25497         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
25498         of four.
25499         * configure: Rebuild.
25500
25501 2010-03-11  Martin Jambor  <mjambor@suse.cz>
25502
25503         PR tree-optimization/43257
25504         * tree.c (assign_assembler_name_if_neeeded): New function.
25505         (free_lang_data_in_cgraph): Assembler name assignment moved to the
25506         above new function.
25507         * tree.h (assign_assembler_name_if_neeeded): Declare.
25508         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
25509         the function if needed.
25510
25511 2010-03-11  Chris Demetriou  <cgd@google.com>
25512
25513         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
25514         include/stdint-gcc.h, and include/stdint.h world-readable.
25515
25516 2010-03-11  Richard Guenther  <rguenther@suse.de>
25517
25518         PR tree-optimization/43255
25519         * tree-vrp.c (process_assert_insertions_for): Do not insert
25520         asserts for trivial conditions.
25521
25522 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25523
25524         PR tree-optimization/43280
25525         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
25526         generation.  Move calculation of size out of the if branch.
25527         (find_bswap): Modify compare number generation.
25528
25529 2010-03-11  Richard Guenther  <rguenther@suse.de>
25530
25531         PR lto/43200
25532         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
25533         (input_gimple_stmt): Fixup handled component types during
25534         operand read.  Also fix up decls in ADDR_EXPRs.
25535
25536 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
25537
25538         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
25539         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
25540
25541 2010-03-10  Jan Hubicka  <jh@suse.cz>
25542
25543         PR c/43288
25544         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
25545         * varasm.c (get_variable_section): Don't do that here...
25546         (make_decl_rtl): ... and here.
25547         (do_assemble_alias): Produce decl RTL.
25548         (assemble_alias): Likewise.
25549
25550 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
25551
25552         PR debug/43290
25553         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
25554         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
25555         of fde->vdrap_reg.
25556         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
25557         (based_loc_descr): Only express drap or vdrap regno based expressions
25558         using DW_OP_fbreg when not optimizing.
25559         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
25560         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
25561         REG_CFA_SET_VDRAP note.
25562
25563 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
25564
25565         PR tree-optimization/43236
25566         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
25567         error in calculation of base address in reverse iteration case.
25568         (generate_builtin): Take number of latch executions if the statement
25569         is in the latch.
25570
25571 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
25572
25573         PR middle-end/42859
25574         * tree-eh.c: Include pointer-set.h.
25575         (lower_eh_dispatch): Filter out duplicate case labels and
25576         remove the unneeded edge when the label is unused.  Return
25577         true when some edges are removed.
25578         (execute_lower_eh_dispatch): When any lowering resulted in
25579         removing an edge, also delete unreachable blocks.
25580
25581 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
25582
25583         PR bootstrap/43287
25584         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
25585         UNSPEC_MACHOPIC_OFFSET.
25586
25587 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
25588
25589         PR target/43294
25590         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
25591         (m68k_delegitimize_address): New function.
25592
25593 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
25594
25595         PR debug/43299
25596         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
25597
25598         PR debug/43299
25599         * var-tracking.c (adjust_sets): New function.
25600         (count_with_sets, add_with_sets): Use it.
25601         (get_adjusted_src): New inline function.
25602         (add_stores): Use it.
25603
25604         PR debug/43304
25605         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
25606         call cselib_dummy_expand_value_rtx_cb instead of
25607         cselib_expand_value_rtx_cb.
25608
25609         PR debug/43293
25610         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
25611         * config/i386/i386.c: Include debug.h and dwarf2out.h.
25612         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
25613         and .cfi_endproc around the pic thunks.
25614         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
25615         all queued unwind info register saves are saved before the call.
25616         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
25617         considered as sp-=4 for unwind info and the pop as sp+=4 which
25618         also clobbers dest, but doesn't actually restore it.
25619
25620         PR debug/43290
25621         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
25622         RTX_FRAME_RELATED_P.
25623
25624 2010-03-09  Jie Zhang  <jie@codesourcery.com>
25625
25626         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
25627         whitespaces in output template.
25628
25629 2010-03-09  Jie Zhang  <jie@codesourcery.com>
25630
25631         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
25632         out array boundary.
25633
25634 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
25635
25636         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
25637         builtins.exp in a separate job.
25638
25639 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25640
25641         * graphite-sese-to-poly.c (add_param_constraints): Use
25642         lower_bound_in_type and upper_bound_in_type.
25643
25644 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25645
25646         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
25647         instead of unsigned_type_node.
25648
25649 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25650             Reza Yazdani  <reza.yazdani@amd.com>
25651
25652         PR middle-end/43065
25653         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
25654         on pointer type parameters.
25655
25656 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
25657
25658         PR middle-end/42644
25659         PR middle-end/42130
25660         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
25661         handle conversions from pointer to integers.
25662         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
25663         induction variable, to be able to work with code generated by CLooG.
25664         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
25665         (build_poly_scop): Bail out if we cannot codegen a loop.
25666
25667 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
25668
25669         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
25670         code generation with gloog_error.
25671
25672 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25673
25674         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
25675         Call fold_convert on all the returned values.
25676         (expand_scalar_variables_expr): Pass to
25677         expand_scalar_variables_ssa_name the type of the resulting expression.
25678
25679 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25680
25681         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
25682         ppl_min_for_le_pointset.
25683         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
25684         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
25685
25686 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25687
25688         * graphite-dependences.c (map_into_dep_poly): Removed.
25689         (dependence_polyhedron_1): Use combine_context_id_scat.
25690
25691 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25692
25693         * graphite-poly.h (struct poly_scattering): Add layout documentation.
25694         (struct poly_bb): Same.
25695         (combine_context_id_scat): New.
25696
25697 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25698
25699         PR middle-end/42326
25700         * sese.c (name_defined_in_loop_p): Return false for default
25701         definitions.
25702
25703 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25704
25705         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
25706         and clean up the logic.
25707
25708 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25709
25710         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
25711         early return.
25712
25713 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
25714
25715         * var-tracking.c (remove_cselib_value_chains): Define only for
25716         ENABLE_CHECKING.
25717         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
25718         delete_slot_part, emit_notes_for_differences_1): Don't call
25719         remove_cselib_value_chains here.
25720         (set_slot_part, emit_notes_for_differences_2): Don't call
25721         add_cselib_value_chains here.
25722         (preserved_values): New vector.
25723         (preserve_value): New function.
25724         (add_uses, add_stores, vt_add_function_parameters): Use it
25725         instead of cselib_preserve_value.
25726         (changed_values_stack): New vector.
25727         (check_changed_vars_0): New function.
25728         (check_changed_vars_1, check_changed_vars_2): Use it.
25729         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
25730         changed_values_stack VALUEs.
25731         (vt_emit_notes): For all preserved_values call
25732         add_cselib_value_chains.  If ENABLE_CHECKING call
25733         remove_cselib_value_chains before verifying value_chains is empty.
25734         Initialize and free changed_values_stack.
25735         (vt_initialize): Initialize preserved_values.
25736         (vt_finalize): Free preserved_values.
25737
25738 2010-03-08  Richard Guenther  <rguenther@suse.de>
25739
25740         PR tree-optimization/43269
25741         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
25742         region detection.
25743
25744 2010-03-08  Martin Jambor  <mjambor@suse.cz>
25745
25746         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
25747         (ipa_is_param_called): Removed.
25748         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
25749         (ipa_print_node_params): Do not print the called flag.
25750         (ipa_write_node_info): Do not stream the called flag.
25751         (ipa_read_node_info): Likewise.
25752
25753 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
25754
25755         PR debug/43176
25756         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
25757         * cselib.c (struct expand_value_data): Add dummy field.
25758         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
25759         dummy to false.
25760         (cselib_dummy_expand_value_rtx_cb): New function.
25761         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
25762         any rtl.
25763         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
25764         * var-tracking.c: Include pointer-set.h.
25765         (variable): Change n_var_parts to char from int.  Add
25766         cur_loc_changed and in_changed_variables fields.
25767         (variable_canonicalize): Remove.
25768         (shared_var_p): New inline function.
25769         (unshare_variable): Maintain cur_loc_changed and
25770         in_changed_variables fields.  If var was in changed_variables,
25771         replace it there with new_var.  Just copy cur_loc instead of
25772         resetting it to something else.
25773         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
25774         (dataflow_set_union): Don't call variable_canonicalize.
25775         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
25776         of their DEBUG_EXPR_TREE_DECLs.
25777         (canonicalize_loc_order_check): Verify that cur_loc is NULL
25778         and in_changed_variables and cur_loc_changed is false.
25779         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
25780         and cur_loc_changed.  Don't update cur_loc here.
25781         (variable_merge_over_src): Don't call variable_canonicalize.
25782         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
25783         removing loc that is equal to cur_loc, clear cur_loc,
25784         set cur_loc_changed and ensure variable_was_changed is called.
25785         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
25786         compare pointers in cur_loc check, if it is equal to loc,
25787         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
25788         (variable_different_p): Remove compare_current_location argument,
25789         don't compare cur_loc.
25790         (dataflow_set_different_1): Adjust variable_different_p caller.
25791         (variable_was_changed): If dv had some var in changed_variables
25792         already, reset in_changed_variables flag for it and propagate
25793         cur_loc_changed over to the new variable.  On empty var
25794         always set cur_loc_changed.  Set in_changed_variables on whatever
25795         var is added to changed_variables.
25796         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
25797         Use shared_var_p.  When removing loc that is equal to cur_loc,
25798         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
25799         end, don't set it to something else, just call variable_was_changed.
25800         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
25801         loc being removed, clear cur_loc and set cur_loc_changed.
25802         Set cur_loc_changed if all locations have been removed.
25803         (struct expand_loc_callback_data): New type.
25804         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
25805         allocated.  Always create SUBREGs if simplify_subreg failed.
25806         Prefer to use cur_loc, when that fails and still in
25807         changed_variables (and seen first time) recompute it.  Set
25808         cur_loc_changed of variables which had to change cur_loc and
25809         compute elcd->cur_loc_changed if any of the subexpressions used
25810         had to change cur_loc.
25811         (vt_expand_loc): Adjust to pass arguments in
25812         expand_loc_callback_data structure.
25813         (vt_expand_loc_dummy): New function.
25814         (emitted_notes): New variable.
25815         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
25816         that weren't used for any other decl in current
25817         emit_notes_for_changes call call vt_expand_loc_dummy to update
25818         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
25819         first loc_chain location if NULL before.  Always use just
25820         cur_loc instead of first loc_chain location.  When cur_loc_changed
25821         is false, when not --enable-checking=rtl just don't emit any note.
25822         When rtl checking, compute the note and assert it is the same
25823         as previous note.  Clear cur_loc_changed and in_changed_variables
25824         at the end before removing from changed_variables.
25825         (check_changed_vars_3): New function.
25826         (emit_notes_for_changes): Traverse changed_vars to call
25827         check_changed_vars_3 on each changed var.
25828         (emit_notes_for_differences_1): Clear cur_loc_changed and
25829         in_changed_variables.  Recompute cur_loc of new_var.
25830         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
25831         (vt_emit_notes): Initialize and destroy emitted_notes.
25832
25833 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
25834
25835         PR rtl-optimization/42220
25836         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
25837         Use verify_reg_tracked to determine if we should use OP_OUT rather
25838         than OP_INOUT.
25839         (build_def_use): If we see an in-out operand for a register that we
25840         know nothing about, treat is an output if possible, fail the block if
25841         not.
25842
25843 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
25844
25845         PR debug/42897
25846         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
25847         permanently.
25848
25849 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
25850
25851         PR debug/42897
25852         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
25853         uses of relevant DEFs that are dead outside the loop too.
25854
25855 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
25856
25857         * var-tracking.c (dataflow_set_merge): Swap src and src2.
25858         Reverted:
25859         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
25860         PR debug/41371
25861         * var-tracking.c (values_to_unmark): New variable.
25862         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
25863         values_to_unmark vector.  Moved body to...
25864         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
25865         instead queue it into values_to_unmark vector.
25866         (vt_find_locations): Free values_to_unmark vector.
25867
25868 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
25869
25870         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
25871         (site.exp): Export them when plugins are enabled.
25872
25873 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
25874
25875         PR middle-end/42326
25876         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
25877         that contain scevs.
25878         (chrec_fold_multiply): Same.
25879
25880 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
25881
25882         PR c/43248
25883         * c-decl.c (build_compound_literal): Return early if init is
25884         an error_mark_node.
25885
25886 2010-03-04  Martin Jambor  <mjambor@suse.cz>
25887
25888         PR tree-optimization/43164
25889         PR tree-optimization/43191
25890         * tree-sra.c (type_consists_of_records_p): Reject records with
25891         zero-size bit-fields at the end.
25892
25893 2010-03-04  Mike Stump  <mikestump@comcast.net>
25894
25895         * Makefile.in (TAGS): Remove *.y.
25896
25897 2010-03-04  Richard Guenther  <rguenther@suse.de>
25898
25899         PR tree-optimization/40761
25900         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
25901         in reverse order.
25902         (my_rev_post_order_compute): New function.
25903         (init_pre): Call it.
25904
25905 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
25906
25907         PR middle-end/43209
25908         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
25909         decrease the cost of an IV candidate when the cost is infinite.
25910
25911 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25912
25913         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
25914         Use '3DNow!' for the extension of that name, ensure normal space
25915         after the string.
25916         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
25917
25918 2010-03-03  Jeff Law  <law@redhat.com>
25919
25920         * PR middle-end/32693
25921         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
25922         than gen_rtx_SUBREG.
25923         (extract_bit_field_1): Likewise.
25924
25925 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
25926
25927         * doc/sourcebuild.texi (Test directives): Document that arguments
25928         include-opts and exclude-opts are now optional for dg-skip-if,
25929         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
25930
25931 2010-03-03  Jason Merrill  <jason@redhat.com>
25932
25933         PR c++/12909
25934         * cgraph.h (varpool_node): Add extra_name field.
25935         * varpool.c (varpool_extra_name_alias): New.
25936         (varpool_assemble_decl): Emit extra name aliases.
25937         (varpool_mark_needed_node): Look past an extra name alias.
25938         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
25939         * lto-streamer-in.c (lto_input_tree): Read it.
25940         * lto-streamer-out.c (output_unreferenced_globals): Write it.
25941
25942 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
25943
25944         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
25945         (sparc*-*-solaris2*): ...this.
25946
25947 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
25948
25949         PR debug/43229
25950         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
25951         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
25952         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
25953         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
25954
25955         PR debug/43237
25956         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
25957         fallthrough to default handling, just with want_address 0 instead of 2.
25958         For single element lists, add_AT_loc directly, otherwise create an
25959         artificial variable DIE and stick location list to it.
25960
25961         PR debug/43177
25962         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
25963         (VAL_EXPR_HAS_REVERSE): Define.
25964         (reverse_op): New function.
25965         (add_stores): For reversible operations add an extra MO_VAL_USE.
25966
25967 2010-03-02  Jason Merrill  <jason@redhat.com>
25968
25969         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
25970
25971 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
25972
25973         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
25974         (sparc64-*-linux*): Likewise.
25975         (sparc64-*-solaris2*): Include assembler files before linker ones.
25976         (sparc-*-solaris2*): Simplify and reorder to match previous case.
25977         * config/sparc/gas.h: Delete.
25978         * config/sparc/sol2-64.h: Add copyright notice.
25979         * config/sparc/sol2-gas-bi.h: Likewise.
25980         * config/sparc/sol2-gld.h: Likewise.
25981         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
25982         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
25983         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
25984         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
25985         (sparc_elf_asm_named_section): Rename into...
25986         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
25987
25988 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
25989
25990         * config/alpha/alpha.c (override_options): Fix -mtune error message.
25991
25992 2010-03-02  Jeff Law  <law@redhat.com>
25993
25994         PR middle-end/42431
25995         * reload1.c (rtx_p, substitute_stack): Declare.
25996         (substitute): Record addresses of changed rtxs.
25997         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
25998         Restore the original rtx when complete.
25999         (reload): Free subsitute_stack when complete.
26000
26001 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
26002
26003         * doc/gccint.texi (menu): Add Testsuites as a chapter.
26004         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
26005         new chapter.
26006         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
26007         LTO Testing, gcov Testing, profopt Testing, compat Testing,
26008         Torture Tests): Change from subsection to section.
26009
26010 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
26011             Steven Bosscher  <steven@gcc.gnu.org>
26012
26013         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
26014         instead of bb.
26015
26016 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
26017
26018         PR middle-end/42640
26019         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
26020         the assignment from the new induction variable to the assignment
26021         of the value from the original loop PHI function.
26022
26023 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
26024             Daniel Jacobowitz  <dan@codesourcery.com>
26025
26026         * doc/sourcebuild.texi (Test directives): Clarify options to
26027         dg-skip-if.
26028
26029 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26030
26031         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
26032         Disable cfi directives unless GCC and gas agree on using read-only
26033         .eh_frame sections for 64-bit.
26034         * configure: Regenerate.
26035
26036 2010-03-01  Richard Guenther  <rguenther@suse.de>
26037
26038         PR tree-optimization/43220
26039         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
26040         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
26041
26042 2010-03-01  Richard Guenther  <rguenther@suse.de>
26043             Martin Jambor  <mjambor@suse.cz>
26044
26045         PR middle-end/41250
26046         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
26047         gimplified parameters.
26048
26049 2010-03-01  Christian Bruel  <christian.bruel@st.com>
26050
26051         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
26052
26053 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
26054
26055         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
26056
26057 2010-03-01  Richard Guenther  <rguenther@suse.de>
26058
26059         PR middle-end/43213
26060         * expr.c (expand_assignment): Use the alias-oracle to tell
26061         if the rhs aliases the result decl.
26062
26063 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26064
26065         PR pch/14940
26066         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
26067         to sol_gt_pch_get_address.
26068         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
26069         64-bit, SPARC and x86.
26070         (sol_gt_pch_get_address): New function.
26071
26072 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
26073
26074         * toplev.h (inform_n, error_n): Declare.
26075         * diagnostic.c (inform_n, error_n): New function.
26076
26077 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
26078
26079         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
26080         has no rtl yet when processing local_decls, queue it and recheck
26081         if deferred stack allocation hasn't assigned it rtl.
26082
26083 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
26084
26085         * config/sh/sh.c (unspec_bbr_uid): New.
26086         (gen_block_redirect): Use it instead of INSN_UID.
26087         (gen_far_branch): Likewise.
26088
26089 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
26090
26091         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
26092         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
26093
26094 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26095
26096         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
26097         (Warning Options): -Wno-conversion-null is valid for
26098         Objective-C++ as well.
26099         * doc/tm.texi (Named Address Spaces): Likewise.
26100         * doc/plugins.texi (Plugins): Replace TABs with spaces.
26101         * doc/tree-ssa.texi (Tree SSA): Likewise.
26102
26103 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26104
26105         PR bootstrap/43202
26106         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
26107         by default.  Don't set the default arch for
26108         i[34567]86-*-darwin*|x86_64-*-darwin*.
26109
26110 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26111
26112         PR bootstrap/43202
26113         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
26114         default.  Set the default 32bit/64bit archs with $with_arch
26115         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
26116
26117 2010-02-27  Richard Guenther  <rguenther@suse.de>
26118
26119         PR tree-optimization/43186
26120         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
26121         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
26122         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
26123         unroller iterations.
26124
26125 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26126
26127         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
26128         required and i[34567]86-*-* targets don't support 64bit ISA.
26129
26130 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
26131
26132         PR ada/43096
26133         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
26134         the same alias set.
26135
26136 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
26137
26138         * config.gcc: Set the default arch at least to Prescott for
26139         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
26140         if SSE math is enabled.
26141
26142 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26143
26144         * diagnostic.c (diagnostic_initialize): Update.
26145         (diagnostic_report_diagnostic): Test inhibit_notes_p for
26146         informative notes.
26147         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
26148         (diagnostic_inhibit_notes): New.
26149         * toplev.c (process_options): inhibit notes with -fcompare-debug.
26150
26151 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26152
26153         PR c/20631
26154         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
26155         * doc/standards.texi: Likewise.
26156         * doc/extend.texi: Likewise.
26157         * doc/trouble.texi: Likewise.
26158         * doc/cppopts.texi: Likewise.
26159         * doc/install.texi: Likewise.
26160         * c.opt (std=c90,std=gnu90): New options.
26161         * c-opts.c (c_common_handle_option): Handle them.
26162
26163 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26164
26165         PR c/24577
26166         * c-decl.c (undeclared_variable): Use an informative note.
26167
26168 2010-02-26  Richard Guenther  <rguenther@suse.de>
26169
26170         PR tree-optimization/43186
26171         * gimple.h (gimple_fold): Remove.
26172         * gimple.c (gimple_fold): Remove.  Inline into single user ...
26173         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
26174         Try harder for conditions.
26175
26176 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
26177
26178         PR debug/43190
26179         * function.c (used_types_insert): Don't skip through named pointer
26180         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
26181         and it is different from the main variant's type.
26182
26183 2010-02-26  Nick Clifton  <nickc@redhat.com>
26184
26185         * config/rx/rx.md (sminsi3): Remove bogus alternative.
26186
26187 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
26188
26189         * config.gcc: Support --with-fpmath=sse for x86.
26190
26191         * config/i386/ssemath.h: New.
26192
26193         * doc/install.texi (--with-fpmath=sse): Documented.
26194
26195 2010-02-26  Richard Guenther  <rguenther@suse.de>
26196
26197         PR tree-optimization/43188
26198         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
26199         vector types of over-aligned element type.
26200
26201 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
26202
26203         PR target/43175
26204         * config/i386/i386.c (expand_vec_perm_blend): Use correct
26205         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
26206
26207 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
26208
26209         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
26210
26211 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
26212
26213         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
26214         * var-tracking.c: Include diagnostic.h.
26215         (debug_dv): New function.
26216         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
26217
26218         PR debug/43160
26219         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
26220         (add_value_chain, add_value_chains, remove_value_chain,
26221         remove_value_chains): Handle DEBUG_EXPRs.
26222         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
26223
26224         PR debug/43161
26225         * regcprop.c (struct queued_debug_insn_change): New type.
26226         (struct value_data_entry): Add debug_insn_changes field.
26227         (struct value_data): Add n_debug_insn_changes field.
26228         (debug_insn_changes_pool): New variable.
26229         (free_debug_insn_changes, apply_debug_insn_changes,
26230         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
26231         (kill_value_one_regno): Call free_debug_insn_changes if needed.
26232         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
26233         fields.
26234         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
26235         changes for them.
26236         (copyprop_hardreg_forward_1): Don't call apply_change_group for
26237         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
26238         changes, call cprop_find_used_regs via note_stores.
26239         (copyprop_hardreg_forward): When copying vd from predecessor
26240         which has any queued DEBUG_INSN changes, make sure the pointers are
26241         cleared.  At the end call df_analyze and then if there are any
26242         DEBUG_INSN changes queued at the end of some basic block for still
26243         live registers, apply them.
26244         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
26245
26246 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
26247
26248         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
26249         (arm*-*-*): Ditto.
26250
26251 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
26252
26253         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
26254         targets.  Set the default with_cpu/with_arch from arch/cpu.
26255         Allow x86-64 and native for with_cpu/with_arch.
26256
26257 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
26258
26259         * ebitmap.c: Change calls to verify_popcount with calls to
26260         sbitmap_verify_popcount.
26261         (ebitmap_clear_bit): Fixed map->cacheindex test and
26262         map>cache update when bit clearing results in an empty
26263         element.
26264
26265 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26266
26267         PR target/43154
26268         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
26269         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
26270         and support both V2DF and V2DI modes.
26271         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
26272         support both V2DF and V2DI modes.
26273         (general): Delete trailing whitespace from a few patterns.
26274
26275         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26276         V2DF/V2DI interleave high/low builtins.
26277
26278         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
26279         new VSX builtins.
26280
26281         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
26282         interleave high/low functions.
26283
26284 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
26285
26286         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
26287         #pragma extern_prefix.
26288
26289 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
26290
26291         PR debug/43166
26292         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
26293         BLKmode, assert op0 is a MEM and just adjust its mode.
26294
26295         PR debug/43165
26296         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
26297         if bitpos isn't multiple of mode's bitsize.
26298
26299 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26300
26301         * c.opt (-ftemplate-depth=): New.
26302         (-ftemplate-depth-): Deprecate.
26303         * optc-gen.awk: Handle -ftemplate-depth=.
26304         * opth-gen.awk: Likewise.
26305         * c-opts.c (c_common_handle_option): Likewise.
26306         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
26307
26308 2010-02-24  Jason Merrill  <jason@redhat.com>
26309
26310         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
26311
26312 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26313
26314         * cfg.c (alloc_aux_for_block): Remove inline.
26315         (alloc_aux_for_edge): Likewise.
26316
26317 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26318
26319         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
26320
26321 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26322
26323         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
26324         * config/i386/sol2-gas.h: New file.
26325         * config.gcc (i[34567]86-*-solaris2*): Use it.
26326
26327 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26328
26329         PR c/43128
26330         * c-typeck.c (ep_convert_and_check): New.
26331         (build_conditional_expr): Use it.
26332         (build_binary_op): Likewise.
26333
26334 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
26335
26336         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
26337
26338         PR debug/43150
26339         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
26340         bounds even for -O+.
26341         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
26342         expr needs to have DECL_NAME set.
26343
26344 2010-02-24  Nick Clifton  <nickc@redhat.com>
26345
26346         * config/mep/mep.c: Include gimple.h.
26347         (mep_function_uses_sp): Delete unused function.
26348         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
26349         parameters.  Use unsigned integers to count args.  Return a
26350         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
26351
26352 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
26353
26354         PR target/43107
26355         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
26356         greater or equal to nelt instead of 2 * nelt.
26357         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
26358         with nelt - 1.
26359
26360 2010-02-23  Jason Merrill  <jason@redhat.com>
26361
26362         PR debug/42800
26363         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
26364         in cfun->local_decls even if they have register types.
26365
26366         PR c++/42837
26367         * stor-layout.c (place_field): Don't warn about unnecessary
26368         DECL_PACKED if the type is packed.
26369
26370 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
26371
26372         PR target/43139
26373         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
26374         GOTOFF relocs, even when the base reg isn't pic pointer.
26375
26376 2010-02-23  Michael Matz  <matz@suse.de>
26377
26378         PR debug/43077
26379         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
26380         (expand_gimple_basic_block): Generate and use debug temps if there
26381         are debug uses left after the last real use of TERed ssa names.
26382         Unlink debug immediate uses when they are expanded.
26383
26384 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26385
26386         PR 43123
26387         * config/i386/i386.c (override_options): Reorganise to provide
26388         better error messages.
26389
26390 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26391
26392         PR middle-end/43083
26393         * graphite-scop-detection.c (create_single_exit_edge): Move
26394         the call to find_single_exit_edge to....
26395         (create_sese_edges): ...here.  Don't handle multiple edges
26396         exiting the function.
26397         (build_graphite_scops): Don't handle multiple edges
26398         exiting the function.
26399
26400 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26401
26402         PR middle-end/43097
26403         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
26404         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
26405
26406 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26407
26408         PR middle-end/43026
26409         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
26410
26411 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26412
26413         PR c++/43126
26414         * c-typeck.c (convert_arguments): Print declaration location.
26415         * c-common.c (validate_nargs): Rename as
26416         builtin_function_validate_nargs.
26417         (check_builtin_function_arguments): Update.
26418
26419 2010-02-22  Richard Guenther  <rguenther@suse.de>
26420
26421         PR lto/43045
26422         * tree-inline.c (declare_return_variable): Use the type of
26423         the call stmt lhs if available.
26424
26425 2010-02-22  Duncan Sands  <baldrick@free.fr>
26426
26427         * passes.c (register_pass): Always consider all pass lists when
26428         ref_pass_instance_number is zero.
26429
26430 2010-02-22  Richard Guenther  <rguenther@suse.de>
26431
26432         PR tree-optimization/42749
26433         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
26434         parameter.  Do arithmetic in the original type.
26435         (update_accumulator_with_ops): Likewise.
26436         (adjust_accumulator_values): Adjust.
26437
26438 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26439
26440         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
26441         (QI to BLKmode splitter): New splitter.
26442
26443 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
26444
26445         * config/i386/i386.c (initial_ix86_tune_features): Turn on
26446         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
26447
26448 2010-02-22  Richard Guenther  <rguenther@suse.de>
26449
26450         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
26451
26452 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
26453
26454         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
26455         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
26456         ($(T)crti.o, $(T)crtn.o): Remove rules.
26457
26458 2010-02-21  Tobias Burnus  <burnus@net-b.de>
26459
26460         PR fortran/35259
26461         * doc/invoke.texi (-fassociative-math): Document that this
26462         option is automatically enabled for Fortran.
26463
26464 2010-02-20  David S. Miller  <davem@davemloft.net>
26465
26466         * configure.ac: Test if linker and assembler properly support
26467         GOTDATA_OP relocations.
26468         * configure: Rebuild.
26469         * config.in: Likewise.
26470         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
26471         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
26472         (movsi_high_pic): Likewise.
26473         (movdi_lo_sum_pic): Likewise.
26474         (movdi_high_pic): Likewise.
26475         (movsi_pic_gotdata_op): New pattern.
26476         (movdi_pic_gotdata_op): Likewise.
26477         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
26478         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
26479
26480 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
26481
26482         PR target/43067
26483         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
26484         attribute to ssemul.
26485         (xop_mulv2div2di3_high): Ditto.
26486
26487 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26488
26489         PR c++/35669
26490         * c.opt (Wconversion-null): New option.
26491         * doc/invoke.texi (Wconversion-null): Document.
26492
26493 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26494
26495         * common.opt (Wlarger-than-): Add Undocumented.
26496
26497 2010-02-19  Mike Stump  <mikestump@comcast.net>
26498
26499         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
26500
26501 2010-02-19  Jason Merrill  <jason@redhat.com>
26502
26503         PR target/40332
26504         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
26505         * configure: Likewise.
26506
26507 2010-02-20  Alan Modra  <amodra@gmail.com>
26508
26509         PR middle-end/42344
26510         * cgraph.h (cgraph_make_decl_local): Declare.
26511         * cgraph.c (cgraph_make_decl_local): New function.
26512         (cgraph_make_node_local): Use it.
26513         * cgraphunit.c (cgraph_function_versioning): Likewise.
26514         * ipa.c (function_and_variable_visibility): Likewise.
26515
26516 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26517
26518         PR bootstrap/43121
26519         * except.c (sjlj_emit_function_enter): Don't call
26520         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
26521         directly.
26522         * rtl.h (add_reg_br_prob_note): Remove prototype.
26523
26524 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26525
26526         PR 41779
26527         * c-common.c (conversion_warning): Remove widening conversions
26528         before checking the conversion of integers to reals.
26529
26530 2010-02-19  Mike Stump  <mikestump@comcast.net>
26531
26532         PR middle-end/43125
26533         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
26534
26535         PR objc/43061
26536         * cgraphunit.c (process_function_and_variable_attributes): Check
26537         DECL_PRESERVE_P instead of looking up attribute "used".
26538         * ipa-pure-const.c (check_decl): Likewise.
26539         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
26540         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
26541         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
26542         instead of attribute "used".
26543         * config/sol2-c.c (solaris_pragma_init): Likewise.
26544         (solaris_pragma_fini): Likewise.
26545
26546 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26547
26548         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
26549         Use XCNEW instead of xcalloc.
26550         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
26551         XNEW instead of xmalloc.
26552         (get_fields): Use XNEWVEC instead of xmalloc.
26553
26554         PR debug/43084
26555         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
26556         populate vars array.
26557         (create_new_general_access): For debug stmts just reset value.
26558         (get_stmt_accesses): For accesses within debug stmts just record them
26559         using add_access_to_acc_sites instead of preventing the peeling or
26560         counting them as accesses.
26561
26562         PR middle-end/42233
26563         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
26564
26565 2010-02-19  Richard Guenther  <rguenther@suse.de>
26566
26567         PR tree-optimization/42916
26568         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
26569         instructions.
26570
26571 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
26572
26573         * configure.ac: Replace all uses of changequote in macro arguments
26574         with proper quoting.
26575
26576 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26577
26578         PR middle-end/42233
26579         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
26580
26581 2010-02-19  Richard Guenther  <rguenther@suse.de>
26582
26583         PR tree-optimization/42944
26584         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
26585         test for aliasing with errno.
26586
26587 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26588
26589         PR middle-end/42233
26590         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
26591         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
26592         * dojump.c: Include output.h.
26593         (inv): New inline function.
26594         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
26595         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
26596         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
26597         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
26598         argument, pass it down to other calls.
26599         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
26600         add REG_BR_PROB note to the conditional jump.
26601         * cfgexpand.c (add_reg_br_prob_note): Removed.
26602         (expand_gimple_cond): Don't call it, add the probability
26603         as last argument to jumpif_1/jumpifnot_1.
26604         * Makefile.in (dojump.o): Depend on output.h.
26605         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
26606         callers.
26607         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
26608         * stmt.c (do_jump_if_equal): Likewise.
26609         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
26610         * loop-unswitch.c (compare_and_jump_seq): Likewise.
26611         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
26612         Likewise.
26613         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
26614         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
26615         jumpifnot_1 callers.
26616         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
26617         callers.
26618         (store_expr): Adjust jumpifnot caller.
26619         (store_constructor): Adjust jumpif caller.
26620
26621         PR middle-end/42233
26622         * gimplify.c (gimple_boolify): For __builtin_expect call
26623         gimple_boolify also on its first argument.
26624
26625 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
26626
26627         * configure.ac (gnu-unique-object): Wrap regexps using [] in
26628         changequote block.
26629         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
26630         * configure: Regenerated.
26631
26632 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26633
26634         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
26635         lang_hooks.types_compatible_p instead of comptypes.
26636
26637 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
26638
26639         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
26640         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
26641         if __prefer_thumb__ is defined.
26642
26643 2010-02-18  Martin Jambor  <mjambor@suse.cz>
26644
26645         PR tree-optimization/43066
26646         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
26647         array with zero-sized element type.
26648
26649 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
26650
26651         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
26652         rtx, allocate struct var_loc_node here and return it to the
26653         caller, and only if it is actually needed.
26654         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
26655         move it earlier and return immediately if it returns NULL.
26656
26657 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
26658
26659         * config/sparc/gas.h: New file.  Restore
26660         TARGET_ASM_NAMED_SECTION to its ELF default.
26661         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
26662         check !HAVE_GNU_AS.
26663         * config/sparc/sparc.c (sparc_elf_asm_named_section):
26664         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
26665         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
26666         after sparc/sysv4.h.
26667
26668 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
26669
26670         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
26671
26672 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
26673
26674         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
26675         patterns from predicated pattern.
26676
26677 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
26678
26679         PR target/43103
26680         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
26681         for insn mnemonic suffix.
26682
26683 2010-02-17  Richard Guenther  <rguenther@suse.de>
26684
26685         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
26686         to loop PHI nodes.
26687
26688 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
26689
26690         PR debug/42918
26691         * caller-save.c (save_call_clobbered_regs): If BB ends with
26692         a DEBUG_INSN, move any notes in between last real insn and the last
26693         DEBUG_INSN after the last DEBUG_INSN.
26694
26695 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
26696
26697         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
26698         Fix return type.  Fix argument type.  Explain meaning of return value.
26699
26700 2010-02-16  Richard Guenther  <rguenther@suse.de>
26701
26702         PR tree-optimization/41043
26703         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
26704         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
26705         statements ...
26706         (vrp_visit_phi_node): ... but only for loop PHI nodes.
26707
26708 2010-02-16  Ira Rosen  <irar@il.ibm.com>
26709
26710         PR tree-optimization/43074
26711         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
26712         * tree-vect-loop.c (vect_analyze_loop_operations): Add
26713         vectorizable cycles in hybrid SLP check.
26714         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
26715
26716 2010-02-16  Richard Guenther  <rguenther@suse.de>
26717
26718         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
26719         (true_dependence): If memrefs_conflict_p computes must-alias
26720         trust it.  Move TBAA check after offset-based disambiguation.
26721         (canon_true_dependence): Likewise.
26722
26723 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
26724
26725         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
26726         * doc/invoke.texi: Document it.
26727         * var-tracking.c: Include toplev.h and params.h.
26728         (vt_find_locations): Return bool indicating success.  Compute
26729         hash sizes unconditionally.  Check new parameter, report.
26730         (variable_tracking_main_1): Check vt_find_locations results and
26731         retry.  Renamed from...
26732         (variable_tracking_main): ... this.  New wrapper to preserve
26733         flag_var_tracking_assignments.
26734         * Makefile.in (var-tracking.o): Adjust dependencies.
26735
26736 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
26737             Jakub Jelinek  <jakub@redhat.com>
26738
26739         PR target/42854
26740         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
26741         if weak_import attribute is present.
26742         * config/darwin.c (machopic_select_section): Likewise.
26743
26744 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
26745
26746         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
26747         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
26748         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
26749         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
26750
26751         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
26752         types.
26753
26754         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
26755         Fix argument types.
26756
26757         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
26758         Rewrite text to refer to the names.
26759
26760 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
26761
26762         * config/i386/i386-builtin-types.def
26763         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
26764         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
26765         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
26766         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
26767         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
26768         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
26769         IX86_BUILTIN_VPERMIL2PS256.
26770         (MULTI_ARG_4_DF2_DI_I): Defined.
26771         (MULTI_ARG_4_DF2_DI_I1): Defined.
26772         (MULTI_ARG_4_SF2_SI_I): Defined.
26773         (MULTI_ARG_4_SF2_SI_I1): Defined.
26774         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
26775         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
26776         __builtin_ia32_vpermil2ps256.
26777         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26778         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26779         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
26780         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26781         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26782         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
26783         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
26784         CODE_FOR_xop_vpermil2v8sf3.
26785         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
26786         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
26787         * config/i386/xopintrin.h (_mm_permute2_pd): New.
26788         (_mm256_permute2_pd): New.
26789         (_mm_permute2_ps): New.
26790         (_mm256_permute2_ps): New.
26791
26792 2010-02-15  Nick Clifton  <nickc@redhat.com>
26793
26794         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
26795         boolean parameters.  Use emit_jump_insn when emitting a pop
26796         instruction containing a return insn.
26797         (push): Use 'true' rather than '1' as second parameter to F.
26798         (h8300_expand_prologue): Likewise.
26799         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
26800         (h8300_expand_epilogue): Likewise.
26801
26802 2010-02-15  Richard Guenther  <rguenther@suse.de>
26803
26804         PR middle-end/43068
26805         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
26806         if that is zero.
26807
26808 2010-02-15  Nick Clifton  <nickc@redhat.com>
26809
26810         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
26811         delta.
26812
26813 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
26814
26815         * intl.c (fake_ngettext): New function.
26816         * intl.h (fake_ngettext): Declare.
26817         (ngettext): Define macro.
26818         * collect2.c (notice_translated): New function.
26819         (main): Use notice_translated and ngettext.
26820         * collect2.h (notice_translated): Declare.
26821
26822 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
26823
26824         * reorg.c (delete_computation): Comment fixes.
26825         * caller-save.c (setup_save_areas): Idem.
26826         * sel-sched-dump.c (dump_lv_set): Idem.
26827         * rtl.def: Idem.
26828
26829 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26830
26831         * config/s390/s390.c (s390_sched_init): New function.
26832         (TARGET_SCHED_INIT): Target hook defined.
26833
26834 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
26835             Jack Howarth  <howarth@bromo.med.uc.edu>
26836             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
26837
26838         PR target/42982
26839         Partial revert of unintended change in fix for PR41605.
26840         * config/darwin.h: Fix typo.
26841         * config/darwin9.h: Same.
26842
26843 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
26844
26845         * c-pch.c (pch_init): Clear v.
26846
26847 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26848
26849         PR middle-end/42930
26850         * graphite-scop-detection.c (graphite_can_represent_scev): Call
26851         graphite_can_represent_init for MULT_EXPR.
26852
26853 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26854
26855         PR middle-end/42914
26856         PR middle-end/42530
26857         * graphite-sese-to-poly.c (remove_phi): New.
26858         (translate_scalar_reduction_to_array): Call remove_phi.
26859
26860 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26861
26862         PR middle-end/42771
26863         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
26864         * graphite-clast-to-gimple.h (gloog): Update declaration.
26865         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
26866         * graphite-poly.h (struct poly_bb): Add missing comments.
26867         (struct scop): Add poly_scop_p field.
26868         (POLY_SCOP_P): New.
26869         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
26870         * graphite.c (graphite_transform_loops): Build the polyhedral
26871         representation for each scop before code generation.
26872         * sese.c (rename_variables_in_operand): Removed.
26873         (rename_variables_in_expr): Return the renamed expression.
26874         (rename_sese_parameters): New.
26875         * sese.h (rename_sese_parameters): Declared.
26876
26877 2010-02-11  Richard Guenther  <rguenther@suse.de>
26878
26879         PR tree-optimization/42998
26880         * tree-ssa-pre.c (create_expression_by_pieces): Treat
26881         POINTER_PLUS_EXPR properly.
26882
26883 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26884             Changpeng Fang  <changpeng.fang@amd.com>
26885
26886         PR middle-end/40886
26887         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
26888         the cost of an IV candidate when the IV is used in a test against zero.
26889
26890         * gcc.dg/tree-ssa/ivopts-3.c: New.
26891
26892 2010-02-11  Richard Guenther  <rguenther@suse.de>
26893
26894         PR lto/41664
26895         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
26896         pointer-vs-decl case by swapping refs.  Handle some cases
26897         of pointer-vs-decl disambiguations more conservatively.
26898         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
26899         to false after expanding.
26900
26901 2010-02-11  Richard Guenther  <rguenther@suse.de>
26902
26903         PR driver/43021
26904         * gcc.c (process_command): Handle LTO file@offset case more
26905         appropriately.
26906
26907 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
26908
26909         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
26910         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
26911         of DEBUG_INSNs.
26912         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
26913
26914         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
26915         if MEM's mode size isn't DWARF2_ADDR_SIZE.
26916         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
26917         Optimize eq/ne comparisons when both arguments are known to be
26918         zero-extended.
26919         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
26920         Don't mask operands unnecessarily if they are known to be already
26921         zero-extended.
26922
26923 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
26924
26925         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
26926         instead of loop.
26927
26928 2010-02-10  Richard Guenther  <rguenther@suse.de>
26929
26930         PR tree-optimization/43017
26931         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
26932         for wrapping signed arithmetic.
26933
26934 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
26935
26936         PR debug/43010
26937         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
26938         if no debug info should be emitted for it.
26939
26940 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
26941
26942         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
26943         note when flag_exceptions is set.
26944
26945 2010-02-10  Duncan Sands  <baldrick@free.fr>
26946
26947         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
26948
26949 2010-02-10  Richard Guenther  <rguenther@suse.de>
26950
26951         PR c/43007
26952         * tree.c (get_unwidened): Handle constants.
26953         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
26954
26955 2010-02-10  Martin Jambor  <mjambor@suse.cz>
26956
26957         PR lto/42985
26958         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
26959         check for variable argument counts independently.
26960
26961 2010-02-10  Christian Bruel  <christian.bruel@st.com>
26962
26963         PR target/42841
26964         * config/sh/sh.c (find_barrier): Increase length for non delayed
26965         conditional branches.
26966
26967 2010-02-10  Christian Bruel  <christian.bruel@st.com>
26968
26969         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
26970
26971 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
26972
26973         * builtins.c (set_builtin_user_assembler_name): Also handle
26974         ffs if int is smaller than word.
26975
26976 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
26977
26978         PR middle-end/42973
26979         * ira-conflicts.c (get_dup): Remove.
26980         (process_reg_shuffles): Add new parameter.  Use it as an
26981         additional guard for copy generation.
26982         (add_insn_allocno_copies): Rewrite.
26983
26984 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
26985
26986         * common.opt (fsched2-use-traces): Preserved for backward
26987         compatibility.
26988         * doc/invoke.texi: Remove the documentation about option
26989         -fsched2-use-traces.
26990         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
26991         flag_sched2_use_traces.
26992         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
26993         the backward compatibility flag section.
26994
26995 2010-02-09  Richard Guenther  <rguenther@suse.de>
26996
26997         PR tree-optimization/43008
26998         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
26999         make HEAP variables initialized from global memory if they
27000         are not known builtin functions.
27001         (find_func_aliases): Adjust.
27002
27003 2010-02-09  Richard Guenther  <rguenther@suse.de>
27004
27005         PR tree-optimization/43000
27006         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
27007         arithmetic manually.
27008
27009 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
27010
27011         PR tree-optimization/42931
27012         * tree-loop-linear.c (try_interchange_loops): Don't call
27013         double_int_mul if estimated_loop_iterations failed.
27014
27015 2010-02-08  Martin Jambor  <mjambor@suse.cz>
27016
27017         PR middle-end/42898
27018         * tree-sra.c (build_accesses_from_assign): Do not mark in
27019         should_scalarize_away_bitmap if stmt has volatile ops.
27020         (sra_modify_assign): Do not process assigns piecemeal if if stmt
27021         has volatile ops.
27022
27023 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
27024
27025         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
27026
27027 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
27028
27029         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
27030         before the pattern.
27031
27032 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
27033
27034         PR middle-end/42946
27035         * df-core.c (df_finish_pass): Change type of saved_flags to int.
27036
27037 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
27038
27039         PR middle-end/42988
27040         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
27041         to unknown_dependence.
27042         (graphite_legal_transform_dr): Handle the unknown_dependence.
27043         (graphite_carried_dependence_level_k): Same.
27044
27045 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
27046
27047         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
27048
27049 2010-02-07  Richard Guenther  <rguenther@suse.de>
27050
27051         PR middle-end/42991
27052         * expr.c (get_inner_reference): Always initialize *pbitsize.
27053
27054 2010-02-07  Richard Guenther  <rguenther@suse.de>
27055
27056         PR middle-end/42956
27057         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
27058         new ARRAY_REFs on variable size element or minimal index arrays.
27059         Complete.
27060         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
27061         gimple_fold_indirect_ref.
27062
27063 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
27064
27065         PR target/42957
27066         * arm.c (arm_override_options): Just return if the user has specified
27067         an invalid fpu name.
27068
27069 2010-02-03  Jason Merrill  <jason@redhat.com>
27070
27071         PR c++/42870
27072         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
27073         i386_pe_maybe_record_exported_symbol.
27074
27075 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
27076
27077         PR target/42924
27078         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27079         (pa_delegitimize_address): New function.
27080
27081 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
27082
27083         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
27084         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
27085
27086 2010-02-05  Richard Guenther  <rguenther@suse.de>
27087
27088         PR lto/42762
27089         * lto-streamer-in.c (get_resolution): Deal with references
27090         to undefined functions.
27091
27092 2010-02-05  Richard Guenther  <rguenther@suse.de>
27093
27094         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
27095         (fold_const_aggregate_ref): Likewise.
27096         (ccp_fold_stmt): Substitute loads.
27097         (maybe_fold_reference): Verify types before substituting.
27098         Unshare properly.
27099         (fold_gimple_assign): Unshare properly.
27100         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
27101
27102 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
27103
27104         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
27105         for rs6000_gen_cell_microcode.
27106
27107 2010-02-04  Richard Guenther  <rguenther@suse.de>
27108
27109         PR rtl-optimization/42952
27110         * dse.c (const_or_frame_p): Remove MEM handling.
27111
27112 2010-02-04  Nick Clifton  <nickc@redhat.com>
27113
27114         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
27115         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
27116         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
27117         (mn10300_asm_output_mi_thunk): New function.
27118         (mn10300_can_output_mu_thunk): New function.
27119         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
27120         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
27121         (FUNCTION_ARG): Delete incorrect comment.
27122
27123 2010-02-03  Jason Merrill  <jason@redhat.com>
27124
27125         PR c++/40138
27126         * fold-const.c (operand_equal_p): Handle erroneous types.
27127
27128 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
27129
27130         * config/h8300/h8300.md (can_delay): Fix attibute condition.
27131
27132 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
27133
27134         PR rtl-optimization/42941
27135         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
27136         of xmalloc.
27137
27138 2010-02-03  Jason Merrill  <jason@redhat.com>
27139
27140         PR c++/35652
27141         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
27142
27143 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
27144
27145         PR debug/42896
27146         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
27147         (cselib_reset_table): Renamed from...
27148         (cselib_reset_table_with_next_value): ... this.
27149         (cselib_get_next_uid): Renamed from...
27150         (cselib_get_next_unknown_value): ... this.
27151         * cselib.c (next_uid): Renamed from...
27152         (next_unknown_value): ... this.
27153         (cselib_clear_table): Adjust.
27154         (cselib_reset_table): Adjust.  Renamed from...
27155         (cselib_reset_table_with_next_value): ... this.
27156         (cselib_get_next_uid): Adjust.  Renamed from...
27157         (cselib_get_next_unknown_value): ... this.
27158         (get_value_hash): Use hash.
27159         (cselib_hash_rtx): Likewise.
27160         (new_cselib_val): Adjust.  Set and dump uid.
27161         (cselib_lookup_mem): Pass next_uid as hash.
27162         (cselib_subst_to_values): Likewise.
27163         (cselib_log_lookup): Dump uid.
27164         (cselib_lookup): Pass next_uid as hash.  Adjust.
27165         (cselib_process_insn): Adjust.
27166         (cselib_init): Initialize next_uid.
27167         (cselib_finish): Adjust.
27168         (dump_cselib_table): Likewise.
27169         * dse.c (canon_address): Dump value uid.
27170         * print-rtl.c (print_rtx): Print value uid.
27171         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
27172         (dvuid): New type.
27173         (dv_uid): New function, sort of renamed from...
27174         (dv_htab_hash): ... this, reimplemented in terms of it and...
27175         (dv_uid2hash): ... this.  New.
27176         (variable_htab_eq): Drop excess assertions.
27177         (tie_break_pointers): Removed.
27178         (canon_value_cmp): Compare uids.
27179         (variable_post_merge_New_vals): Print uids.
27180         (vt_add_function_parameters): Adjust.
27181         (vt_initialize): Reset table.  Adjust.
27182
27183 2010-02-03  Richard Guenther  <rguenther@suse.de>
27184
27185         PR tree-optimization/42944
27186         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
27187         (call_may_clobber_ref_p_1): Likewise.  Properly handle
27188         malloc and calloc clobbering errno.
27189
27190 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
27191
27192         * doc/invoke.texi: Fix name of sched1 dump.
27193
27194         * opts.c (decode_options): Set flag_tree_switch_conversion
27195         only conditionally on optimize >= 2.
27196
27197         * gcse.c: Assorted comment fixes in pass description.
27198
27199 2010-02-03  Anthony Green  <green@moxielogic.com>
27200
27201         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
27202         nop padding in order to maintain alignment of storage location of
27203         target function address.
27204         (moxie_trampoline_init): Store target function address at newly
27205         aligned location.
27206         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
27207         to 32.
27208         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
27209
27210 2010-02-03  Richard Guenther  <rguenther@suse.de>
27211
27212         PR middle-end/42927
27213         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
27214
27215 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27216
27217         * config.gcc: Reenable check for obsolete targets.
27218         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
27219         mips-sgi-irix6.[0-4]*.
27220
27221 2010-02-02  Nick Clifton  <nickc@redhat.com>
27222
27223         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
27224         constant size of 4 as being the same as 0.
27225         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
27226         can take values in the range 0..4.
27227
27228 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
27229
27230         PR java/41991
27231         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
27232         as _darwin10_Unwind_FindEnclosingFunction().
27233         * libgcc-libsystem.ver: New.
27234
27235 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
27236
27237         PR target/41399
27238         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
27239         implicitly set registers.
27240
27241 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
27242
27243         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
27244         (arm_override_options): Allow automatic selection of the thread
27245         pointer register if thumb2.
27246         (legitimize_pic_address): Improve code sequences for Thumb2.
27247         (arm_call_tls_get_addr): Likewise.
27248         (legitimize_tls_address): Likewise.
27249         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
27250         (pic_load_addr_32bit): ... this.  New named pattern.
27251         * thumb2.md (pic_load_addr_thumb2): Delete.
27252         (pic_load_dot_plus_four): Delete.
27253         (tls_load_dot_plus_four): New named pattern.
27254
27255 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27256
27257         PR libgomp/29986
27258         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
27259         Document fix for TLS bug.
27260
27261 2010-01-31  Richard Guenther  <rguenther@suse.de>
27262
27263         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
27264         conservatively correct.
27265
27266 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27267
27268         PR target/42850
27269         Revert:
27270         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27271
27272         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27273
27274 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27275
27276         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
27277
27278 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
27279
27280         * config.gcc: Adjust order of makefile fragments for mingw targets.
27281
27282 2010-01-31  Richard Guenther  <rguenther@suse.de>
27283
27284         PR middle-end/42898
27285         * gimplify.c (gimplify_init_constructor): For volatile LHS
27286         initialize a temporary.
27287
27288 2010-01-31  Matthias Klose  <doko@ubuntu.com>
27289
27290         * configure.ac: Fix __stack_chk_fail check for cross builds configured
27291         --with-headers
27292         * configure: Regenerate.
27293
27294 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
27295
27296         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
27297         the same alias set and their sizes different constantness.
27298         (aliasing_component_refs_p): Revert 2009-10-24 change.
27299
27300 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27301
27302         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
27303         unused.
27304
27305 2010-01-29  Richard Guenther  <rguenther@suse.de>
27306
27307         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
27308         Assert we successfully updated the call.
27309
27310 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
27311
27312         PR rtl-optimization/42889
27313         * df.h (df_set_bb_dirty_nonlr): New prototype.
27314         * df-core.c (df_set_bb_dirty_nonlr): New function.
27315         * df-scan.c (df_insn_rescan): Call it instead of
27316         df_set_bb_dirty for DEBUG_INSNs.
27317
27318 2010-01-29  Richard Guenther  <rguenther@suse.de>
27319
27320         PR middle-end/37448
27321         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
27322         quadratic behavior in most cases.
27323
27324 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
27325
27326         PR target/42891
27327         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
27328         in the call to gen_x86_movsicc_0_m1.
27329
27330 2010-01-28  Richard Guenther  <rguenther@suse.de>
27331
27332         PR tree-optimization/42871
27333         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
27334
27335 2010-01-28  Richard Guenther  <rguenther@suse.de>
27336
27337         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
27338         into call arguments.
27339
27340 2010-01-28  Richard Guenther  <rguenther@suse.de>
27341
27342         PR middle-end/42883
27343         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
27344         the forwarder if the destination is an EH landing pad.
27345
27346 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
27347
27348         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
27349         block list passed to gimple_duplicate_sese_tail.
27350         (parallelize_loops): Avoid parallelization when the function
27351         has_nonlocal_label.
27352         Avoid parallelization when the preheader is IRREDUCIBLE.
27353         Try to optimize when estimated_loop_iterations_int is unresolved.
27354         Add the loop's location to the dump file.
27355         * tree-cfg.c (add_phi_args_after_redirect): Remove.
27356         (gimple_duplicate_sese_tail): Remove the check for the latch.
27357         Redirect nexits to the exit block.
27358         Remove handling of the incoming edges to the latch.
27359         Redirect the backedge from the copied latch to the exit bb.
27360
27361 2010-01-28  Michael Matz  <matz@suse.de>
27362
27363         PR target/42881
27364         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
27365         Wrap force_reg into a sequence, emit it before user.
27366
27367 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
27368
27369         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
27370         (arm_rev): New.
27371         (arm_legacy_rev): Likewise.
27372         (thumb_legacy_rev): Likewise.
27373
27374 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
27375
27376         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
27377         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
27378         on MEM's address failed, try avoid_constant_pool_reference and
27379         recurse if it returned something different.
27380         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
27381         address, try avoid_constant_pool_reference and recurse if it
27382         returned something different.
27383         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
27384         address and avoid_constant_pool_reference returned something
27385         different, don't set have_address.
27386
27387 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
27388
27389         PR debug/42861
27390         * var-tracking.c (val_store): Add modified argument, obey it.
27391         Adjust callers.
27392         (count_uses): Move down logging of main.
27393         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
27394         don't need resolution.
27395         (emit_notes_in_bb): Likewise.
27396
27397 2010-01-27  Richard Guenther  <rguenther@suse.de>
27398
27399         PR middle-end/42878
27400         * tree-inline.c (remap_decl): Delay remapping of SSA name
27401         default definitions until we need them.
27402
27403 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
27404
27405         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27406         (rs6000_delegitimize_address): New function.
27407
27408         * config/s390/s390.c (s390_delegitimize_address): Call
27409         delegitimize_mem_from_attrs.
27410
27411         PR middle-end/42874
27412         * tree-inline.c (cannot_copy_type_1): Removed.
27413         (copy_forbidden): Don't forbid copying of functions containing
27414         records/unions with variable length fields.
27415
27416 2010-01-27  Christian Bruel  <christian.bruel@st.com>
27417
27418         Revert:
27419         PR target/42841
27420         * config/sh/sh.c (find_barrier): Increase length for non delayed
27421         conditional branches.
27422
27423 2010-01-27  Matthias Klose  <doko@ubuntu.com>
27424
27425         * configure.ac (gnu-unique-object): Fix ldd version check.
27426         * configure: Regenerate.
27427
27428 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27429
27430         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
27431         HAVE_GNU_AS value.
27432         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
27433         Test for HAVE_GNU_AS value.
27434
27435 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27436
27437         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
27438         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
27439         INT64_TYPE): Define.
27440         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
27441         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
27442         INT_LEAST64_TYPE): Define.
27443         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
27444         UINT_LEAST64_TYPE): Define.
27445         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
27446         INT_FAST64_TYPE): Define.
27447         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
27448         UINT_FAST64_TYPE): Define.
27449         (INTMAX_TYPE, UINTMAX_TYPE): Define.
27450         (INTPTR_TYPE, UINTPTR_TYPE): Define.
27451         (SIG_ATOMIC_TYPE): Define.
27452
27453 2010-01-26  Richard Guenther  <rguenther@suse.de>
27454
27455         * df-scan.c (df_scan_set_bb_info): Remove assert.
27456         (df_insn_rescan_debug_internal): Merge asserts.
27457         (df_install_ref): Likewise.
27458         (df_mark_reg): Use bitmap_set_range.
27459         (df_hard_reg_used_p): Remove assert.
27460         (df_hard_reg_used_count): Likewise.
27461
27462 2010-01-26  Richard Guenther  <rguenther@suse.de>
27463
27464         PR rtl-optimization/42685
27465         * web.c (web_main): Ignore DEBUG_INSNs.
27466
27467 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
27468
27469         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
27470
27471         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
27472         Fix types of fndecl and arglist parameters.
27473
27474 2010-01-26  Richard Guenther  <rguenther@suse.de>
27475
27476         PR middle-end/42806
27477         * tree-eh.c (unsplit_eh): Skip debug insns.
27478
27479 2010-01-26  Richard Guenther  <rguenther@suse.de>
27480
27481         PR tree-optimization/42250
27482         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
27483
27484 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
27485
27486         PR fortran/42866
27487         * omp-low.c (expand_omp_sections): Only use single_pred if
27488         l2_bb is single_pred_p.
27489
27490 2010-01-25  Christian Bruel  <christian.bruel@st.com>
27491
27492         PR target/42841
27493         * config/sh/sh.c (find_barrier): Increase length for non delayed
27494         conditional branches.
27495         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
27496
27497 2010-01-24  David S. Miller  <davem@davemloft.net>
27498
27499         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
27500         define if not using GAS.
27501         * config/sparc/sparc.c (sparc_elf_asm_named_section):
27502         Likewise.  Delete SECTION_MERGE code, which is only applicable
27503         when using GAS.
27504
27505 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
27506
27507         PR c++/42748
27508         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
27509         mangling of va_list in system headers.
27510
27511 2010-01-23  Toon Moene  <toon@moene.org>
27512
27513         * tree-predcom.c (combine_chains): Return NULL, not false.
27514
27515 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
27516
27517         * tree-loop-distribution.c (distribute_loop): Fix declaration and
27518         initialization of variable res to agree with return type.
27519
27520 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
27521
27522         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
27523         * tree-sra.c: Add include of expr.h.
27524
27525 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
27526
27527         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
27528         insert the debug stmt on the single non-EH edge from the stmt.
27529
27530 2010-01-22  Richard Henderson  <rth@redhat.com>
27531
27532         PR tree-opt/42833
27533         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
27534         the RHS until after generate_subtree_copies has insertted its
27535         code before the current statement.
27536
27537 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
27538
27539         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
27540
27541         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
27542
27543 2010-01-21  Martin Jambor  <mjambor@suse.cz>
27544
27545         PR tree-optimization/42585
27546         * tree-sra.c (struct access): New field grp_total_scalarization.
27547         (dump_access): Dump the new field.
27548         (should_scalarize_away_bitmap): New variable.
27549         (cannot_scalarize_away_bitmap): Likewise.
27550         (sra_initialize): Allocate new bitmaps.
27551         (sra_deinitialize): Free new bitmaps.
27552         (create_access_1): New function.
27553         (create_access): Parts moved to create_access_1.
27554         (type_consists_of_records_p): New function.
27555         (completely_scalarize_record): Likewise.
27556         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
27557         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
27558         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
27559         access.
27560         (analyze_all_variable_accesses): Completely scalarize small eligible
27561         records.
27562
27563 2010-01-21  Martin Jambor  <mjambor@suse.cz>
27564
27565         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
27566
27567 2010-01-21  Andrew Haley  <aph@redhat.com>
27568
27569         * gcc.c (process_command): Move lang_specific_driver before
27570         setting cc_libexec_prefix.
27571
27572 2010-01-21  Richard Guenther  <rguenther@suse.de>
27573
27574         PR middle-end/19988
27575         * fold-const.c (negate_expr_p): Pretend only negative
27576         real constants are easily negatable.
27577
27578 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
27579             Jason Merrill  <jason@redhat.com>
27580
27581         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
27582         (TYPE_TRANSPARENT_AGGR): this, for union and record.
27583         * calls.c (initialize argument_information): Handle it.
27584         * c-common.c (handle_transparent_union_attribute): Use new name.
27585         * c-decl.c (finish_struct): Ditto.
27586         * c-typeck.c (type_lists_compatible_p): Ditto.
27587         (convert_for_assignment): Use new name and also handle record.
27588         * function.c (aggregate_value_p): Handle it.
27589         (pass_by_reference): Ditto.
27590         (assign_parm_data_types): Ditto.
27591         * print-tree.c (print_node): Ditto.
27592         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
27593         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
27594         * tree.c (first_field): New fn.
27595
27596 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
27597
27598         PR target/42818
27599         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
27600         even when linking statically, for now.
27601
27602 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
27603
27604         PR debug/42715
27605         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
27606         without a cselib val.
27607         (count_uses): Accept MO_VAL_SET with no val on stores.
27608         (add_stores): Likewise.
27609
27610 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27611
27612         * var-tracking.c (check_value_val): Add a compile time assertion.
27613         (dv_is_decl_p): Simplify.
27614         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
27615         gcc_assert if ENABLE_CHECKING.
27616
27617 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
27618
27619         PR debug/42782
27620         * var-tracking.c: Include tree-flow.h.
27621         (mem_dies_at_call): New.
27622         (dataflow_set_preserve_mem_locs): Use it.
27623         (dataflow_set_remove_mem_locs): Likewise.
27624         (dump_var): Renamed from dump_variable.  Adjust all callers.
27625         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
27626         * Makefile.in (var-tracking.o): Adjust deps.
27627
27628 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
27629
27630         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
27631
27632 2010-01-20  Richard Guenther  <rguenther@suse.de>
27633
27634         PR tree-optimization/42717
27635         * tree-ssa-dce.c (get_live_post_dom): Remove.
27636         (forward_edge_to_pdom): Take an arbitrary edge to copy
27637         degenerate PHI args from.
27638         (remove_dead_stmt): Use the first post-dominator even if it
27639         does not contain live statements as redirection destination.
27640
27641 2010-01-20  Richard Guenther  <rguenther@suse.de>
27642
27643         * tree-inline.c (estimate_num_insns): Handle EH builtins.
27644
27645 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27646
27647         * sel-sched.c (create_speculation_check): Remove set but not used
27648         variable twin.
27649         (try_transformation_cache): Remove set but not used variable ds.
27650         (calculate_privileged_insns): Remove set but not used variables
27651         cur_insn and min_spec_insn.
27652         (find_best_expr): Remove set but not used variable avail_n.
27653         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
27654         variable e.
27655         * cgraphunit.c (assemble_thunk): Remove set but not used variable
27656         false_label.
27657         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
27658         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
27659         new_scop_exit_edge.
27660
27661 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
27662
27663         PR bootstrap/42786
27664         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
27665         cpu types.  Add support for *-sse3 cpu types.
27666         (x86_64-*-*): Ditto.
27667
27668 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27669
27670         PR middle-end/42803
27671         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
27672         argument, call initializer_constant_valid_p_1 instead of
27673         initializer_constant_valid_p, pass CACHE to it, return NULL
27674         immediately if first call returns NULL.
27675         (initializer_constant_valid_p_1): New function.
27676         (initializer_constant_valid_p): Use it.
27677
27678 2010-01-20  Thomas Quinot  <quinot@adacore.com>
27679
27680         * tree.def (PLACEHOLDER_EXPR): Fix comment.
27681
27682 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27683
27684         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
27685         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
27686         (loc_list_from_tree): Don't handle unsigned division.  Handle
27687         signed modulo using DW_OP_{over,over,div,mul,minus}.
27688         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
27689         modulo instead of signed.
27690
27691 2010-01-20  DJ Delorie  <dj@redhat.com>
27692
27693         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
27694         (Fpa): Pass it
27695         (h8300_emit_stack_adjustment): Propogate it.
27696         (push): Pass it.
27697         (h8300_expand_prologue): Likewise.
27698         (h8300_expand_epilogue): Likewise.
27699
27700 2010-01-19  Michael Matz  <matz@suse.de>
27701
27702         PR tree-optimization/41783
27703         * tree-data-ref.c (toplevel): Include flags.h.
27704         (dump_data_dependence_relation):  Also dump the inputs if the
27705         result will be unknown.
27706         (split_constant_offset_1): Look through some conversions.
27707         * tree-predcom.c (determine_roots_comp): Restart a new chain if
27708         the offset from last element is too large.
27709         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
27710         (reassociate_to_the_same_stmt): Handle vector registers.
27711         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
27712         (e.g. conversions).
27713         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
27714         wide_prolog_niters argument, emit widening instructions.
27715         (vect_do_peeling_for_alignment): Adjust caller, use widened
27716         variant of the iteration cound.
27717         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
27718
27719 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27720
27721         PR target/38697
27722         * config/arm/neon-testgen.m (emit_automatics): New parameter
27723         features. Adjust for Fixed_return_reg feature.
27724         (test_intrinsic): Call emit_automatics with new feature.
27725         * config/arm/neon.ml: Update copyright years.
27726         (features): New Fixed_return_reg feature.
27727         (ops): Update feature for Vget_low.
27728
27729 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
27730
27731         PR tree-optimization/42719
27732         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
27733         stmt uses.
27734
27735         PR debug/42728
27736         * fwprop.c (all_uses_available_at): Return false if def_set dest
27737         is a REG that is used in def_insn.
27738
27739 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
27740
27741         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
27742
27743         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
27744         Add argument names.
27745
27746         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
27747
27748         * target.h (struct gcc_target) <secondary_reload>: Change type
27749         of last argument to secondary_reload_info *.
27750
27751 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
27752
27753         PR target/42774
27754         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
27755         memory references with unaligned offsets.  Remove CQImode handling.
27756         (unaligned_memory_operand): Return 1 for memory references with
27757         unaligned offsets.  Remove CQImode handling.
27758
27759 2010-01-18  Richard Guenther  <rguenther@suse.de>
27760
27761         PR middle-end/39954
27762         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
27763         builtin calls.
27764
27765 2010-01-18  Richard Guenther  <rguenther@suse.de>
27766
27767         PR tree-optimization/42781
27768         * tree-ssa-structalias.c (find_what_var_points_to): Skip
27769         restrict processing only if the original variable was artificial.
27770
27771 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
27772
27773         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
27774         find number of popped argument bytes.
27775
27776         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
27777         Fix the text that describes the return value for invalid insns.
27778
27779         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
27780
27781         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
27782         Clarify what 'cost of the -dependence' is.  Fix quoting.
27783
27784         * toplev.c (default_get_pch_validity): Rename argument to "sz".
27785         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
27786
27787 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
27788
27789         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
27790         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
27791
27792 2010-01-17  Richard Guenther  <rguenther@suse.de>
27793
27794         PR middle-end/42248
27795         * function.c (split_complex_args): Take a VEC to modify.
27796         (assign_parms_augmented_arg_list): Build a VEC instead of
27797         a chain of PARM_DECLs.
27798         (assign_parms_unsplit_complex): Take a VEC of arguments.
27799         Do not fixup unmodified parms.
27800         (assign_parms): Deal with the VEC.
27801         (gimplify_parameters): Likewise.
27802
27803 2010-01-17  Richard Guenther  <rguenther@suse.de>
27804
27805         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
27806         node existence check.
27807         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
27808         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
27809         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
27810         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
27811         (gimple_execute_on_growing_pred): Likewise.
27812
27813 2010-01-17  Richard Guenther  <rguenther@suse.de>
27814
27815         PR tree-optimization/42773
27816         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
27817         (compute_antic_aux): Likewise.
27818         (compute_partial_antic_aux): Likewise.
27819
27820 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
27821
27822         PR debug/42767
27823         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
27824         and US_TRUNCATE.
27825
27826 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
27827
27828         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
27829         appearance.
27830
27831         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
27832         Fix markup for strict argument.
27833
27834         (TARGET_SCHED_REORDER2): Fix argument types.
27835
27836         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
27837         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
27838
27839         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
27840         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
27841
27842         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
27843         Add argument name.
27844
27845         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
27846         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
27847         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
27848         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
27849         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
27850
27851         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
27852
27853         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
27854
27855         (TARGET_ASM_RELOC_RW_MASK): Add return type.
27856         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
27857
27858         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
27859
27860         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
27861         Use prototype.
27862
27863         (TARGET_ASM_NAMED_SECTION): Fix argument list.
27864
27865         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
27866         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
27867
27868         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
27869
27870         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
27871
27872         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
27873         referring to it.  Fix language.
27874
27875         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
27876
27877         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
27878
27879         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
27880
27881         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
27882
27883         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
27884         '@var{stream}.  Remove stray 'and'.
27885
27886         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
27887
27888         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
27889
27890         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
27891
27892         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
27893         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
27894
27895         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
27896         Fix description of return value.
27897         Rename argument "sz" to "len."
27898
27899         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
27900         Clarify meaning of 'true' return value.
27901
27902         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
27903
27904         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
27905         rep_mode versus mode_rep.
27906
27907         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
27908
27909         (TARGET_BUILTIN_DECL): Fix name.
27910
27911         (TARGET_COMMUTATIVE_P): Fix type of first argument.
27912
27913         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
27914
27915         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
27916
27917         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
27918
27919         (TARGET_RELAXED_ORDERING): Use @deftypevr.
27920
27921         (TARGET_GET_DRAP_RTX): Note that this is a hook.
27922         Clarify language.
27923
27924         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
27925         Rename argument tm_fn to md_fn.
27926
27927         (TARGET_OPTION_PRINT): Fix argument list.
27928
27929 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
27930
27931         PR target/42664
27932         * config/i386/i386.c (ix86_fixup_binary_operands):
27933         Revert FMA4 fixup of operands.
27934
27935 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27936
27937         PR gcc/42525
27938         * Makefile.in (write_entries_to_file, install-plugin):
27939         Use \012 instead of \n with tr.
27940
27941 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
27942
27943         * configure.ac (HAVE_AS_REF): New C macro.
27944         * configure: Regenerate.
27945         * config.in: Likewise.
27946         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
27947         if HAVE_AS_REF.
27948         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
27949         if HAVE_AS_REF.
27950
27951 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
27952
27953         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
27954
27955         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
27956
27957         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
27958
27959         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
27960
27961         (TARGET_IN_SMALL_DATA_P): Fix argument type.
27962
27963         (TARGET_BINDS_LOCAL_P): Fix argument type.
27964
27965         (TARGET_ASM_FILE_END): Use prototype.
27966
27967         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
27968
27969         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
27970
27971         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
27972
27973         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
27974
27975         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
27976         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
27977
27978         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
27979         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
27980
27981         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
27982         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
27983         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
27984         (TARGET_ADDR_SPACE_CONVERT): Likewise.
27985
27986         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
27987
27988         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
27989
27990         (TARGET_INIT_BUILTINS): Use prototype.
27991
27992         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
27993         Put 'const char *' in braces.  Fix parameter types.
27994         (TARGET_INVALID_CONVERSION): Fix parameter types.
27995         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
27996         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
27997
27998         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
27999         Fix argument type.
28000
28001         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
28002
28003         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
28004
28005 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
28006
28007         * doc/tm.texi (TARGET_HELP): Fix return type.
28008
28009         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
28010         in braces.  Fix argument types.
28011
28012         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
28013
28014         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
28015
28016         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
28017
28018         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
28019         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
28020
28021         (TARGET_MANGLE_TYPE): Fix argument types.
28022
28023         (TARGET_IRA_COVER_CLASSES): Use prototype.
28024
28025         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
28026
28027         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
28028
28029         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
28030
28031         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
28032
28033         (TARGET_CALLEE_COPIES): Fix argument types.
28034
28035         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
28036
28037         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
28038
28039         (TARGET_FUNCTION_VALUE): Fix argument types.
28040
28041         (TARGET_RETURN_IN_MSB): Fix argument type.
28042
28043         (TARGET_RETURN_IN_MEMORY): Fix argument types.
28044
28045         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
28046
28047         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
28048
28049         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
28050         agree with return type.
28051
28052         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
28053
28054 2010-01-15  Jing Yu  <jingyu@google.com>
28055
28056         PR rtl-optimization/42691
28057         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
28058         a pseudo to a constant and are merged, and adjust comments.
28059
28060 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
28061
28062         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
28063
28064 2010-01-15  Richard Guenther  <rguenther@suse.de>
28065
28066         PR middle-end/42739
28067         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
28068         labels of computed or non-local gotos to the destination.
28069         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
28070         landing pad label is the first label.
28071
28072 2010-01-15  Richard Guenther  <rguenther@suse.de>
28073
28074         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
28075
28076 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
28077
28078         PR target/42747
28079         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
28080         to allow generation of the xssqrtdp instruction on power7.
28081         (sqrtdf2_fpr): Ditto.
28082
28083 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28084
28085         PR middle-end/42674
28086         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
28087         functions with noreturn attribute.
28088
28089         PR c++/42608
28090         * varasm.c (declare_weak): Add weak attribute to decl if it
28091         doesn't have one already.
28092         (assemble_external): Only add decls to weak_decls if they also
28093         have weak attribute.
28094
28095 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
28096
28097         * var-tracking.c (var_reg_delete): Don't delete the association
28098         between REGs and values or one-part variables if the register
28099         isn't clobbered.
28100
28101 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28102
28103         PR debug/42657
28104         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
28105         because its first operand is a non-localized variable.
28106
28107 2010-01-14  Martin Jambor  <mjambor@suse.cz>
28108
28109         PR tree-optimization/42706
28110         * tree-sra.c (encountered_recursive_call): New variable.
28111         (encountered_unchangable_recursive_call): Likewise.
28112         (sra_initialize): Initialize both new variables.
28113         (callsite_has_enough_arguments_p): New function.
28114         (scan_function): Call decl and flags check only for IPA-SRA, check
28115         whether there is a recursive call and whether it has enough arguments.
28116         (all_callers_have_enough_arguments_p): New function.
28117         (convert_callers): Look for recursive calls only when
28118         encountered_recursive_call is set.
28119         (ipa_early_sra): Bail out either if
28120         !all_callers_have_enough_arguments_p or
28121         encountered_unchangable_recursive_call.
28122
28123 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28124
28125         * sel-sched.c: Add 2010 to copyright years.
28126         * sel-sched-ir.c: Likewise.
28127         * sel-sched-ir.h: Likewise.
28128
28129 2010-01-14  Martin Jambor  <mjambor@suse.cz>
28130
28131         PR tree-optimization/42714
28132         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
28133         constructors specially.
28134
28135 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28136
28137         * config/i386/drivers-i386.c (detect_caches_intel):
28138         Add l2sizekb parameter and fill in.
28139         (host_detect_local_cpu): Add l2sizekb, fill in.
28140         Add Atom small cache heuristic.
28141
28142 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28143
28144         * config/i386/drivers-i386.c (detect_caches_cpuid4):
28145         Add level3 parameter and fill in.
28146         (detect_caches_intel): Handle level3 cache.
28147
28148 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28149
28150         * config/i386/drivers-i386.c (host_detect_local_cpu):
28151         Fix core duo detection.
28152
28153 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28154
28155         * config/i386/drivers-i386.c (host_detect_local_cpu):
28156         Fix Atom detection.
28157
28158 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28159
28160         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
28161         (rs6000_variable_issue_1): this.  Use...
28162         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
28163
28164 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28165
28166         * sel-sched-ir.c (sel_restore_other_notes): Rename to
28167         sel_restore_notes.  Update all callers.  Call reemit_notes
28168         for all insns.
28169
28170 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28171
28172         PR rtl-optimization/42246
28173         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
28174         loops.
28175
28176 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28177
28178         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
28179         all successors is the same as number of successors in current region.
28180
28181 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28182
28183         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
28184         to rename is not separable.  Otherwise check that its LHS is not NULL.
28185
28186 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28187
28188         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
28189
28190 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28191
28192         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
28193         available registers when failed to discover LHS register class.
28194         Fix indentation.  Update comment.
28195
28196 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28197             Alexander Monakov  <amonakov@ispras.ru>
28198
28199         PR rtl-optimization/42389
28200         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
28201         to can_issue_more.
28202         (advance_state_on_fence): Likewise.
28203         (sel_target_adjust_priority): Print debug output only when
28204         sched_verbose >= 4, not 2.
28205         (get_expr_cost): Do not issue all unique insns on the next cycle.
28206         (fill_insns): Initialize can_issue_more from the value saved
28207         with the fence.
28208         * sel-sched-ir.c (flist_add): New parameter issue_more.
28209         Init FENCE_ISSUE_MORE with it.
28210         (merge_fences): Likewise.
28211         (init_fences): Update call to flist_add.
28212         (add_to_fences, add_clean_fence_to_fences)
28213         (add_dirty_fence_to_fences): Likewise.
28214         (move_fence_to_fences): Update call to merge_fences.
28215         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
28216         sched groups.
28217         * sel-sched-ir.h (struct _fence): New field issue_more.
28218         (FENCE_ISSUE_MORE): New accessor macro.
28219
28220 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28221
28222         PR rtl-optimization/42388
28223         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
28224         that have no predecessors nor successors.  Do not call move_bb_info
28225         for empty blocks outside of current region.
28226
28227 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28228
28229         PR rtl-optimization/42294
28230         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
28231         * sel-sched.c (move_exprs_to_boundary): Transitively add all
28232         originators' originators.
28233
28234 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28235
28236         PR rtl-optimization/39453
28237         PR rtl-optimization/42246
28238         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
28239         for pipelining_p.
28240         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
28241
28242 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28243             Alexander Monakov  <amonakov@ispras.ru>
28244
28245         PR middle-end/42245
28246         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
28247         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
28248         argument.  Update all callers.
28249         (tidy_control_flow): ... and here.  Recompute topological order
28250         of basic blocks in region if necessary.
28251         (sel_redirect_edge_and_branch): Change return type.  Return true
28252         if topological order might have been invalidated.
28253         (purge_empty_blocks): Export and move from...
28254         * sel-sched.c (purge_empty_blocks): ... here.
28255         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
28256         (maybe_tidy_empty_bb): Delete prototype.
28257         (purge_empty_blocks): Declare.
28258
28259 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28260
28261         PR rtl-optimization/42249
28262         * sel-sched.c (try_replace_dest_reg): When chosen register
28263         and original register is the same, do not bail out early, but
28264         still check all original insns for validity of replacing destination
28265         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
28266         in this case.
28267
28268 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28269
28270         PR c/42721
28271         Port from no-undefined-overflow branch:
28272         2009-03-09  Richard Guenther  <rguenther@suse.de>
28273
28274         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
28275
28276 2010-01-14  Richard Guenther  <rguenther@suse.de>
28277
28278         PR lto/42665
28279         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
28280
28281 2010-01-14  Ira Rosen  <irar@il.ibm.com>
28282
28283         PR tree-optimization/42709
28284         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
28285         as scalar type in creation of constant vector operand.
28286
28287 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28288
28289         PR testsuite/42414
28290         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
28291         (check-parallel-%): Match `testsuite' directory component only
28292         at the end.
28293
28294 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
28295
28296         PR translation/39521
28297         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
28298         strings with _().
28299
28300 2010-01-13  Richard Guenther  <rguenther@suse.de>
28301
28302         PR tree-optimization/42730
28303         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
28304         offset zero.
28305
28306 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
28307
28308         PR target/pr42542
28309         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
28310         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
28311         them signed.
28312
28313 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
28314
28315         * config/bfin/libgcc-bfin.ver: Regenerate based on current
28316         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
28317         ___umulsi3_highpart.
28318
28319         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
28320         rather than schedule_insns if the pass is enabled.
28321
28322 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28323
28324         PR tree-optimization/42704
28325         * tree-sra.c (sra_modify_assign): Do not delete assignments to
28326         SSA_NAMEs.
28327
28328 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28329
28330         PR tree-optimization/42703
28331         * tree-sra.c (analyze_access_subtree): Check that we can build a
28332         reference to the original data within the aggregate.
28333
28334 2010-01-13  Richard Guenther  <rguenther@suse.de>
28335
28336         PR tree-optimization/42705
28337         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
28338
28339 2010-01-13  Richard Guenther  <rguenther@suse.de>
28340
28341         PR middle-end/42716
28342         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
28343
28344 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
28345
28346         PR debug/41371
28347         * var-tracking.c (values_to_unmark): New variable.
28348         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
28349         values_to_unmark vector.  Moved body to...
28350         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
28351         instead queue it into values_to_unmark vector.
28352         (vt_find_locations): Free values_to_unmark vector.
28353
28354 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
28355
28356         * config/s390/s390.c (override_options): Set
28357         default of max-pending-list-length to 256
28358
28359 2010-01-13  Richard Guenther  <rguenther@suse.de>
28360
28361         PR lto/42678
28362         * tree-pass.h (PROP_gimple_lcx): New.
28363         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
28364         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
28365         before the final cleanup_eh.
28366         (dump_properties): Dump PROP_gimple_lcx.
28367         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
28368         (tree_lower_complex_O0): Remove.
28369         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
28370         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
28371         tree_lower_complex, schedule TODO_update_ssa.
28372         * lto-streamer-out.c (output_function): Stream the functions
28373         properties.
28374         * lto-streamer-in.c (input_function): Likewise.
28375         (lto_read_body): Do not override them here.
28376
28377 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
28378
28379         PR c/42708
28380         * c-typeck.c (build_c_cast): Fold value cast to union type before
28381         wrapping it in a CONSTRUCTOR.
28382
28383 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
28384
28385         PR rtl-optimization/42699
28386         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
28387         involved.
28388
28389 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28390
28391         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28392         SUBTARGET_WARN_UNUSED_SPEC): Move ...
28393         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28394         SUBTARGET_WARN_UNUSED_SPEC): ... here
28395         * config/mips/iris5.h (LIBGCC_SPEC): Define.
28396
28397 2010-01-12  Julian Brown  <julian@codesourcery.com>
28398
28399         * config/arm/neon-schedgen.ml (Utils): Don't try to
28400         open missing module.
28401         (find_with_result): New.
28402
28403 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
28404
28405         PR debug/42662
28406         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
28407         sharing when canonicalizing ({lt,ge}u (plus a b) b).
28408
28409         PR tree-optimization/42645
28410         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
28411         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
28412         decl_map, set processing_debug_stmt to -1 and return name without
28413         any remapping.
28414
28415 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
28416
28417         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
28418         binutils version, and reword target configuration description.
28419
28420 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
28421
28422         * config/avr/avr.h (LINKER_NAME): Remove.
28423
28424 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
28425
28426         PR target/42416
28427         * config/rs6000/rs6000.c (rs6000_override_options): On targets
28428         that support VSX, warn for -mno-altivec if vsx is not disabled,
28429         and disable vsx.
28430
28431 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
28432             Shujing Zhao  <pearly.zhao@oracle.com>
28433
28434         PR translation/42469
28435         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
28436         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
28437         character between option name and help text.
28438         * c.opt (imultilib): Likewise.
28439
28440 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
28441
28442         * lto-streamer-out.c (output_unreferenced_globals): Output static
28443         variables.
28444
28445 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
28446
28447         PR rtl-optimization/42621
28448         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
28449         optimizing for size.
28450         (duplicate_computed_gotos): Remove now-redundant check.
28451
28452 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
28453
28454         PR target/37454
28455         * configure.ac: Save and restore LDFLAGS and LIBS
28456         * configure: Regenerate.
28457
28458 2010-01-10  Richard Guenther  <rguenther@suse.de>
28459
28460         PR middle-end/42667
28461         * builtins.c (fold_builtin_strlen): Add type argument and
28462         convert the resulting length to it.
28463         (fold_builtin_1): Adjust.
28464
28465 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
28466
28467         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
28468         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
28469         1 insn.
28470         (num_insns_constant_wide): Adjust for that change.
28471
28472 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28473
28474         PR debug/42631
28475         * web.c (union_defs): Add used argument, to combine uses of
28476         uninitialized regs.
28477         (entry_register): Adjust type and tests of used argument.
28478         (web_main): Widen used for new use.  Pass it to union_defs.
28479         * df.h (union_defs): Adjust prototype.
28480
28481 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28482
28483         PR debug/42630
28484         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
28485         uses in new incoming argument.  Free body.
28486         (reset_debug_uses_in_loop): New.
28487         (analyze_insn_to_expand_var): Call the latter if the former found
28488         anything.  Fix whitespace.  Reject invalid dest overlaps before
28489         going through all insns in the loop.
28490
28491 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28492
28493         PR debug/42629
28494         * haifa-sched.c (dying_use_p): Debug insns don't count.
28495
28496 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28497
28498         PR middle-end/42363
28499         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
28500         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
28501         (verify_gimple_call): Reject LHS in noreturn calls.
28502
28503 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28504
28505         PR debug/42604
28506         PR debug/42395
28507         * tree-vect-loop-manip.c (adjust_info): New type.
28508         (adjust_vec): New pointer to vector.
28509         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
28510         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
28511         (slpeel_update_phis_for_duplicate_loop): Use them.
28512         (slpeel_update_phi_nodes_for_guard1): Likewise.
28513         (slpeel_update_phi_nodes_for_guard2): Likewise.
28514         (slpeel_tree_peel_loop_to_edge): Likewise.
28515         (vect_update_ivs_after_vectorizer): Likewise.
28516
28517 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28518
28519         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
28520         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
28521
28522 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28523
28524         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
28525         bogus uninitialized warning.
28526
28527 2010-01-09  Richard Guenther  <rguenther@suse.de>
28528
28529         PR middle-end/42512
28530         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
28531         the evolution is compatible with the initial condition.
28532
28533 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
28534
28535         * gcc.c (process_command): Update copyright notice dates.
28536         * gcov.c (print_version): Likewise.
28537         * gcov-dump.c (print_version): Likewise.
28538         * mips-tfile.c (main): Likewise.
28539         * mips-tdump.c (main): Likewise.
28540
28541 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
28542
28543         PR target/41885
28544         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
28545         (rotlhi3): Delete.
28546         (rotlhi3_8): Delete.
28547         (rotlsi3): Delete.
28548         (rotlsi3_8): Delete.
28549         (rotlsi3_16): Delete.
28550         (rotlsi3_24): Delete.
28551         (rotl<mode>3): New.
28552         (*rotw<mode>3): New.
28553         (*rotb<mode>3): New.
28554         * config/avr/avr.c (avr_rotate_bytes): New function.
28555         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
28556
28557 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
28558
28559         PR target/37454
28560         * configure.ac: Modify -rdynamic check.
28561         * configure: Regenerate.
28562
28563 2010-01-08  DJ Delorie  <dj@redhat.com>
28564
28565         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
28566         register popping order.
28567
28568 2010-01-08  Richard Guenther  <rguenther@suse.de>
28569
28570         PR lto/42528
28571         * c.opt (fsigned-char): Also let LTO handle this option.
28572         (funsigned-char): Likewise.
28573
28574 2010-01-07  Richard Guenther  <rguenther@suse.de>
28575
28576         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
28577         (gimple_op): Likewise.
28578         (gimple_op_ptr): Likewise.
28579         (gimple_assign_set_lhs): Remove gcc_assert.
28580         (gimple_assign_set_rhs1): Likewise.
28581         (gimple_assign_set_rhs2): Likewise.
28582         (gimple_call_set_lhs): Likewise.
28583         (gimple_call_set_fn): Likewise.
28584         (gimple_call_set_fndecl): Likewise.
28585         (gimple_call_fndecl): Likewise.
28586         (gimple_call_return_type): Likewise.
28587         (gimple_call_set_chain): Likewise.
28588         (gimple_call_num_args): Likewise.
28589         (gimple_call_set_arg): Likewise.
28590         (gimple_cond_set_code): Likewise.
28591         (gimple_cond_set_lhs): Likewise.
28592         (gimple_cond_set_rhs): Likewise.
28593         (gimple_cond_set_true_label): Likewise.
28594         (gimple_cond_set_false_label): Likewise.
28595         (gimple_label_set_label): Likewise.
28596         (gimple_goto_set_dest): Likewise.
28597         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
28598         (gimple_debug_bind_get_value): Likewise.
28599         (gimple_debug_bind_get_value_ptr): Likewise.
28600         (gimple_debug_bind_set_var): Likewise.
28601         (gimple_debug_bind_set_value): Likewise.
28602         (gimple_debug_bind_reset_value): Likewise.
28603         (gimple_debug_bind_has_value_p): Likewise.
28604         (gimple_return_retval_ptr): Remove gcc_assert.
28605         (gimple_return_retval): Likewise.
28606         (gimple_return_set_retval): Likewise.
28607         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
28608         (safe_referenced_var_iterator): Remove.
28609         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
28610         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
28611         (fill_referenced_var_vec): Remove.
28612         (first_readonly_imm_use): Remove redundant gcc_assert.
28613         (phi_arg_index_from_use): Combine gcc_asserts.
28614         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
28615         (first_imm_use_stmt): Remove redundant gcc_assert.
28616         * tree-cfg.c (verify_gimple_call): Verify function and chain
28617         operands.  Verify arguments.
28618         (verify_types_in_gimple_stmt): Verify condition code and labels.
28619
28620 2010-01-07  Richard Guenther  <rguenther@suse.de>
28621
28622         PR tree-optimization/42641
28623         * sese.c (rename_map_elt_info): Use the SSA name version, do
28624         not hash pointers.
28625
28626 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
28627
28628         PR tree-optimization/42625
28629         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
28630         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
28631
28632 2010-01-07  Duncan Sands  <baldrick@free.fr>
28633
28634         * Makefile.in (PLUGIN_HEADERS): Add version.h.
28635
28636 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
28637
28638         PR target/42511
28639         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
28640         note itself is not function_invariant_p.
28641
28642 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
28643
28644         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
28645         Do not add the DF_NOTE problem.
28646         * store-motion.c (execute_rtl_store_motion): Likewise.
28647
28648 2010-01-07  Martin Jambor  <mjambor@suse.cz>
28649
28650         PR tree-optimization/42157
28651         * tree-sra.c (compare_access_positions): Stabilize sort if both
28652         accesses have integer types, return zero immediately if they are the
28653         same.
28654
28655 2010-01-06  Richard Henderson  <rth@redhat.com>
28656
28657         PR middle-end/41883
28658         * haifa-sched.c (add_to_note_list): Merge into ...
28659         (concat_note_lists): ... here, and ...
28660         (unlink_other_notes, rm_other_notes): Merge into...
28661         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
28662         NOTE_INSN_EPILOGUE_BEG.
28663
28664 2010-01-06  Richard Guenther  <rguenther@suse.de>
28665
28666         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
28667         not inline regular functions into always-inline functions.
28668
28669 2010-01-06  Nick Clifton  <nickc@redhat.com>
28670
28671         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
28672         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
28673         used together.
28674         (OVERRIDE_OPTIONS): Delete.
28675         (OPTIMIZATION_OPTIONS): Define.
28676         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
28677         * config/rx/rx.c (rx_handle_option): Issue an error message if
28678         -mcpu=rx200 and -fpu are used together.
28679         (rx_set_optimization_options): New function.  Issue an error
28680         message if an optimization attribute attempts to reset the FPU/
28681         math optimization pairing.
28682         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
28683         * config/rx/rx.opt: Set the default to 32-bit doubles.
28684         * config/rx/t-rx: Add multilibs for -nofpu option.
28685         * doc/invoke.texi: Update documentation of RX options.
28686
28687 2010-01-06  Richard Guenther  <rguenther@suse.de>
28688
28689         * tree-ssa-pre.c (name_to_id): New global.
28690         (alloc_expression_id): Simplify SSA name handling.
28691         (lookup_expression_id): Likewise.
28692         (init_pre): Zero name_to_id.
28693         (fini_pre): Free it.
28694
28695 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
28696
28697         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
28698
28699 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
28700
28701         PR target/42542
28702         * config/i386/sse.md (smaxv2di3): New.
28703         (umaxv2di3): Likewise.
28704         (sminv2di3): Likewise.
28705         (uminv2di3): Likewise.
28706
28707 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
28708
28709         PR target/42564
28710         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
28711         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
28712         (legitimize_tls_address): Likewise.
28713         (sparc_tls_referenced_p): Likewise.
28714         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
28715         and adjust calls to legitimize_pic_address.
28716         (legitimate_constant_p) Use sparc_tls_referenced_p.
28717         (legitimate_pic_operand_p): Likewise.
28718         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
28719         (sparc_tls_symbol_ref_1): Delete.
28720         (sparc_tls_referenced_p): Make static, recognize specific patterns.
28721         (legitimize_tls_address): Make static, handle CONST patterns.
28722         (legitimize_pic_address): Make static, remove unused parameter and
28723         adjust recursive calls.
28724         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
28725         and adjust call to legitimize_pic_address.
28726         (sparc_output_mi_thunk): Likewise.
28727
28728 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
28729             H.J. Lu  <hongjiu.lu@intel.com>
28730
28731         PR target/42542
28732         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
28733         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
28734         operands to make them signed.
28735
28736         Revert:
28737         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
28738
28739         PR target/42542
28740         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
28741         GTU to GT for V4SI and V2DI.
28742
28743         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
28744         (umin<mode>3): Removed.
28745         (uminv8hi3): New.
28746         (uminv4si3): Likewise.
28747
28748 2010-01-05  Martin Jambor  <mjambor@suse.cz>
28749
28750         PR tree-optimization/42462
28751         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
28752         current_function_decl to helper functions and macros.
28753
28754 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28755
28756         PR bootstrap/41771
28757         * flags.h: Don't include real.h.
28758         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
28759         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
28760         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
28761         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
28762         * dominance.c: Update copyright.
28763         * gimple.c (walk_gimple_op): Remove inline.
28764         * tree-ssa-reassoc.c: Include real.h.
28765         * Makefile.in (FLAGS_H): Remove $(REAL_H).
28766         (tree-ssa-reassoc.o): Depend on $(REAL_H).
28767
28768 2010-01-05  Nick Clifton  <nickc@redhat.com>
28769
28770         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
28771         register to push into the stack frame when the accumulator has to
28772         be saved during interrupts.
28773
28774 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
28775
28776         * doc/invoke.texi: Remove the documentation about option
28777         -Wunreachable-code.
28778         * common.opt (Wunreachable-code):  Preserved for backward
28779         compatibility.
28780         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
28781         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
28782         the backward compatibility flag section.
28783
28784 2010-01-05  Richard Guenther  <rguenther@suse.de>
28785
28786         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
28787
28788 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
28789
28790         PR other/42611
28791         * cfgexpand.c (expand_one_var): Diagnose too large variables.
28792
28793         PR tree-optimization/42508
28794         * tree-sra.c (convert_callers): Check for recursive call
28795         by comparing cgraph nodes instead of decls.
28796         (modify_function): Call ipa_modify_formal_parameters also
28797         on all same_body aliases.
28798
28799         * cgraphunit.c (cgraph_materialize_all_clones): Compare
28800         cgraph nodes when checking for same_body aliases.
28801
28802 2010-01-05  Richard Guenther  <rguenther@suse.de>
28803
28804         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
28805         allocation and lookup.
28806         (get_or_alloc_expr_for_constant): Likewise.
28807         (phi_translate): Sink allocation.
28808
28809 2010-01-04  Richard Guenther  <rguenther@suse.de>
28810
28811         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
28812         a new entry only if needed.
28813         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
28814         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
28815         hashtable lookup.
28816         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
28817         the result array.
28818         (phi_translate): Handle CONSTANTs early.
28819
28820 2010-01-04  Martin Jambor  <mjambor@suse.cz>
28821
28822         PR tree-optimization/42398
28823         * tree-sra.c (struct access): Removed flag grp_different_types.
28824         (dump_access): Do not dump the removed flag.
28825         (sort_and_splice_var_accesses): Do not set the removed flag.
28826         (sra_modify_expr): Check for type compatibility directly.
28827
28828 2010-01-04  Martin Jambor  <mjambor@suse.cz>
28829
28830         PR tree-optimization/42366
28831         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
28832         edges with variable number of parameters.
28833         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
28834         flag instead of asserting it.
28835         (ipa_read_node_info): Read uses_analysis_done flag.
28836
28837 2010-01-04  Richard Guenther  <rguenther@suse.de>
28838
28839         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
28840         iterative_hash_* as intended.
28841         (vn_reference_compute_hash): Likewise.  Simplify hashing
28842         SSA names.
28843         (vn_reference_lookup_2): Likewise.
28844         (vn_nary_op_compute_hash): Likewise.
28845         (vn_phi_compute_hash): Likewise.
28846         (expressions_equal_p): Remove strange code.
28847         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
28848         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
28849         (bitmap_insert_into_set_1): Take value-id as parameter.
28850         (add_to_value): Pass it.
28851         (bitmap_insert_into_set): Likewise.
28852         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
28853
28854 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
28855
28856         PR driver/42442
28857         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
28858         (do_self_spec): For switches with SWITCH_IGNORE set set also
28859         SWITCH_IGNORE_PERMANENTLY.
28860         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
28861         of SWITCH_IGNORE.
28862
28863 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
28864
28865         * lto-streamer-out.c (output_unreferenced_globals): Output the full
28866         tree of an unreferenced global var.
28867
28868 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
28869
28870         PR target/42542
28871         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
28872         GTU to GT for V4SI and V2DI.
28873
28874         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
28875         (umin<mode>3): Removed.
28876         (uminv8hi3): New.
28877         (uminv4si3): Likewise.
28878
28879 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
28880
28881         PR lto/42581
28882         * collect2.c (main): Turn on trace in collect2 if -v is passed
28883         to gcc with LTO.
28884
28885 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
28886
28887         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
28888         description of expression operand.
28889
28890 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
28891
28892         * configure.ac: Add install-html to target_list for Make-hooks.
28893         * configure: Regenerate.
28894         * fortran/Make-lang.in (F95_HTMLFILES): New.
28895         (fortran.html): Use it.
28896         (fortran.install-html): New.
28897         * Makefile.in (install-html): Add lang.install-html.
28898         * java/Make-lang.in (JAVA_HTMLFILES): New.
28899         (java.html): Use it.
28900         (java.install-html): New.
28901         * objc/Make-lang.in (objc.install-html): New.
28902         * objcp/Make-lang.in (obj-c++.install-html): New.
28903         * cp/Make-lang.in (c++.install-html): New.
28904         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
28905         * lto/Make-lang.in (lto.install-html): New.
28906
28907 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
28908
28909         PR lto/42520
28910         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
28911
28912 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
28913
28914         PR rtl-optimization/41862
28915         * store-motion.c (store_killed_in_insn, compute_store_table,
28916         remove_reachable_equiv_notes, replace_store_insn,
28917         build_store_vectors): Ignore all DEBUG_INSNs.
28918
28919 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
28920
28921         PR lto/41564
28922         * common.opt: Add dumpdir.
28923
28924         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
28925         isn't specified.
28926         (option_map): Add --dumpdir.
28927
28928         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
28929
28930         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
28931
28932         * opts.c (decode_options): Try dump_dir_name first if
28933         dump_base_name isn't an absolute path.
28934         (common_handle_option): Handle OPT_dumpdir.
28935
28936         * toplev.c (dump_dir_name): New.
28937         (print_switch_values): Also ignore -dumpdir.
28938
28939         * toplev.h (dump_dir_name): New.
28940
28941 2010-01-03  Richard Guenther  <rguenther@suse.de>
28942
28943         PR tree-optimization/42589
28944         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
28945         double-word expansion of bswap32.
28946
28947 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
28948
28949         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
28950         with BLOCK_FOR_INSN.
28951         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
28952         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
28953         noce_process_if_block): Likewise.
28954         * gcse.c (compute_local_properties, insert_expr_in_table,
28955         insert_set_in_table, canon_list_insert, find_avail_set,
28956         pre_insert_copy_insn): Likewise.
28957
28958         * basic-block.h (BLOCK_NUM): Move from here...
28959         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
28960
28961 2010-01-03  Richard Guenther  <rguenther@suse.de>
28962
28963         PR tree-optimization/42438
28964         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
28965         contains_may_not_return_call flag.
28966         (BB_MAY_NOTRETURN): New.
28967         (valid_in_sets): Trapping nary operations are not valid
28968         in blocks that may not return.
28969         (insert_into_preds_of_block): Remove check for trapping expressions.
28970         (compute_avail): Compute also BB_MAY_NOTRETURN.
28971
28972 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
28973
28974         * doc/invoke.texi: Add 2010 to copyright years.
28975
28976 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
28977
28978         * config/sparc/sparc.c: Fix formatting nits.
28979
28980 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
28981             Alexander Monakov  <amonakov@ispras.ru>
28982
28983         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
28984
28985 2010-01-02  Richard Guenther  <rguenther@suse.de>
28986
28987         PR middle-end/42577
28988         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
28989         (simplify_switch_using_ranges): Mark to be removed edges
28990         as non-executable.
28991
28992 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28993
28994         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
28995
28996         * collect2.c (scan_libraries): Add missing argument in call to
28997         scan_prog_file.
28998
28999 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
29000
29001         PR target/42448
29002         * config/alpha/predicates.md (aligned_memory_operand): Return false
29003         for CQImode.
29004         (unaligned_memory_operand): Return true for CQImode.
29005         * config/alpha/alpha.c (get_aligned_mem): Assert that location
29006         doesn not cross aligned SImode word boundary.
29007
29008 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
29009
29010         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
29011         Remove.
29012         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
29013         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
29014
29015 2010-01-02  Richard Guenther  <rguenther@suse.de>
29016
29017         PR lto/41597
29018         * toplev.c (compile_file): Emit LTO marker properly.  Change
29019         it to __gnu_lto_v1.
29020         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
29021
29022 2010-01-01  Richard Guenther  <rguenther@suse.de>
29023
29024         PR debug/42455
29025         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
29026
29027 2010-01-01  Richard Guenther  <rguenther@suse.de>
29028
29029         PR c/42570
29030         * c-decl.c (grokdeclarator): For zero-size arrays force
29031         structural equality checks as layout_type does.
29032
29033 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
29034
29035         * builtins.c: Update copyright to 2010.
29036
29037 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
29038
29039         PR lto/42531
29040         * lto-streamer-out.c (produce_asm): Revert the last change.
29041         (copy_function): Likewise.
29042
29043         * lto-streamer.c (lto_get_section_name): Skip any leading
29044         asterisk in name.
29045
29046 2010-01-01  Richard Guenther  <rguenther@suse.de>
29047
29048         PR middle-end/42559
29049         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
29050         for LABEL_DECLs.
29051
29052 \f
29053 Copyright (C) 2010 Free Software Foundation, Inc.
29054
29055 Copying and distribution of this file, with or without modification,
29056 are permitted in any medium without royalty provided the copyright
29057 notice and this notice are preserved.