OSDN Git Service

* config/mips/mips.h (target_flags_explicit): Declare for
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
2
3         * config/mips/mips.h (target_flags_explicit): Declare for
4         GENERATOR_FILE.
5
6 2010-10-04  Andi Kleen <ak@linux.intel.com>
7
8         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9         gcov-dump, cc1-dummy, genprog, build/gcov-iov):
10         Add + to build rule.
11
12 2010-10-04  Matthias Klose  <doko@ubuntu.com>
13
14         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
15         multilib osdirname if it exists.
16         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
17
18 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
19
20         PR middle-end/45876
21         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
22         arg0's type or its unsigned counterpart as utype.  Convert
23         arg1 to utype unconditionally.
24
25 2010-10-04  Julian Brown  <julian@codesourcery.com>
26
27         * expr.c (expand_assignment): Add assertion to prevent emitting
28         null rtx for movmisalign pattern.
29         (expand_expr_real_1): Likewise.
30         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
31         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
32         (arm_vector_alignment_reachable): New.
33         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
34         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
35         (arm_print_operand): Include alignment qualifier in %A.
36         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
37         (movmisalign<mode>): New expander.
38         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
39         insn patterns.
40
41 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
42
43         * optc-gen.awk: Define global_options_set.  Don't define
44         target_flags_explicit.
45         * opth-gen.awk: Declare global_options_set.  Define
46         target_flags_explicit as macro.
47         * opts-common.c (handle_option): Take opts_set and generated_p
48         parameters.
49         (handle_generated_option, read_cmdline_option, set_option): Take
50         opts_set parameter.
51         (set_option): Use opts_set instead of hardcoding target_flags and
52         target_flags_explicit.
53         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
54         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
55         flag_value_profile_transformations_set, flag_peel_loops_set,
56         flag_branch_probabilities_set, flag_inline_functions_set,
57         flag_ipa_cp_set, flag_ipa_cp_clone_set,
58         flag_predictive_commoning_set, flag_unswitch_loops_set,
59         flag_gcse_after_reload_set): Remove.
60         (common_handle_option, lang_handle_option, target_handle_option):
61         Take opts_set parameter.  Assert that it is &global_options_set.
62         (common_handle_option): Don't set _set variables.  Check opts_set
63         instead of such variables.
64         (enable_warning_as_error): Pass &global_options_set to
65         handle_generated_option.
66         * opts.h (cl_option_handler_func.handler, set_option,
67         handle_option, handle_generated_option, read_cmdline_option): Add
68         opts_set parameters.
69         (handle_option): Add generated_p parameter.
70         * config/i386/i386.c (ix86_function_specific_save,
71         ix86_function_specific_restore): Updat for renaming of
72         target_flags_explicit field.
73         * config/i386/i386.opt (target_flags_explicit): Rename to
74         ix86_target_flags_explicit.
75         * config/ia64/ia64.c (ia64_override_options_after_change): Check
76         global_options_set.x_flag_selective_scheduling and
77         global_options_set.x_flag_selective_scheduling2, not
78         sel_sched_switch_set.
79         * flags.h (sel_sched_switch_set,
80         flag_speculative_prefetching_set): Remove.
81         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
82         that it is &global_options_set.
83         (process_command): Pass &global_options_set to
84         read_cmdline_option.
85         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
86         set_option.
87         * toplev.c (target_flags_explicit): Remove.
88
89 2010-10-04  Jan Hubicka  <jh@suse.cz>
90
91         PR middle-end/45871
92         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
93         use get_ref_base_and_offset to handle references.
94         (fold_const_aggregate_ref): Update.
95
96 2010-10-04  Martin Jambor  <mjambor@suse.cz>
97
98         PR tree-optimization/45572
99         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
100         ipa_check_create_node_params.
101         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
102
103 2010-10-04  Yao Qi  <yao@codesourcery.com>
104
105         * doc/passes.texi: Clean up.
106
107 2010-10-03  Ian Lance Taylor  <iant@google.com>
108
109         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
110         referring to a field using a typedef name.
111         (find_anonymous_field_with_type): New static function.
112         (convert_to_anonymous_field): New static function.
113         (convert_for_assignment): If -fplan9-extensions, permit converting
114         pointer to struct to pointer to anonymous field.
115         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous
116         fields.
117         (is_duplicate_field): New static function.
118         (detect_field_duplicates_hash): If -fplan9-extensions, check for
119         typedef names duplicating field names.
120         (detect_field_duplicates): Likewise.
121         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
122         (C Dialect Options): Document -fplan9-extensions.
123         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
124
125 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
126
127         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
128         revision 164914.
129         (vect_create_data_ref_ptr): Likewise.
130         * tree-vect-stmts.c (vectorizable_store): Likewise.
131         (perm_mask_for_reverse): Likewise.
132         (reverse_vec_elements): Likewise.
133         (vectorizable_load): Likewise.
134
135 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
136
137         * cppbuiltin.c: New file.
138         * cppbuiltin.h: New file.
139         * Makefile.in: Take into account cppbuiltin.{h,c}.
140
141 2010-10-03  Andi Kleen <ak@linux.intel.com>
142
143         * lto-cgraph.c (input_cgraph): Check for missing sections.
144
145 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
146
147         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 preticate
148         to nonimmediate_operand.  Force operand 2 to register when allowed.
149         (*<shiftrt_insn><mode>3_mask): Ditto.
150         (*<rotate_insn><mode>3_mask): Ditto.
151
152 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
153
154         PR tree-optimization/45720
155         PR tree-optimization/45764
156         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
157         Don't accept backwards consecutive accesses.
158         (vect_create_data_ref_ptr): Disallow negative steps.
159
160         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
161         (perm_mask_for_reverse): Removed.
162         (reverse_vec_elements): Likewise.
163         (vectorizable_load): Don't handle negative steps.
164
165 2010-10-02  Jan Hubicka  <jh@suse.cz>
166
167         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
168         call destination is known.
169
170 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
171
172         PR target/45820
173         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
174         earlier.
175
176 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
177
178         * doc/install.texi (Configuration): Document build_configargs,
179         host_configargs, target_configargs.
180
181 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
182
183         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
184         (*<shiftrt_insn><mode>3_mask): Ditto.
185         (*<rotate_insn><mode>3_mask): Ditto.
186
187 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
188
189         PR tree-optimization/44716
190         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
191         (HOT_TEXT_SECTION_NAME): Define.
192
193 2010-10-01  Nick Clifton  <nickc@redhat.com>
194
195         * common.opt: Add -fcombine-stack-adjustments.
196         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
197         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
198         flag_combine_stack_adjustments.
199         * doc/invoke.texi: Document the new option.
200
201 2010-10-01  Richard Guenther  <rguenther@suse.de>
202
203         PR tree-optimization/45854
204         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
205
206 2010-10-01  Anthony Green  <green@moxielogic.com>
207
208         * config.gcc: Fix moxie-*-rtems* configuration.
209
210 2010-10-01  Richard Guenther  <rguenther@suse.de>
211
212         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
213         (gen_decl_die): Likewise.
214
215 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
216
217         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
218         to the function code for SPU MD builtins.
219         (spu_expand_builtin): Update.
220         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
221
222 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
223
224         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
225         sjlj_except_unwind_info.
226
227 2010-10-01  Tristan Gingold  <gingold@adacore.com>
228
229         * configure.ac: Define the nop insn for avr*-*-*
230         * configure: Regenerate.
231
232 2010-10-01  Alan Modra  <amodra@gmail.com>
233
234         PR target/45807
235         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
236         extend toc_restore_insn.
237
238 2010-09-30  Richard Guenther  <rguenther@suse.de>
239
240         PR tree-optimization/43959
241         * function.c (gimplify_parameters): Use create_tmp_reg instead of
242         create_tmp_var.
243
244 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
245
246         * config/sh/sh.c (sh_expand_prologue): Set
247         current_function_static_stack_size.
248
249 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
250
251         * configure.ac: Check for Solaris 8 ld with .hidden support.
252         * configure: Regenerate.
253
254 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
255
256         PR middle-end/45758
257         * graphite.c (graphite_initialize): Call scev_reset.
258
259 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
260
261         * sese.h (scev_analyzable_p): Return false for real or floating
262         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
263
264 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
265
266         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
267         and ps.
268         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
269         domain.
270         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
271         Do not allocate ub_expr, it is passed in initialized.
272
273 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
274
275         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
276         (build_cloog_prog): Dump CLooG input file when
277         flag_graphite_dump_cloog is set.  This is disabled on trunk.
278         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
279
280 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
281
282         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
283         verify_dominators for CDI_POST_DOMINATORS.
284         * sese.h: Remove comment about CDI_POST_DOMINATORS.
285         (recompute_all_dominators): Remove call to free_dominance_info
286         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
287         for CDI_POST_DOMINATORS.
288
289 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
290
291         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
292         over pbb_dim_iter_domain.
293
294 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
295
296         * graphite-flattening.c: Fix comments.
297
298 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
299
300         * Makefile.in (OBJS-common): Add graphite-flattening.o.
301         (graphite-flattening.o): New rule.
302         * common.opt (floop-flatten): New flag.
303         * doc/invoke.texi (-floop-flatten): Documented.
304         * graphite-flattening.c: New.
305         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
306         * graphite-poly.h (flatten_all_loops): Declared.
307         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
308         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
309         is set, also set flag_graphite.
310
311 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
312
313         * graphite-poly.c (cloog_checksum): New.
314         * graphite-poly.h (cloog_checksum): Declared.
315
316 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
317
318         * graphite-poly.c (pbb_number_of_iterations): Removed.
319         (pbb_number_of_iterations_at_time): Correctly compute the number
320         of iterations in the transformed loop.
321         * graphite-poly.h (pbb_number_of_iterations): Removed.
322
323 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
324
325         * graphite-poly.h (lst_update_scattering_seq): Removed.
326         (lst_update_scattering): Correctly handle outermost loop dewey
327         renumbering.
328
329 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
330
331         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
332         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
333         * graphite-poly.h (lst_niter_for_loop): New.
334
335 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
336
337         * graphite-poly.c (apply_poly_transforms): Do not abort when the
338         transform read from disk is not legal.  Call fatal_error instead.
339
340 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
341
342         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
343         (print_scop_header): Removed.  Inlined in the only call place...
344         (print_scop): ... here.
345
346 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
347
348         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
349
350 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
351
352         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
353
354 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
355
356         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
357         (dot_deps_stmt): Same.
358         * graphite-poly.c (dot_lst): Same.
359
360 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
361
362         * graphite-blocking.c (scop_do_strip_mine): Do not call
363         graphite_legal_transform.
364         (scop_do_block): Same.
365
366 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
367
368         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
369         description.
370
371 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
372
373         * tree-scalar-evolution.c (instantiate_array_ref): New.
374         (instantiate_scev_r): Also handle ARRAY_REFs.
375
376 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
377
378         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
379         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
380         RESULT_DECL, and FIELD_DECL.  Return false for an
381         SSA_NAME_IS_DEFAULT_DEF.
382         (compute_scalar_evolution_in_loop): Do not further analyze the
383         scalar evolution when no_evolution_in_loop_p returns true.
384
385 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
386
387         * tree-chrec.h (evolution_function_is_affine_p): Do not check
388         whether CHREC_LEFT is invariant.  A function is affine when
389         CHREC_RIGHT is invariant.
390
391 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
392
393         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
394         is_gimple_reg.
395         (rewrite_degenerate_phi): Same.
396         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
397
398 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
399
400         * graphite-scop-detection.c (graphite_can_represent_scev,
401         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
402         graphite_can_represent_loop): Remove outermost_loop.
403
404 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
405
406         PR middle-end/45229
407         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
408         handle GIMPLE_CALLs with no LHS.
409
410 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
411
412         * graphite-poly.c (init_graphite_out_file): New.
413         (init_graphite_in_file): New.
414         (apply_poly_transforms): Updated to enable reading and writing of
415         multiple scop files.
416
417 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
418
419         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
420         redundant checks.
421
422 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
423
424         * graphite-clast-to-gimple.c (precision_for_value): Adjust
425         computation of precision by 1.
426
427 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
428
429         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
430         (openscop_read_polyhedron_matrix): New.
431         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
432         (openscop_read_N_int): Same.
433         * graphite-poly.c (openscop_read_N_int): New.
434         (openscop_read_one_int): New.
435         (openscop_read_N_string): New.
436         (openscop_read_one_string): New.
437         (openscop_read_powerset_matrix): New.
438         (graphite_read_transforms): Remove.
439         (graphite_read_scatt): New.
440         (graphite_read_scop_file): New.
441         (apply_poly_transforms): Updated to call graphite_read_scop_file.
442
443 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
444
445         * graphite-poly.c: Change include order.
446
447 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
448
449         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
450         (cloog_matrix_nrows): New.
451
452 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
453
454         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
455         from matrix lines.
456         * graphite-poly.c (openscop_print_scattering_function_1): Same.
457         (print_scattering_function_1): Same.
458         (openscop_print_pbb_domain): Same.
459         (openscop_print_scop_context): Same.
460         (print_scop_context): Same.
461
462 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
463
464         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
465         (openscop_print_pdr_polyhedron): Print pph.
466
467 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
468
469         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
470         priority signed types.
471
472 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
473
474         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
475         the call to lang_hooks.types.type_for_size.  Call
476         build_nonstandard_integer_type.
477
478 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
479
480         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
481         (openscop_print_polyhedron_matrix): New.
482         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
483         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
484         (openscop_print_pdr_powerset): New.
485         (openscop_print_powerset_matrix): New.
486         (openscop_print_scattering_function_1): New.
487         (print_scattering_function): Add support for scattering names and
488         OpenScop format.
489         (graphite_write_transforms): Remove.
490         (print_pdr_access_layout): Updated to support OpenScop format.
491         (print_pdr): Same.
492         (openscop_print_pbb_domain): New.
493         (print_pbb_body): Added a parameter to allow indicating that pbb_body
494         is not provided.
495         (print_pbb): Updated to call the new print_pbb_body.
496         (openscop_print_scop_context): New.
497         (print_scop_header): New.
498         (print_scop): Updated to call print_scop_header.
499         * graphite-poly.h: Document OpenScop format.
500
501 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
502
503         * config/cris/m32c.c (cris_memory_move_cost): New.
504         (cris_register_move_cost): Make static. Change arguments type from
505         enum reg_class to reg_class_t.
506         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
507         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
508         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
509
510 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
511
512         PR target/45843
513         * config/i386/i386.c (ix86_gimplify_va_arg): Use
514         INTVAL (XEXP (slot, 1)) as prev_size.
515
516 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
517
518         PR target/45837
519         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
520         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
521         defined.
522         * config/rs6000/option-defaults.h (toplevel): Change #if
523         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
524         global option changes.
525
526 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
527
528         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
529
530         PR tree-optimization/31261
531         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
532         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
533
534 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
535
536         PR bootstrap/45796
537         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
538         special-casing for generators and turn into ...
539         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
540         rule, for better error messages in case of toplevel dependency errors.
541         (genprog): Add hooks, rename to ...
542         (genprogerr): ... this, and let genprog also contain check,
543         checksum, condmd.
544         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
545         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
546         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
547
548 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
549             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
550
551         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
552         for GMP, MPFR and MPC.
553
554 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
555
556         * config/sparc/sparc.opt (mimpure-text): Move ...
557         * config/sol2.opt: ... here.  Correct description.
558         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
559         * doc/invoke.texi (Option Summary, SPARC Options): Move
560         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
561         (Option Summary, Solaris 2 Options): ... here.
562         (Submodel Options, Solaris 2 Options): New menu entry.
563         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
564         (Solaris 2 Options): ... here.
565
566 2010-09-30  Michael Eager  <eager@eagercon.com>
567
568         * extend.texi (interrupt_handler): Add MicroBlaze to list.
569         (save_volatiles): Describe option for MicroBlaze.
570         * invoke.texi: Add MicroBlaze Options.
571         * contrib.texi: Add acknowledgment. 
572         * md.texi: Add MicroBlaze d and z constraints.
573         * install.texi: Add microblaze-*-elf.
574         * configure.ac: Add microblaze-*-* to target list.
575         * configure: Regenerate.
576         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
577         * config/microblaze/microblaze-protos.h: New.
578         * config/microblaze/crti.s: New.
579         * config/microblaze/predicates.md: New.
580         * config/microblaze/linux.h: New.
581         * config/microblaze/microblaze.md: New.
582         * config/microblaze/constraints.md: New.
583         * config/microblaze/crtn.s: New.
584         * config/microblaze/microblaze.opt: New.
585         * config/microblaze/microblaze-c.c: New.
586         * config/microblaze/t-microblaze: New.
587         * config/microblaze/microblaze.c: New.
588         * config/microblaze/microblaze.h: New.
589
590 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
591
592         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
593         parse @optional/@required and set the flags as appropriate.
594
595 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
596
597         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
598
599 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
600
601         * opt-functions.awk (static_var): Update comment.
602         (var_ref): Return offsetof expression or -1, not variable address.
603         * optc-gen.awk: Generate structure field initializers instead of
604         static variables.  Expect -1 for missing variables instead of null
605         pointer.  Add gcc_options parameters to generated functions.
606         * opth-gen.awk: Generate structure fields for static variables.
607         Add gcc_options parameters to generated functions.
608         * common.opt (optimize, optimize_size): Add variables.
609         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
610         &global_options to cl_target_option_restore.
611         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
612         &global_options to cl_optimization_restore, cl_target_option_save
613         and cl_target_option_restore.
614         (ix86_set_current_function): Pass &global_options to
615         cl_target_option_restore.
616         * config/pdp11/pdp11.h (optimize): Remove.
617         * config/rs6000/rs6000.h (optimize): Remove.
618         * config/sh/sh.h (optimize): Remove.
619         * config/xtensa/xtensa.h (optimize): Remove.
620         * coretypes.h (struct gcc_options): Declare.
621         * diagnostic.c (diagnostic_initialize): Initialize
622         context->option_state.
623         (diagnostic_report_diagnostic): Pass option_state to
624         option_enabled hook.
625         * diagnostic.h (diagnostic_context.option_enabled): Add void *
626         parameter.
627         (diagnostic_context.option_state): New field.
628         * final.c (final_start_function, final, final_scan_insn): Rename
629         optimize parameter to optimize_p.
630         * flags.h (optimize, optimize_size): Remove.
631         * function.c (invoke_set_current_function_hook): Pass
632         &global_options to cl_optimization_restore.
633         * gcc.c (driver_handle_option): Take gcc_options parameter.
634         Assert that it is &global_options.
635         (process_command): Pass &global_options to read_cmdline_option.
636         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
637         option_enabled.
638         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
639         &global_options to set_option.
640         * opts-common.c (handle_option, handle_generated_option,
641         read_cmdline_option, set_option): Take explicit gcc_options
642         parameters.  Use option_flag_var.
643         (option_flag_var): New.
644         * opts.c (common_handle_option, lang_handle_option,
645         target_handle_option): Take gcc_options parameter.  Assert that it
646         is &global_options.
647         (read_cmdline_options): Pass &global_options to read_cmdline_option.
648         (print_filtered_help): Use option_flag_var.  Pass &global_options
649         to option_enabled.
650         (common_handle_option): Use option_flag_var.
651         (option_enabled): Take opts parameter.  Use option_flag_var.
652         (get_option_state): Take gcc_options parameter.  Use
653         option_flag_var.  Pass gcc_options parameter to option_enabled.
654         (enable_warning_as_error): Pass &global_options to
655         handle_generated_option.
656         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
657         (cl_option_handler_func.handler): Take gcc_options parameter.
658         (option_enabled, get_option_state, set_option, handle_option,
659         handle_generated_option, read_cmdline_option): Take gcc_options
660         parameters.
661         * toplev.c (optimize, optimize_size): Remove.
662         (print_switch_values): Pass &global_options to option_enabled.
663         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
664         to get_option_state.
665         (general_init): Initialize global_dc->option_state.
666         * tree.c (build_optimization_node): Pass &global_options to
667         cl_optimization_save.
668         (build_target_option_node): Pass &global_options to
669         cl_target_option_save.
670
671 2010-09-30  Martin Jambor  <mjambor@suse.cz>
672
673         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
674         zero sized bit-fields.
675
676 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
677
678         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
679         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
680         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
681         (c_parser_objc_class_declaration): Same change.
682         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
683         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
684         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
685         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
686         and RID_AT_PUBLIC instead of RID_PUBLIC.
687         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
688         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
689         
690 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
691
692         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
693         Add links to current providers of packages for Solaris and IRIX.
694
695 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
696
697         Merge from 'apple/trunk' branch on FSF servers.
698         * c-parser.c: Applied change originally in c-parse.in.
699         
700         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
701
702         Radar 4281748
703         * c-decl.c (start_decl): Check for redeclaration of class name.
704         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
705
706 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
707
708         * config/ia64/ia64.c (ia64_builtin_decl): New.
709         (TARGET_BUILTIN_DECL): Define.
710         (ia64_builtins): New.
711         (ia64_init_builtins): Save decls in ia64_builtins.
712
713 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
714
715         PR target/40457
716         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
717         (move2add_use_add3_insn): Likewise.
718         (reload_cse_move2add): Likewise.
719         * rtlanal.c (get_full_rtx_cost): New function.
720         * rtl.h (struct full_rtx_costs): New.
721         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
722         costs_add_n_insns): New inline functions.
723         (get_full_rtx_cost): Declare.
724
725         PR c/45054
726         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
727         invariants.  Check for reg_equiv_invariant.
728         (reload): Assert that spilled_pseudos is empty when returning.
729
730 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
731
732         * config/i386/mingw32.h (TARGET_64BIT): replaced by
733         TARGET_64BIT_DEFAULT in #if check.
734
735 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
736
737         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
738
739 2010-09-29  Mike Stump  <mikestump@comcast.net>
740
741         * config/darwin.h (flag_mkernel): Remove.
742         (flag_apple_kext): Likewise.
743
744 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
745             Jack Howarth <howarth@bromo.med.uc.edu>
746
747         * config/darwin.opt (undefined): Add.
748
749 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
750
751         PR testsuite/45664
752         * configure.ac: Add --enable-indirect-function option.
753         * config.gcc: Add default_gnu_indirect_function.
754         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
755         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
756         * varasm.c (do_assemble_alias): Adjust for macro name change.
757         * configure: Rebuilt.
758         * doc/install.texi: Document --enable-indirect-function.
759
760 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
761
762         * doc/options.texi (Variable, Var, Init): Update documentation
763         without reference to VarExists.
764         (VarExists): Remove.
765         * common.opt, config/i386/i386.opt, config/linux.opt,
766         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
767         Don't use VarExists.
768
769 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
770
771         * optc-gen.awk: Generate global_options initializer instead of
772         individual variables.  Add x_ prefix to names of structure members.
773         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
774         names of structure members.
775         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
776         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
777         * doc/tm.texi: Regenerate.
778         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
779         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
780         * c-parser.c (disable_extension_diagnostics,
781         restore_extension_diagnostics): Update names of cpp_options members.
782         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
783         * common.opt (fcompare-debug-second): Don't use Var.
784         * config/alpha/alpha.h (target_flags): Remove.
785         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
786         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
787         * config/bfin/bfin.h (target_flags): Remove.
788         * config/cris/cris.h (target_flags): Remove.
789         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
790         cl_target_option members.
791         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
792         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
793         ix86_can_inline_p): Update names of cl_target_option members.
794         * config/i386/i386.h (ix86_isa_flags): Remove.
795         * config/lm32/lm32.h (target_flags): Remove.
796         * config/mcore/mcore.h (mcore_stack_increment): Remove.
797         * config/mcore/mcore.md (addsi3): Remove extern declaration of
798         flag_omit_frame_pointer.
799         * config/mep/mep.h (target_flags): Remove.
800         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
801         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
802         * config/mmix/mmix.h (target_flags): Remove.
803         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
804         flag_expensive_optimizations): Remove.
805         * config/s390/s390.h (flag_pic): Remove.
806         * config/score/score-conv.h (target_flags): Remove.
807         * config/sh/sh.h (sh_fixed_range_str): Remove.
808         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
809         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
810         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
811         * diagnostic.c (diagnostic_initialize): Update names of
812         diagnostic_context members.
813         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
814         warn_system_headers.
815         (diagnostic_report_warnings_p): Update for new names.
816         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
817         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
818         HARD_FRAME_POINTER_IS_ARG_POINTER.
819         * flags.h (flag_compare_debug): Declare.
820         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
821         * opts.c (flag_compare_debug): Define.
822         (common_handle_option): Update names of diagnostic_context
823         members.  Handle -fcompare-debug-second.
824         (fast_math_flags_struct_set_p): Update names of cl_optimization
825         members.
826         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
827         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
828         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
829         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
830         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
831         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
832         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
833         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
834         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
835
836 2010-09-29  Hariharan Sandanagobalane <hariharan@picochip.com>
837
838         * config/picochip/picochip.c (picochip_output_internal_label):
839         This function can now be called for debug CFI labels, which can come
840         in the middle of a vliw instruction.  Postpone until end of vliw.
841
842 2010-09-29  Richard Guenther  <rguenther@suse.de>
843
844         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
845         (DECL_FILE_SCOPE_P): Use it.
846         (TYPE_FILE_SCOPE_P): New macro.
847
848 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
849
850         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
851         a CPP_NAME which is a reserved word, clearly separate cases for
852         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
853
854 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
855
856         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
857         token->value with the canonical spelling.  Do exactly like C and
858         C++ and leave it as it is.
859
860 2010-09-28  Richard Henderson  <rth@redhat.com>
861
862         * config/alpha/alpha.c (alpha_builtins): New.
863         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
864         (alpha_builtin_function): New.
865         (alpha_add_builtins, alpha_init_builtins): Use it.
866
867 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
868
869         * doc/standards.texi (Standards): Expanded the section on
870         Objective-C and Objective-C++.
871
872 2010-09-28  DJ Delorie  <dj@redhat.com>
873
874         PR target/45800
875         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
876         volatile MEMs.
877
878 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
879
880         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
881         attributes on methods.
882          (c_parser_objc_method_definition): Handle attributes.
883         (c_parser_objc_methodproto): Likewise.
884         (c_parser_objc_maybe_method_attributes): New.
885         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
886         missing definition, similar to that in ObjC++.
887
888 2010-09-28  Richard Henderson  <rth@redhat.com>
889
890         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
891         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
892         (CONFIG_SJLJ_EXCEPTIONS): Remove.
893         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
894         (STACK_CHECK_PROTECT): Likewise.
895         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
896         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
897         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
898         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
899         (dwarf2out_assembly_start): Likewise.
900         * except.c (init_eh): Use targetm.except_unwind_info.
901         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
902         (output_one_function_exception_table): Likewise.
903         * final.c: Unconditionally include dwarf2out.h.
904         (final_start_function): Unconditionally call dwarf2out routines.
905         (final_end_function, final_scan_insn): Likewise.
906         * function.c (expand_function_end): Use targetm.except_unwind_info.
907         * opts.c (decode_options): Use targetm.except_unwind_info.
908         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
909         * target.def (debug_unwind_info, except_unwind_info): New.
910         * target.h (enum unwind_info_type): New.
911         * targhooks.c (default_debug_unwind_info): New.
912         (default_except_unwind_info): New.
913         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
914         * targhooks.h: Declare them.
915         * tree-tailcall.c: Include "target.h"
916         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
917         * Makefile.in (tree-tailcall.o): Update.
918         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
919         (lhd_gcc_personality): Likewise.
920
921         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
922         (TARGET_EXCEPT_UNWIND_INFO): New.
923         (DWARF2_UNWIND_INFO): Update.
924         (TARGET_DEBUG_UNWIND_INFO): New.
925         * doc/tm.texi: Rebuild.
926
927         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
928         targetm.except_unwind_info.
929
930         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
931         (arm_except_unwind_info): New.
932         (arm_compute_func_type): Use it.
933         (arm_expand_prologue, thumb_pushpop): Likewise.
934         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
935         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
936         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
937         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
938         (DWARF2_UNWIND_INFO): Remove.
939         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
940         (ARM_EABI_UNWIND_TABLES): Remove.
941
942         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
943         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
944         (ia64_except_unwind_info): New.
945         (ia64_output_function_prologue): Use it.
946         (ia64_add_bundle_selector_before): Likewise.
947         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
948         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
949         (TARGET_UNWIND_INFO): Remove.
950
951         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
952
953 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
954
955         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
956         (c_parser_objc_protocol_definition): Likewise.
957         (c_parser_external_declaration): Provide dummy attribute arguments.
958         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
959         (c_parser_objc_class_definition): Handle attributes.
960         (c_parser_objc_protocol_definition): Likewise.
961
962 2010-09-28  Tobias Burnus  <burnus@net-b.de>
963
964         PR fortran/40569
965         PR fortran/40568
966         * toplev.h (save_decoded_options, save_decoded_options_count):
967         New global variables.
968         * toplev.c (save_decoded_options, save_decoded_options_count):
969         Export variables.
970
971 2010-09-28  Ian Lance Taylor  <iant@google.com>
972
973         * config/i386/i386.c (ix86_supports_split_stack): Test
974         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
975
976 2010-09-28  Ian Lance Taylor  <iant@google.com>
977
978         PR target/45815
979         * opts.c (decode_options): Don't test whether the target supports
980         split stack if flag_split_stack == 0.
981
982 2010-09-28  Jan Hubicka  <jh@suse.cz>
983
984         * builtin-attrs.def (ATTR_LEAF): New attribute.
985         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
986         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
987         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
988         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
989         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
990         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
991         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
992         * sync-builtins.def: Annotate all builtins by leaf.
993         * omp-builtins.def: Annotate all builtins by leaf.
994         * builtins.def: Annotate relevant builtins with leaf attribute.
995         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
996         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
997         leaf.
998
999 2010-09-28  Jan Hubicka  <jh@suse.cz>
1000
1001         * tree-ssa-ccp.c (fold_ctor_reference): New function.
1002         (fold_const_aggregate_ref): Use it.
1003         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
1004         into external static.
1005
1006 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1007
1008         PR target/44452
1009         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
1010         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
1011         (ix86_solaris_return_in_memory): Remove.
1012         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
1013         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1014         (TARGET_SUBTARGET_DEFAULT): Redefine.
1015         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
1016         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1017         (TARGET_SUBTARGET_DEFAULT): Redefine.
1018         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
1019         -mvect8-ret-in-mem.
1020         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
1021
1022 2010-09-29  Alan Modra  <amodra@gmail.com>
1023
1024         PR target/45807
1025         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
1026         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
1027         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
1028         Delete.
1029         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
1030         (rs6000_emit_prologue): Don't just create frame save info for r2,
1031         actually save r2.
1032
1033 2010-09-28  Richard Henderson  <rth@redhat.com>
1034
1035         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
1036         when 8 bytes are requested.
1037
1038 2010-09-28  Tristan Gingold  <gingold@adacore.com>
1039
1040         * config/avr/avr.c (expand_prologue): Set
1041         current_function_static_stack_size.
1042
1043 2010-09-28  Tristan Gingold  <gingold@adacore.com>
1044
1045         * config/alpha/alpha.md: Change the initial condition of the
1046         probing loop.
1047
1048 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
1049
1050         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
1051         Split from *avx_<maxmin:code><mode>3.
1052         (*avx_<smaxmin:code><mode>3): Ditto.
1053         * config/i386/i386.md (maxmin): Remove code iterator.
1054
1055 2010-09-27  Ian Lance Taylor  <iant@google.com>
1056
1057         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
1058         requires assembler support for CFI directives.
1059
1060 2010-09-27  Richard Henderson  <rth@redhat.com>
1061
1062         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
1063
1064 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
1065
1066         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
1067         that AFTER is not in the range FROM..TO, inclusive.
1068
1069 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
1070             Bernd Schmidt  <bernds@codesourcery.com>
1071
1072         PR rtl-optimization/45792
1073         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
1074         If not all insns are to be merged, for each edge, stash the
1075         next candidate after the to-be-merged insns before doing the
1076         merge, and use them for the retry at the new insertion point.
1077         Handle CC0 targets when retrying.
1078
1079 2010-09-27  Ian Lance Taylor  <iant@google.com>
1080
1081         * common.opt (fsplit-stack): New option.
1082         * opts.c (decode_options): Set flag_split_stack to final value.
1083         * target.def (supports_split_stack): New hook.
1084         * gcc.c (STACK_SPLIT_SPEC): Define.
1085         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
1086         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
1087         (Code Gen Options): Document -fsplit-stack.
1088         * doc/extend.texi (Function Attributes): Mention no_split_stack.
1089         (Function Attributes): Document no_split_stack.
1090         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
1091         TARGET_SUPPORTS_SPLIT_STACK.
1092         * doc/tm.texi: Rebuild.
1093         * function.c (thread_prologue_and_epilogue_insns): If
1094         flag_split_stack, add split stack prologue.
1095         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
1096         * varasm.c (saw_no_split_stack): New static variable.
1097         (assemble_start_function): Set saw_no_split_stack if the function
1098         has the no_split_stack attribute.
1099         (file_end_indicate_split_stack): New function.
1100         * output.h (file_end_indicate_split_stack): Declare.
1101         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
1102         and function.
1103         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
1104         routines.
1105         * config/i386/i386.c (ix86_option_override_internal): Don't set
1106         expand_builtin_va_start to NULL if -fsplit-stack.
1107         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
1108         -fsplit-stack.
1109         (ix86_va_start): If -fsplit-stack, get overflow pointer from
1110         scratch register set by prologue.
1111         (ix86_code_end): If -fsplit-stack, call
1112         file_end_indicate_split_stack.
1113         (ix86_supports_split_stack): New static function.
1114         (SPLIT_STACK_AVAILABLE): Define.
1115         (split_stack_prologue_scratch_regno): New static function.
1116         (split_stack_fn): New static variable.
1117         (ix86_expand_split_stack_prologue): New function.
1118         (ix86_live_on_entry): New static function.
1119         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
1120         (output_pic_addr_const): Likewise.
1121         (i386_asm_output_addr_const_extra): Likewise.
1122         (ix86_expand_call): Change return type to rtx.  Return the new
1123         call instruction.
1124         (TARGET_SUPPORTS_SPLIT_STACK): Define.
1125         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1126         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
1127         (split_stack_prologue, split_stack_return): New insns.
1128         (split_stack_space_check): New insn.
1129         * config/i386/i386.h (struct machine_function): Add
1130         split_stack_varargs_pointer field.
1131         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
1132         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1133         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
1134         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1135         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
1136         Declare.
1137         (ix86_expand_call): Update declaration.
1138
1139 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1140
1141         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
1142         code.  Added byref, which was missing in the list of codes.
1143         Explain that enumeration values are encoded as the integer type
1144         that the compiler uses to store them.  Explain and make examples
1145         of how 'const' interacts with pointers, and the complication of
1146         the encoding of 'const char *'.
1147         (Legacy type encoding): New subsection, explaining that GCC emits
1148         incorrect type encodings for the NeXT runtime for compatibility
1149         reasons.
1150         (@@encode): New subsection, explaining @encode and particularly
1151         that protocol qualifiers are not recognized inside an @encode()
1152         expression.
1153         (Method signatures): New subsection, explaining how method
1154         signatures are encoded.
1155
1156 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1157
1158         Merge from 'apple/trunk' branch on FSF servers.  Removed small
1159         change in build_conditional_expr that had been added when fixing
1160         PR objc/27377 and which did the same check in a less complete way.
1161
1162         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
1163
1164         Radar 4229905
1165         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
1166         looking for objective-c common pointer types.
1167
1168         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
1169
1170         Radar 4154928
1171         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
1172         use their ObjC common type.
1173
1174 2010-09-27  Richard Guenther  <rguenther@suse.de>
1175
1176         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
1177
1178 2010-09-27  Jie Zhang  <jie@codesourcery.com>
1179
1180         * print-tree.c (print_node): Print in-constant-pool.
1181
1182 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
1183
1184         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
1185         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
1186         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
1187         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
1188
1189 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
1190
1191         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
1192         from pro_epilogue_adjust_stack_<mode>_{1,2}.
1193         (pro_epilogue_adjust_stack_<mode>_add): Rename from
1194         pro_epilogue_adjust_stack_<mode>_3.
1195         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
1196         renamed pro_epilogue_adjust_stack_{si,di}_add.
1197         (ix86_expand_prologue): Use indirect functions.  Update for renamed
1198         pro_epilogue_adjust_stack_{si,di}_sub.
1199
1200 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
1201
1202         * config/i386/i386.md (movmsk_df): New insn.
1203         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
1204         sequence for TARGET_SSE_MATH.
1205
1206 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
1207
1208         * config/mips/mips.c (mips_builtin_decls): Declare.
1209         (mips_init_builtins): Store function declarations in
1210         mips_builtin_decls.
1211         (mips_builtin_decl): New function.
1212         (TARGET_BUILTIN_DECL): Define.
1213
1214 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
1215             Richard Henderson  <rth@redhat.com>
1216
1217         * config/i386/cygwin.asm: Include auto-host.h.
1218         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
1219         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
1220         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
1221         alignment code from the 64-bit path.  Use gas local labels.
1222         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
1223         from _di_2.  Remove the useless constant integer argument.
1224         (pro_epilogue_adjust_stack_<mode>_3): New.
1225         (allocate_stack_worker_probe_<mode>): Macroize from
1226         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
1227         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
1228         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
1229         (__chkstk_ms): New function.
1230         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
1231         * gcc/config/i386/t-interix: Likewise.
1232         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
1233         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1234         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
1235         * configure, config.in: Rebuild.
1236
1237 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1238
1239         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
1240         statements because of the return slot optimization.
1241
1242 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
1243
1244         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
1245         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
1246         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1247         (class_likely_spilled_p): Rename to...
1248         (avr_class_likely_spilled_p): ...this. Make static. Change argument
1249         type to reg_class_t.
1250
1251 2010-09-24  Jan Hubicka  <jh@suse.cz>
1252
1253         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
1254         (lto_symtab_resolve_symbols): Set it.
1255         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
1256         store resolution field in cgraph/varpool.
1257         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
1258         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
1259         (cgraph_dump_node): Drop used_from_object_file.
1260         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
1261         (cgraph_function_body_availability): Use decl_replaceable_p.
1262         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
1263         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
1264         cgraph_used_from_object_file_p.
1265         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
1266         cgraph_used_from_object_file_p.
1267         (resolution_used_from_other_file_p): New functoin.
1268         (cgraph_used_from_object_file_p): New predicate.
1269         * cgraph.h: Include plugin-api.h
1270         (struct cgraph_local_info): Remove used_from_object_file.
1271         (struct cgraph_node): Add resolution field.
1272         (struct varpool_node): Likewise; remove used_from_object_file;
1273         reove const_value_known.
1274         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
1275         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
1276         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1277         varpool_used_from_object_file_p): Declare.
1278         (varpool_get_node, varpool_extra_name_alias): Update prototype.
1279         * tree.h (DECL_REPLACEABLE_P): Remove.
1280         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
1281         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
1282         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1283         input_overwrite_node, input_node, input_varpool_node): Stream
1284         resolution.
1285         * expr.c (expand_expr_real_1): Use const_value_known_p
1286         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
1287         const_value_known.
1288         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
1289         (function_and_variable_visibility): Set resolution for local vars
1290         and functions; use varpool_used_from_object_file_p.
1291         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
1292         static functions.
1293         (default_binds_local_p_1): Use resolutoin info.
1294         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
1295         * varpool.c (varpool_get_node): Constify.
1296         (const_value_known_p): Do not use vnode->const_value_known;
1297         use decl_replaceable_p.
1298         (varpool_finalize_decl): Do not set const_value_known.
1299         (cgraph_variable_initializer_availability): Use decl_replaceable_p
1300         (varpool_extra_name_alias): Return new node.
1301         (varpool_used_from_object_file_p): New function.
1302
1303 2010-09-24  Richard Henderson  <rth@redhat.com>
1304
1305         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
1306         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
1307         (do_spill): Use REG_CFA_OFFSET.
1308         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
1309         as appropriate.
1310         (ia64_expand_epilogue): Likewise.
1311         (process_set): Split into ...
1312         (process_cfa_adjust_cfa): this,
1313         (process_cfa_register): this,
1314         (process_cfa_offset): and this new function.
1315         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
1316         instead of REG_FRAME_RELATED_EXPR.
1317
1318 2010-09-24  Olivier Hainque  <hainque@adacore.com>
1319
1320         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
1321
1322 2010-09-24  Jan Hubicka  <jh@suse.cz>
1323
1324         * doc/extend.texi: (attribute leaf): Document.
1325         * tree.c (local_define_builtin): Handle ECF_LEAF.
1326         (build_common_builtin_nodes): Set ECF_LEAF where needed.
1327         * tree.h (ECF_LEAF): New.
1328         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
1329         overwrittable and unavailable functions.
1330         (ipa_init): Put all_module_statics into optimization_summary_obstack.
1331         (copy_global_bitmap): Do not copy all_module_statics.
1332         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
1333         (propagate): Handle overwritable and unavailable leaf functions;
1334         initialize global info for overwritable and unavailable leaf functions;
1335         do not free all module statics.
1336         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
1337         local statics.
1338         * calls.c (flags_from_decl_or_type): Handle leaf.
1339         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
1340         abnormal gotos.
1341
1342 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
1343
1344         * gengtype.c: Reindented.
1345         * gengtype.h: Reindented.
1346         * gengtype-parse.c: Reindented.
1347
1348 2010-09-24  Jan Hubicka  <jh@suse.cz>
1349
1350         PR tree-optimization/45738
1351         PR tree-optimization/45741
1352         * expr.c (string_constant): Allow CONST_DECL too;
1353         check that DECL_INITIAL is set.
1354         * varpool.c (const_value_known_p): Only look into VAR_DECL
1355         and CONST_DECL.
1356
1357 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
1358
1359         * common.opt (undef): New.
1360
1361 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
1362
1363         PR middle-end/45234
1364         * rtl.h (enum global_rtl_index): Add
1365         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
1366         (LAST_VIRTUAL_POINTER_REGISTER): Define.
1367         (virtual_preferred_stack_boundary_rtx,
1368         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
1369         (LAST_VIRTUAL_REGISTER): Increase by one.
1370         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
1371         instead of LAST_VIRTUAL_REGISTER.
1372         * function.c (instantiate_new_reg): Handle
1373         virtual_preferred_stack_boundary_rtx.
1374         * emit-rtl.c (init_virtual_regs): Handle
1375         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1376         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
1377         * explow.c (round_push): If crtl->preferred_stack_boundary
1378         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
1379         virtual_preferred_stack_boundary_rtx alignment instead of
1380         crtl->preferred_stack_boundary alignment.
1381         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
1382         macros.  Never decrease crtl->preferred_stack_boundary,
1383         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
1384         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
1385         stack_pointer_delta in dynamic allocation, even when size
1386         is constant.
1387         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
1388         macro.
1389         * print-rtl.c (print_rtx): Handle
1390         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1391         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
1392         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
1393         * config/frv/frv.c (frv_emit_movsi): Likewise.
1394         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
1395         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
1396         Likewise.
1397
1398         Revert:
1399         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1400
1401         PR middle-end/45234
1402         * calls.c (expand_call): Make sure that all variable sized
1403         adjustments are multiple of preferred stack boundary after
1404         stack alignment.
1405
1406 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
1407             Dominique Dhumieres  <dominiq@lps.ens.fr>
1408
1409         PR bootstrap/45751
1410         * gcc/config/darwin-driver.c (darwin_default_min_version):
1411         Adjust size passed to memcpy in two places.
1412
1413 2010-09-24  Richard Guenther  <rguenther@suse.de>
1414
1415         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
1416         Make sure to not call set_type_context with error_mark_node.
1417         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
1418
1419 2010-09-24  Richard Guenther  <rguenther@suse.de>
1420
1421         * Makefile.in (OBJS-onestep): Remove.
1422         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
1423         (libbackend.a): Remove onestep support.
1424         (libbackend.o): Remove.
1425         * configure.ac (--enable-intermodule): Remove.
1426         * configure: Regenerate.
1427
1428 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
1429
1430         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
1431         reaching the end of a block if it occurs at a DEBUG_INSN.
1432
1433 2010-09-09  Tristan Gingold  <gingold@adacore.com>
1434
1435         PR target/44242
1436         * config/vms/vms-crt0-64.c: Removed.
1437         * config/vms/vms-crt0.c: Removed.
1438         * config/vms/vms-psxcrt0-64.c: Removed.
1439         * config/vms/vms-psxcrt0.c: Removed.
1440         * config/vms/vms-ucrt0.c: New file.
1441         * config/vms/t-vms64: Removed.
1442         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
1443         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
1444         * config.gcc (alpha-dec-vms): Use t-vms.
1445
1446 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1447
1448         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
1449         underfull hbox in DVI output.
1450         (-fobjc-class-cxx-cdtors): Same change.
1451         (-fobjc-exceptions): Tidied up documentation.  Explain what the
1452         option does, but moved the (lenghty) description of the exception
1453         syntax into objc.texi.
1454         (-fobjc-gc): Explain that the option is not useful with the GNU
1455         runtime.
1456         (-fzero-link): Explain that the GNU runtime always works in
1457         "zero-link" mode.
1458         * doc/objc.texi: All sections: simplified @node declarations
1459         removing specification of next, previous, up node.
1460         (Objective-C): Updated introduction.
1461         (Garbage Collection): Updated.  The bohem-gc library is now
1462         included in gcc itself.  Mention that this section only applies to
1463         the GNU Objective-C runtime.
1464         (compatibility_alias): Small tidy up.
1465         (Exceptions): New section mostly containing text previously in the
1466         description of the -fobjc-exception command-line option.
1467         (Synchronization): Same.
1468
1469 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
1470
1471         * config/i386/i386.md (ix86_code_end): Move the initialization of
1472         xops array near the consumer.  Use AX_REG and SP_REG instead of
1473         numerical constants.
1474
1475 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1476
1477         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
1478         method [methodname]' for an Objective-C method instead of the less
1479         satisfactory 'too many arguments to function' (with no method name).
1480
1481 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1482
1483         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
1484         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
1485         (execute_update_addresses_taken): Remove parameter.  Execute the
1486         optimization unconditionally.
1487         * passes.c (execute_function_todo): Call execute_update_addresses_taken
1488         unconditionally if TODO_rebuild_alias is set, else only when optimizing
1489         if TODO_update_address_taken is set.
1490
1491 >>>>>>> .r164755
1492 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
1493
1494         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1495         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
1496         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1497         (arm_output_addr_const_extra): Make static.
1498
1499 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
1500
1501         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
1502         define as unspec_volatile.
1503         ("nops"): Define as unspec_volatile. Use fputs to write to
1504         asm_out_file directly.  Output NOPs on separate lines using while loop.
1505         * config/i386/i386.c (ix86_code_end): Use fputs to write to
1506         asm_out_file directly.  Output NOPs on separate lines using while loop.
1507
1508 2010-09-23  Richard Guenther  <rguenther@suse.de>
1509
1510         PR tree-optimization/45565
1511         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1512         Make sure to adjust the fndecl before replacing the stmt.
1513
1514 2010-09-23  Richard Guenther  <rguenther@suse.de>
1515
1516         PR middle-end/45750
1517         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
1518         gimplifying MEM_REF.
1519
1520 2010-09-23  Alan Modra  <amodra@gmail.com>
1521
1522         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
1523         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
1524
1525 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
1526
1527         PR rtl-optimization/44374
1528         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1529         * df-core.c (df_set_bb_dirty): Set it.
1530         * ifcvt.c (find_memory): Remove function.
1531         (dead_or_predicable): Use can_move_insns_across.
1532         * df.h (can_move_insns_across): Declare function.
1533         * cfgcleanup.c (block_was_dirty): New static variable.
1534         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1535         than df_get_bb_dirty.
1536         (try_head_merge_bb): New static function.
1537         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1538         is set.
1539         * df-problems.c: Include "target.h"
1540         (df_simulate_find_uses): New static function.
1541         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1542         (find_memory, find_memory_store): New static functions.
1543         (can_move_insns_across): New function.
1544         * Makefile.in (df-problems.o): Update dependencies.
1545
1546 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1547
1548         PR java/44095
1549         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
1550         is specified and the suffix of the file isn't ".c".
1551         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1552
1553 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1554
1555         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
1556         * doc/cppopts.texi: Fix markup of index entry.
1557         * doc/extend.texi (Constructing Calls): Fix markup of
1558         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
1559         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
1560         (Vague Linkage, C++ Attributes): Fix markup of index entries and
1561         keywords.
1562         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
1563         avoid long lines.
1564         (C Dialect Options, C++ Dialect Options, Warning Options)
1565         (Debugging Options, Spec Files, Darwin Options)
1566         (i386 and x86-64 Options, MIPS Options)
1567         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
1568         index entries, avoid abbreviations, allow URLs to wrap, avoid
1569         long lines, avoid overlong pages from long @itemx lists.
1570         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
1571         * doc/standards.texi (Standards): Likewise.
1572         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
1573
1574 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1575
1576         * opts-common.c (prune_options): Make static.  Work with decoded
1577         options.
1578         (decode_cmdline_options_to_array): Call prune_options.  Don't
1579         resize option array here.
1580         * opts.h (prune_options): Remove prototype.
1581         * gcc.c (process_command): Take decoded options; don't call
1582         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
1583         (main): Call decode_cmdline_options_to_array here instead of
1584         prune_options.  Update call to process_command.
1585         * config/darwin-driver.c: Include opts.h.
1586         (darwin_default_min_version): Work with decoded options.  Don't
1587         handle -b or -V here.
1588         * config/darwin.h (darwin_default_min_version): Update prototype.
1589         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
1590         darwin_default_min_version.
1591         * config/i386/cygwin.h (mingw_scan): Update prototype.
1592         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
1593         * config/i386/cygwin1.c: Include opts.h.
1594         (mingw_scan): Work with decoded options.
1595         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
1596         * config/t-darwin (darwin-driver.o): Update dependencies.
1597
1598 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1599
1600         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
1601         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
1602         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
1603         -force-link, -force-link=, -language, -language=,
1604         -library-directory, -library-directory=, -no-canonical-prefixes,
1605         -no-standard-libraries, -no-warnings, -optimize, -output,
1606         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
1607         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
1608         -print-file-name=, -print-libgcc-file-name,
1609         -print-multi-directory, -print-multi-lib,
1610         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
1611         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
1612         -profile, -save-temps, -shared, -specs, -specs=, -static,
1613         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
1614         symbolic): New.
1615         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
1616         * gcc.c (A Short Introduction to Adding a Command-Line Option):
1617         Remove comment.
1618         (cc1_options): Correct specs for passing down --help,
1619         --target-help and --help=*.  Add spec for passing down --version.
1620         (struct option_map, option_map, target_option_translations,
1621         translate_options): Remove.
1622         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
1623         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
1624         OPT_fhelp_ and OPT_ftarget_help.
1625         (process_command): Don't call translate_options.  Call
1626         decode_cmdline_options_to_array before checking for
1627         -no-canonical-prefixes using decoded options.
1628         * opts-common.c (tm.h): Update comment on #include.
1629         (find_opt): Allow abbreviations of long options.
1630         (struct option_map, option_map): New.
1631         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
1632         and -mno handling.
1633         (target_option_translations): New.
1634         (decode_cmdline_options_to_array): Handle
1635         TARGET_OPTION_TRANSLATE_TABLE in driver.
1636         * opts.c (common_handle_option): Don't handle OPT_fhelp,
1637         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
1638
1639 2010-09-22  Richard Guenther  <rguenther@suse.de>
1640
1641         * tree-inline.c (optimize_inline_calls): Schedule cleanups
1642         only if we inlined something.  Block compaction and conditional
1643         folding are done by cfg cleanup.  Schedule update-address-taken.
1644         (tree_function_versioning): Remove redundant call to number_blocks.
1645         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
1646         folding is done by cfg cleanup.
1647         * passes.c (init_optimization_passes): Remove update-address-taken
1648         pass after IPA inlining.
1649
1650 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
1651
1652         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
1653         to update conditions. Fix reg_mode[] check.
1654
1655 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
1656
1657         * config/picochip/picochip.md (movhicc): Use expand to check whether
1658         movhicc is available and split it after reload.
1659
1660 2010-09-22  Richard Guenther  <rguenther@suse.de>
1661
1662         * tree-ssanames.c (release_dead_ssa_names): Do not remove
1663         callee edges here.
1664         * passes.c (init_optimization_passes): Remove early CFG cleanup.
1665         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
1666         (pass_cleanup_cfg): Likewise.
1667         (execute_fixup_cfg): Cleanup.
1668         * tree-pass.h (pass_cleanup_cfg): Remove.
1669
1670 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1671
1672         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
1673         builtins if it is true.
1674         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
1675         parameter.
1676
1677 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1678
1679         * tree-sra.c (struct access): New field grp_no_warning.
1680         (create_access_replacement): Set TREE_NO_WARNING according to
1681          grp_no_warning.
1682         (create_artificial_child_access): Use build_ref_for_model and set
1683         grp_no_warning if build_user_friendly_ref_for_offset fails.
1684         (propagate_subaccesses_across_link): Likewise.
1685
1686 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1687
1688         PR target/35664
1689         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
1690         ('f'): Likewise.
1691
1692 2010-09-22  Tristan Gingold  <gingold@adacore.com>
1693
1694         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
1695
1696 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
1697
1698         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
1699         * config/i386/i386.c (decide_alg): Update for rename.
1700
1701 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
1702
1703         PR rtl-optimization/45739
1704         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
1705         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
1706
1707 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
1708
1709         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
1710         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1711         Remove.
1712         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
1713         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1714
1715 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1716
1717         PR objc/23710
1718         * c-parser.c (c_parser_objc_method_definition): Check the return
1719         value of objc_start_method_definition and if false is returned,
1720         parse the method definition but emit no code.
1721
1722 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1723
1724         PR objc/25965
1725         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
1726         call objc_get_interface_ivars ().
1727
1728 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
1729
1730         PR target/45694
1731         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
1732         static chain-register is used for 64-bit.
1733
1734 2010-09-21  Richard Guenther  <rguenther@suse.de>
1735
1736         * dwarf2out.c (is_cu_die): New function.
1737         (add_pubtype): Use it.
1738         (gen_subprogram_die): Likewise.
1739         (gen_struct_or_union_type_die): Likewise.
1740         (dwarf2out_finish): Likewise.
1741         (comp_unit_die): Rename to ...
1742         (single_comp_unit_die): ... this.
1743         (comp_unit_die): New function lazily constructing and
1744         returning single_comp_unit_die.
1745         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
1746         base_type_die, subrange_type_die, modified_type_die,
1747         lower_bound_default, add_bound_info, add_prototyped_attribute,
1748         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
1749         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
1750         force_decl_die, gen_namespace_die, dwarf2out_decl,
1751         dwarf2out_start_source_file, dwarf2out_end_source_file,
1752         prune_unused_types, dwarf2out_finish): Use it.
1753         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
1754         the global list of translation-unit decls.
1755         (dwarf2out_init): Do not create single_comp_unit_die here.
1756         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
1757
1758 2010-09-21  Richard Guenther  <rguenther@suse.de>
1759
1760         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
1761         for bool for C++.
1762
1763 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
1764
1765         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
1766         (qhs_extenddi_cstr): Likewise.
1767         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
1768         them for the source operand.
1769
1770 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
1771
1772         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
1773         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
1774         (ix86_split_ashr): Ditto.
1775         (ix86_split_lshr): Ditto.
1776
1777 2010-09-21  Richard Guenther  <rguenther@suse.de>
1778
1779         PR tree-optimization/45580
1780         * tree-ssa-propagate.c (substitute_and_fold): Always replace
1781         regular uses.
1782         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
1783         virtuals fold the call into a regular indirect one.
1784
1785 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1786
1787         PR rtl-optimization/42775
1788         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
1789         scheduling is enabled.
1790
1791 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1792
1793         PR rtl-optimization/45728
1794         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
1795         gen_lowpart_common first and if that fails, force_reg first
1796         before calling gen_lowpart.
1797
1798         PR middle-end/45678
1799         * cfgexpand.c (expand_one_stack_var_at): Use
1800         crtl->max_used_stack_slot_alignment as max_align, instead
1801         of maximum of that and PREFERRED_STACK_BOUNDARY.
1802         Don't call update_stack_alignment.
1803
1804 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1805
1806         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
1807         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
1808         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
1809         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
1810         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
1811         (build_nonstandard_integer_type): Likewise.
1812         (build_range_type_1): New function, built from...
1813         (build_range_type): ...this.  Call build_range_type_1.
1814         (build_nonshared_range_type): New function.
1815         (build_array_type_1): New function, built from...
1816         (build_array_type: ...this.  Call build_array_type_1.
1817         (build_nonshared_array_type): New function.
1818         * tree.h (build_nonshared_range_type): Declare.
1819         (build_nonshared_array_type): Likewise.
1820
1821 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
1822
1823         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
1824         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1825         (arm_class_likely_spilled_p): New function.
1826
1827 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
1828
1829         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
1830         indirect functions.
1831         (ix86_split_ashl): Ditto.
1832         (ix86_split_ashr): Ditto.
1833         (ix86_split_lshr): Ditto.
1834         (ix86_adjust_counter): Ditto.
1835
1836 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1837
1838         * c-family/c-common.h (constant_string_class): Documented with
1839         comment identical to the one already in c-common.c.
1840
1841 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1842
1843         * dwarf2out.c (any_cfis_emitted): New static variable.
1844         (add_fde_cfi): Set it.
1845         (dwarf2out_frame_debug): Clear it before processing,
1846         if it is set afterwards, flush any queued reg saves.
1847
1848         PR debug/45124
1849         * dwarf2out.c (add_accessibility_attribute): Assume
1850         DW_ACCESS_private as the default for dwarf_version > 2
1851         and DW_TAG_class_type parent.
1852         (gen_inheritance_die): Assume DW_ACCESS_public as the default
1853         for dwarf_version > 2 and parent other than DW_TAG_class_type.
1854
1855 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1856
1857         PR target/45726
1858         * arm.md (arm_movt): Only enable on machines with MOVT.
1859
1860 2010-09-20  Jie Zhang  <jie@codesourcery.com>
1861
1862         * config/arm/arm.c (arm_address_offset_is_imm): New.
1863         (arm_early_store_addr_dep): New.
1864         (arm_early_load_addr_dep): New.
1865         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
1866         (arm_early_load_addr_dep): Declare.
1867         (arm_address_offset_is_imm): Declare.
1868         * config/arm/cortex-m4.md: New file.
1869         * config/arm/cortex-m4-fpu.md: New file.
1870         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
1871         (attr generic_sched): Exclude cortexm4.
1872         (attr generic_vfp): Exclude cortexm4.
1873
1874 2010-09-20  Richard Guenther  <rguenther@suse.de>
1875
1876         PR middle-end/45704
1877         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
1878
1879 2010-09-20  Jan Hubicka  <jh@suse.cz>
1880
1881         PR tree-optimize/45605
1882         * cgraph.h (const_value_known_p): Declare.
1883         (varpool_decide_const_value_known): Remove.
1884         * tree-ssa-ccp.c (get_base_constructor): Use it.
1885         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
1886         * expr.c (string_constant): Likewise.
1887         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
1888         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1889         function_and_variable_visibility): Likewise.
1890         * gimplify.c (gimplify_call_expr): Likewise.
1891         * gimple-fold.c (get_symbol_constant_value): Likewise.
1892         * varpool.c (varpool_decide_const_value_known): Replace by...
1893         (const_value_known_p): ... this one; handle other kinds of DECLs
1894         too and work for automatic vars.
1895         (varpool_finalize_decl): Use const_value_known_p.
1896
1897 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1898
1899         PR target/45726
1900         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
1901
1902 2010-09-20  Richard Guenther  <rguenther@suse.de>
1903
1904         PR tree-optimization/45705
1905         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
1906
1907 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1908
1909         PR rtl-optimization/45695
1910         * combine.c (try_combine): When splitting a two set pattern,
1911         make sure the pattern which will be put into i2 doesn't use REGs
1912         or MEMs set by insns in between i2 and i3.
1913
1914 2010-09-19  Jan Hubicka  <jh@suse.cz>
1915
1916         PR lto/44246
1917         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
1918         processing same node twice.
1919
1920 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
1921
1922         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
1923         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1924         (bfin_class_likely_spilled_p): New function
1925
1926 2010-09-19  Ira Rosen  <irar@il.ibm.com>
1927
1928         PR tree-optimization/45714
1929         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
1930         created in vectorizable_call instead of the original statement in
1931         def stmt updates.
1932
1933 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
1934
1935         * config/i386/i386-protos.h (split_double_mode): New prototype.
1936         (split_di, split_ti): Remove prototypes.
1937         * config/i386/i386.c (split_double_mode): New function.
1938         (split_di, split_ti): Remove.
1939         (ix86_expand_branch): Use split_double_mode.
1940         (ix86_split_to_parts): Ditto.
1941         (ix86_split_ashl): Ditto.
1942         (ix86_split_ashr): Ditto.
1943         (ix86_split_lshr): Ditto.
1944         (ix86_force_to_memory): Ditto.
1945         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
1946
1947 2010-09-18  Jan Hubicka  <jh@suse.cz>
1948
1949         PR tree-optimization/45453
1950         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
1951         virtual functions are reachable.
1952         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
1953         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1954         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
1955         when modifying function.
1956
1957 2010-09-18  Jan Hubicka  <jh@suse.cz>
1958
1959         PR tree-optimization/45605
1960         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
1961         * gimple-fold.c (static_object_in_other_unit_p): New function.
1962         (canonicalize_constructor_val): Use it.
1963         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
1964         returning NULL.
1965         (gimple_fold_obj_type_ref_known_binfo): Use
1966         static_object_in_other_unit_p.
1967
1968 2010-09-18  Richard Guenther  <rguenther@suse.de>
1969
1970         PR tree-optimization/45709
1971         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
1972         insertions until after all PHI nodes of the block are processed.
1973
1974 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
1975
1976         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
1977
1978 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
1979
1980         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
1981
1982 2010-09-18  Richard Guenther  <rguenther@suse.de>
1983
1984         PR tree-optimization/45709
1985         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
1986
1987 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1988
1989         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
1990         (dot_deps_stmt): Same.
1991         * graphite-poly.c (dot_lst): Same.
1992         * graphite-scop-detection.c (dot_all_scops): Same.
1993         (dot_scop): Same.
1994
1995 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1996
1997         Revert:
1998         2009-12-16  Ben Elliston  <bje@au.ibm.com>
1999
2000         * tree-data-ref.c (dot_rdg_1): Added back.
2001         (dot_rdg): Same.  Added "#if 0" around system call.
2002
2003 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2004             Richard Henderson  <rth@redhat.com>
2005
2006         * config/i386/i386.c (initial_ix86_tune_features): Add
2007         X86_TUNE_PAD_SHORT_FUNCTION.
2008         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
2009         (ix86_count_insn): New.
2010         (ix86_pad_short_function): Likewise.
2011         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
2012
2013         * config/i386/i386.h (ix86_tune_indices): Add
2014         X86_TUNE_PAD_SHORT_FUNCTION.
2015         (TARGET_PAD_SHORT_FUNCTION): New.
2016
2017         * config/i386/i386.md (UNSPEC_NOPS): New.
2018         (nops): Likewise.
2019
2020 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2021
2022         PR middle-end/45234
2023         * calls.c (expand_call): Make sure that all variable sized
2024         adjustments are multiple of preferred stack boundary after
2025         stack alignment.
2026
2027 2010-09-17  DJ Delorie  <dj@redhat.com>
2028
2029         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
2030         passed an invalid value, print an error instead of ICEing.
2031         (valid_psw_flag): New.
2032         (rx_expand_builtin): Call it for setpsw/clrpsw.
2033         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
2034
2035         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
2036         (bitclr_in_memory): Likewise.
2037         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
2038
2039 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2040
2041         PR middle-end/45678
2042         * cfgexpand.c (update_stack_alignment): New.
2043         (get_decl_align_unit): Use it.
2044         (expand_one_stack_var_at): Call update_stack_alignment.
2045
2046 2010-09-17  Richard Guenther  <rguenther@suse.de>
2047
2048         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
2049         Properly copy the read string.
2050
2051 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
2052
2053         * doc/options.texi (Variable): Document.
2054         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
2055         generate target_flags declarations explicitly.  Don't define
2056         VarExists variables for the driver.
2057         * common.opt (target_flags): New Variable record.
2058         (flag_dump_unnumbered, flag_dump_unnumbered_links,
2059         flag_var_tracking, flag_var_tracking_assignments,
2060         flag_var_tracking_assignments_toggle): Don't mark variables with
2061         VarExists.
2062         * config/i386/i386.c (ix86_isa_flags): Don't define here.
2063         * config/i386/i386.opt (ix86_isa_flags): Define here.
2064         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
2065         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
2066         VarExists.
2067         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
2068         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
2069         Only define for generator programs.
2070         * rtlanal.c (target_flags): Remove.
2071         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
2072         flag_var_tracking_assignments_toggle): Remove.
2073
2074 2010-09-17  Michael Matz  <matz@suse.de>
2075
2076         PR tree-optimization/43432
2077         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2078         Accept backwards consecutive accesses.
2079         (vect_create_data_ref_ptr): If step is negative generate
2080         decreasing IVs.
2081         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
2082         (perm_mask_for_reverse, reverse_vec_elements): New functions.
2083         (vectorizable_load): Handle loads with negative steps when easily
2084         possible.
2085
2086 2010-09-03  Jan Hubicka  <jh@suse.cz>
2087
2088         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
2089
2090 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
2091
2092         * config/v850/v850.c (v850_function_value_regno_p): Make static.
2093         Adjust comments. Declare.
2094         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2095         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
2096
2097 2010-09-17  Richard Guenther  <rguenther@suse.de>
2098
2099         * common.opt (combine): Remove.
2100         * gcc.c (default_compilers): Remove specs testing combine.
2101         The C compilers no longer can combine.
2102         (option_map): Remove -combine.
2103         (display_help): Remove -combine.
2104         (driver_handle_option): Remove OPT_combine handling.
2105         (compile_input_file_p): Remove.
2106         (do_spec): Remove code concerning combine.
2107         (main): Likewise.
2108         * doc/invoke.texi: Remove traces of -combine.
2109         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
2110
2111 2010-09-17  Richard Guenther  <rguenther@suse.de>
2112
2113         PR middle-end/45678
2114         * builtins.c (fold_builtin_memory_op): Always properly adjust
2115         alignment of memory accesses.
2116
2117 2010-09-16  Jan Hubicka  <jh@suse.cz>
2118
2119         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
2120         processing clone.
2121
2122 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
2123
2124         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
2125
2126         * config/i386/i386.c (predict_jump): Add prototype.
2127         (flag_opts): Add -m8bit-idiv.
2128         (ix86_split_idivmod): New.
2129
2130         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
2131         Add 2 splitters for SI/DI mode divide.
2132         (divmod<mode>4_1): New pattern.
2133         (udivmod<mode>4_1): Likewise.
2134         (testdi_ccno_1): Likewise.
2135
2136         * config/i386/i386.opt (m8bit-idiv): New.
2137
2138         * doc/invoke.texi: Document -m8bit-idiv.
2139
2140 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
2141
2142         PR bootstrap/45680
2143         * config/i386/i386.c (min_insn_size): Moved out of the
2144         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
2145
2146 2010-09-16  Jan Hubicka  <jh@suse.cz>
2147
2148         * lto-cgraph.c (lto_output_node): Fix handling of clones.
2149         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
2150         unreachable clones with reachable clones.
2151         * tree-inline.c (copy_bb): Fix sanity checking when producing
2152         unreachable clone.
2153
2154 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
2155
2156         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
2157         (TARGET_MEMORY_MOVE_COST): Define.
2158         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
2159
2160 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
2161
2162         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
2163         maybe_tidy_empty_bb.
2164
2165         Revert:
2166         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
2167         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2168
2169 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
2170
2171         * target.def (target_option.optimization): New hook.
2172         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
2173         TARGET_OPTION_OPTIMIZATION hook.
2174         * doc/tm.texi: Regenerate.
2175         * hooks.c (hook_void_int_int): New.
2176         * hooks.h (hook_void_int_int): Declare.
2177         * opts.c: Don't include tm_p.h.
2178         (decode_options): Use targetm.target_option.optimization instead
2179         of OPTIMIZATION_OPTIONS.
2180         * system.h (OPTIMIZATION_OPTIONS): Poison.
2181         * config/arm/arm-protos.h (arm_optimization_options): Remove.
2182         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
2183         (arm_optimization_options): Rename to arm_option_optimization.
2184         Make static.
2185         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
2186         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
2187         (cris_option_optimization): New.
2188         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
2189         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
2190         (crx_option_optimization): New.
2191         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
2192         * config/frv/frv-protos.h (frv_optimization_options): Remove.
2193         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
2194         (frv_optimization_options): Rename to frv_option_optimization.
2195         Make static.
2196         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
2197         * config/h8300/h8300.c (h8300_option_optimization): New.
2198         (TARGET_OPTION_OPTIMIZATION): Define.
2199         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
2200         * config/i386/i386-protos.h (optimization_options): Remove.
2201         * config/i386/i386.c (optimization_options): Rename to
2202         ix86_option_optimization.  Make static.
2203         (TARGET_OPTION_OPTIMIZATION): Define.
2204         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
2205         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
2206         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
2207         (ia64_optimization_options): Rename to ia64_option_optimization.
2208         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
2209         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
2210         commented-out definition.
2211         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
2212         instead of OPTIMIZATION_OPTIONS.
2213         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
2214         (m32r_option_optimization): New.
2215         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
2216         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
2217         Remove.
2218         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
2219         (mcore_option_optimization): New.
2220         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
2221         * config/mep/mep-protos.h (mep_optimization_options): Remove.
2222         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
2223         (mep_optimization_options): Rename to mep_option_optimization.
2224         Make static.  Take unused level and size parameters.
2225         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
2226         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
2227         (mmix_option_optimization): New.
2228         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
2229         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
2230         (pdp11_option_optimization): New.
2231         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
2232         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
2233         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
2234         (optimization_options): Rename to rs6000_option_optimization.
2235         Make static.
2236         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
2237         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
2238         * config/rx/rx.c (rx_set_optimization_options): Rename to
2239         rx_option_optimization.  Make static.  Take unused level and size
2240         parameters.
2241         (TARGET_OPTION_OPTIMIZATION): Define.
2242         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
2243         * config/s390/s390-protos.h (optimization_options): Remove.
2244         * config/s390/s390.c (optimization_options): Rename to
2245         s390_option_optimization.  Make static.  Don't mark size parameter
2246         unused.
2247         (TARGET_OPTION_OPTIMIZATION): Define.
2248         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
2249         * config/sh/sh-protos.h (sh_optimization_options): Remove.
2250         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
2251         (sh_optimization_options): Rename to sh_option_optimization.  Make
2252         static.  Don't mark parameters unused.
2253         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
2254         * config/spu/spu-protos.h (spu_optimization_options): Remove.
2255         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
2256         (spu_optimization_options): Rename to spu_option_optimization.
2257         Make static.
2258         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
2259         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
2260         (v850_option_optimization): New.
2261         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
2262         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
2263         (xtensa_option_optimization): New.
2264         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
2265
2266 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
2267
2268         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
2269         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
2270         * doc/tm.texi: Regenerate.
2271         * system.h (OVERRIDE_OPTIONS): Poison.
2272         * target.def (override): Default to hook_void_void.
2273         * targhooks.c (default_target_option_override): Remove.
2274         * genmodes.c, machmode.def: Update comments mentioning
2275         OVERRIDE_OPTIONS.
2276         * config/alpha/alpha-modes.def: Update comment mentioning
2277         alpha_override_options.
2278         * config/alpha/alpha-protos.h (override_options): Remove.
2279         * config/alpha/alpha.c (override_options): Rename to
2280         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
2281         (TARGET_OPTION_OVERRIDE): Define.
2282         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
2283         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
2284         of OVERRIDE_OPTIONS.
2285         * config/arc/arc-protos.h (arc_init): Remove.
2286         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
2287         (arc_init): Rename to arc_option_override.  Make static.
2288         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
2289         (OVERRIDE_OPTIONS): Remove.
2290         * config/arm/arm-protos.h (arm_override_options): Remove.
2291         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
2292         (arm_override_options): Rename to arm_option_override.  Make
2293         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2294         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
2295         * config/arm/arm.md: Update comment referring to arm_override_options.
2296         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2297         instead of OVERRIDE_OPTIONS.
2298         * config/avr/avr-protos.h (avr_override_options): Remove.
2299         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
2300         (avr_override_options): Rename to avr_option_override.  Make static.
2301         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
2302         * config/bfin/bfin-protos.h (override_options): Remove (twice).
2303         * config/bfin/bfin.c (override_options): Rename to
2304         bfin_option_override.  Make static.
2305         (TARGET_OPTION_OVERRIDE): Define.
2306         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
2307         * config/cris/cris-protos.h (cris_override_options): Remove.
2308         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
2309         (cris_override_options): Rename to cris_option_override.  Make static.
2310         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
2311         * config/frv/frv-protos.h (frv_override_options): Remove.
2312         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
2313         (frv_override_options): Rename to frv_option_override.  Make static.
2314         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
2315         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
2316         * config/h8300/h8300.c (h8300_init_once): Rename to
2317         h8300_option_override.  Make static.
2318         (TARGET_OPTION_OVERRIDE): Define.
2319         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
2320         * config/i386/i386-protos.h (override_options): Remove.
2321         * config/i386/i386.c (override_options): Rename to
2322         ix86_option_override_internal.  Make static.  Comments referring
2323         to this function and callers changed.
2324         (ix86_option_override): New.
2325         (TARGET_OPTION_OVERRIDE): Define.
2326         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
2327         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
2328         * config/ia64/ia64.c (ia64_file_start): Update comment referring
2329         to ia64_override_options.
2330         * config/iq2000/iq2000-protos.h (override_options): Remove.
2331         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
2332         (override_options): Rename to iq2000_option_override.  Make static.
2333         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
2334         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
2335         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
2336         (lm32_override_options): Rename to lm32_option_override.  Make static.
2337         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
2338         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
2339         (m32r_option_override): New.
2340         (m32r_init): Update comment.
2341         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
2342         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
2343         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
2344         (m68hc11_override_options): Rename to m68hc11_option_override.
2345         Make static.  Return void.
2346         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
2347         * config/m68k/m68k-protos.h (override_options): Remove.
2348         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
2349         (override_options): Rename to m68k_option_override.  Make static.
2350         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
2351         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
2352         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
2353         (mcore_override_options): Rename to mcore_option_override.  Make
2354         static.
2355         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
2356         * config/mep/mep-protos.h (mep_override_options): Remove.
2357         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
2358         (mep_override_options): Rename to mep_option_override.  Make static.
2359         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
2360         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
2361         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
2362         (mmix_override_options): Rename to mmix_option_override.  Make static.
2363         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
2364         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
2365         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
2366         (mn10300_override_options): Rename to mn10300_option_override.
2367         Make static.
2368         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
2369         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
2370         * config/moxie/moxie.c (moxie_override_options): Rename to
2371         moxie_option_override.  Make static.
2372         (TARGET_OPTION_OVERRIDE): Define.
2373         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
2374         * config/picochip/picochip-protos.h (picochip_override_options):
2375         Remove.  Update comment referring to picochip_override_options.
2376         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
2377         (picochip_override_options): Rename to picochip_option_override.
2378         Make static.  Update comment and definition of
2379         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
2380         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
2381         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2382         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2383         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2384         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2385         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2386         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
2387         instead of OVERRIDE_OPTIONS.
2388         * config/rs6000/rs6000-modes.def: Update comment referring to
2389         rs6000_override_options.
2390         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
2391         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
2392         (rs6000_override_options): Rename to
2393         rs6000_option_override_internal.  Make static.  Commented
2394         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
2395         (rs6000_option_override): New.
2396         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
2397         instead of OVERRIDE_OPTIONS.
2398         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2399         * config/s390/s390-protos.h (override_options): Remove.
2400         * config/s390/s390.c (override_options): Rename to
2401         s390_option_override.  Make static.
2402         (TARGET_OPTION_OVERRIDE): Define.
2403         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
2404         * config/score/score-protos.h (score_override_options): Remove.
2405         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
2406         (score_override_options): Rename to score_option_override.  Make
2407         static.
2408         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
2409         Update comment referring to override_options.
2410         * config/score/score3.c (score3_override_options): Rename to
2411         score3_option_override.
2412         * config/score/score3.h (score3_override_options): Rename to
2413         score3_option_override.
2414         * config/score/score7.c (score7_override_options): Rename to
2415         score7_option_override.
2416         * config/score/score7.h (score7_override_options): Rename to
2417         score7_option_override.
2418         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
2419         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
2420         (sparc_override_options): Rename to sparc_option_override.  Make
2421         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2422         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
2423         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2424         instead of OVERRIDE_OPTIONS.
2425         * config/spu/spu-protos.h (spu_override_options): Remove.
2426         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
2427         (spu_override_options): Rename to spu_option_override.  Make
2428         static.
2429         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
2430         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
2431         OVERRIDE_OPTIONS.
2432         * config/vax/vax-protos.h (override_options): Remove.
2433         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
2434         (override_options): Rename to vax_option_override.  Make static.
2435         Call SUBTARGET_OVERRIDE_OPTIONS.
2436         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
2437         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
2438         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
2439         * config/xtensa/xtensa-protos.h (override_options): Remove.
2440         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
2441         (override_options): Rename to xtensa_option_override.  Make static.
2442         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
2443
2444 2010-09-16  Richard Guenther  <rguenther@suse.de>
2445
2446         PR tree-optimization/45623
2447         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
2448         (get_constraint_for_component_ref): If computing a constraint
2449         for the rhs handle type punning through unions.
2450         (get_constraint_for_address_of): Adjust.
2451         (get_constraint_for_1): Likewise.
2452         (get_constraint_for): Likewise.
2453         (get_constraint_for_rhs): New function.
2454         (do_structure_copy): Adjust.
2455         (make_constraint_to): Likewise.
2456         (handle_const_call): Likewise.
2457         (find_func_aliases): Likewise.
2458         (process_ipa_clobber): Likewise.
2459         (create_variable_info_for): Likewise.
2460
2461 2010-09-16  Ira Rosen  <irar@il.ibm.com>
2462
2463         * tree-vectorizer.c: Fix documentation.
2464         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
2465         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
2466         is_pattern_stmt_p, is_loop_header_bb_p,
2467         stmt_vinfo_set_inside_of_loop_cost,
2468         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
2469         known_alignment_for_access_p): Likewise.
2470         * tree-vect-loop.c: Fix documentation.
2471         (vect_get_cost): Start function name from new line.
2472         * tree-vect-data-refs.c: Fix documentation.
2473         * tree-vect_stmts.c: Likewise.
2474         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
2475         (vectorizable_store): Free vec_oprnds if allocated.
2476         (vectorizable_condition): Initialize several variables to avoid
2477         warnings.
2478         * tree-vect-slp.c: Fix documentation.
2479
2480 2010-09-16  Richard Guenther  <rguenther@suse.de>
2481
2482         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
2483         is TS_TRANSLATION_UNIT_DECL.
2484         (initialize_tree_contains_struct): Adjust.
2485         (all_translation_units): New global vector.
2486         (build_translation_unit_decl): New function.
2487         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
2488         (struct tree_translation_unit_decl): New.
2489         (all_translation_units): Declare.
2490         (union tree_node): Add translation_unit_decl member.
2491         (build_translation_unit_decl): Declare.
2492         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
2493         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
2494         New function.
2495         (pack_value_fields): Call it.
2496         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
2497         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
2498         (lto_output_tree_pointers): Call it.
2499         * lto-streamer-in.c (lto_input_tree_ref): Handle references
2500         to TRANSLATION_UNIT_DECL.
2501         (unpack_ts_translation_unit_decl_value_fields): New function.
2502         (unpack_value_fields): Call it.
2503         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
2504         (lto_input_tree_pointers): Call it.
2505         * lto-streamer.c (check_handled_ts_structures): Adjust.
2506         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
2507         * c-decl.c (all_translation_units): Remove.
2508         (pop_scope): Use build_translation_unit_decl.
2509         (collect_all_refs): Adjust.
2510         (for_each_global_decl): Likewise.
2511         (c_write_global_declarations): Likewise.
2512
2513 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
2514
2515         PR bootstrap/45686
2516         * fold-const.c (fold_checksum_tree): Change slot from const void **
2517         to void **, use CONST_CAST_TREE to store into *slot.
2518
2519 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2520
2521         * config/i386/i386.md: Remove unneeded empty conditions and
2522         preparation statements from expanders.
2523         * config/i386/mmx.md: Ditto.
2524         * config/i386/sse.md: Ditto.
2525
2526 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2527
2528         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
2529
2530 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2531
2532         PR rtl-optimization/45593
2533         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
2534         insns that were in delay slots as stand-alone insns.
2535
2536 2010-09-15  Ian Lance Taylor  <iant@google.com>
2537
2538         * incpath.c (remove_duplicates): If name is not a directory, issue
2539         a warning rather than an error.
2540
2541 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2542
2543         PR middle-end/45644
2544         * tree-sra.c (create_access): Check for bit-fields directly.
2545
2546 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
2547
2548         PR tree-optimization/45633
2549         * tree-cfg.c (verify_gimple_assign_binary): Allow
2550         MINUS_EXPR with lhs and rhs1 pointer vector and
2551         rhs2 sizetype vector.
2552         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
2553         or vector pointer use TER to optimize pointer subtraction.
2554
2555 2010-09-15  Jie Zhang  <jie@codesourcery.com>
2556
2557         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
2558         fcmpd to fcmps.
2559
2560 2010-09-15  Ian Lance Taylor  <iant@google.com>
2561
2562         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
2563
2564 2010-09-15  Ian Lance Taylor  <iant@google.com>
2565
2566         * function.c (get_arg_pointer_save_area): Set
2567         arg_pointer_save_area_init to true.
2568
2569 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2570
2571         * tree-sra.c (generate_subtree_copies): Updated comment.
2572         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
2573         obtained from the statement iterator instead.
2574         (load_assign_lhs_subreplacements): Removed parameters lhs and
2575         right_offset, which is obtained from top_racc instead.  Parameter lacc
2576         is now expected to be the root of the processed tree rather than root's
2577         first child.  Updated all callers.
2578
2579 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
2580
2581         * config/pdp11/pdp11.c (register_move_cost): Rename to
2582         pdp11_register_move_cost.
2583         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
2584         pdp11_register_move_cost.
2585         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
2586         pdp11_register_move_cost instead of register_move_cost.
2587
2588 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
2589
2590         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
2591         pattern for vmovn. Expansion in case of non
2592         -mvectorize-with-neon-quad.
2593         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
2594         non- -mvectorize-with-neon-quad case.
2595         (move_lo_quad_<mode>): New expansion to vmov into low part.
2596         (move_hi_quad_<mode>): New expansion to vmov into high part.
2597         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
2598         (move_lo_quad_v4sf): Likewise.
2599         (move_lo_quad_v8hi): Likewise.
2600         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
2601         low part.
2602         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
2603         high part.
2604         * config/arm/iterators.md (ANY128): New mode iterator.
2605         (V_narrow_pack): New mode attribute.
2606         (V_HALF): Add attribute.
2607         (V_DOUBLE): Add attribute.
2608         (V_mode_nunits): Add attribute.
2609
2610 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2611
2612         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
2613         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2614
2615 2010-09-15  Olivier Hainque  <hainque@adacore.com>
2616             Jose Ruiz  <ruiz@adacore.com>
2617
2618         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
2619         * config/alpha/osf5-unwind.h: New file.
2620
2621 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2622
2623         PR bootstrap/45672
2624         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2625         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2626         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2627
2628 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2629
2630         * c-lang.h (struct lang_type): Add variable_size GTY option.
2631
2632 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2633
2634         PR bootstrap/45672
2635         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2636
2637 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2638
2639         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
2640         result isn't used in memory address.
2641
2642 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2643
2644         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
2645         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
2646         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2647         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2648         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2649         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2650
2651         * target.def: Add units_per_simd_word to vectorize.
2652
2653         * targhooks.c (default_units_per_simd_word): New.
2654         * targhooks.h (default_units_per_simd_word): Likewise.
2655         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
2656         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2657         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
2658         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2659         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2660         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2661         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2662         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2663
2664         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
2665         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
2666
2667         * tree-vect-stmts.c: Don't include "tm_p.h".
2668         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
2669         with targetm.vectorize.units_per_simd_word.
2670
2671         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
2672
2673         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
2674
2675         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
2676         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2677
2678         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
2679         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
2680
2681         * doc/tm.texi: Regenerated.
2682
2683 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2684
2685         * tree-vect-stmts.c: Include "tm_p.h".
2686
2687         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
2688         out of RTX_CODE.
2689
2690 2010-09-14  Martin Jambor  <mjambor@suse.cz>
2691
2692         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
2693         location of generated statement.  Changed all callers.
2694         (build_ref_for_model): New parameter loc which used to set location of
2695         all generated expressions.  Changed all callers.
2696         (generate_subtree_copies): Likewise.
2697         (init_subtree_with_zero): Likewise.
2698         (sra_modify_expr): Set locations of all generated statements and
2699         expressions to the location the original statement.
2700         (handle_unscalarized_data_in_subtree): Likewise.
2701         (load_assign_lhs_subreplacements): Likewise.
2702         (sra_modify_constructor_assign): Likewise.
2703         (sra_modify_assign): Likewise.
2704
2705 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2706
2707         PR target/45277
2708         PR target/45363
2709         PR target/45407
2710         * doc/install.texi (sparc*-*-*): New section.
2711         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2712
2713 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2714
2715         PR middle-end/45567
2716         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
2717         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
2718         (expand_builtin): Adjust caller.
2719         (expand_builtin_unop): Only use subtarget if it has the right mode.
2720
2721 2010-09-14  Tristan Gingold  <gingold@adacore.com>
2722
2723         * configure.ac (plugins): Fix typos.
2724         * configure: Regenerate.
2725
2726 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2727
2728         PR debug/45660
2729         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
2730         gen_type_die for function/method return type.
2731
2732 2010-09-14  Ira Rosen  <irar@il.ibm.com>
2733
2734         PR tree-optimization/45470
2735         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
2736         can throw an exception.
2737         * tree-vect-stmts.c (vectorizable_call): Likewise.
2738
2739 2010-09-14  DJ Delorie  <dj@redhat.com>
2740
2741         PR target/44749
2742         * config/mep/mep-protos.h (mep_save_register_info,
2743         mep_reinit_regs, mep_init_regs): Declare.
2744
2745         * config/mep/mep.c: Move all target definitions to the end of the
2746         file to avoid the need for duplicate declarations.
2747         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
2748         (mep_reorg_erepeat): Remove unused variables.
2749         (mep_expand_builtin): Likewise.
2750
2751         * config/mep/mep-pragma.c: Don't include rtl.h.
2752         (INVALID_REGNUM): New.
2753         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
2754         functions.
2755         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
2756         Avoid enum/integer math.
2757
2758 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
2759
2760         PR target/44749
2761         * config/mep/t-mep (GTM_H): Add insn-constants.h.
2762         * config/mep/mep.c (mep_conditional_register_usage): Take no
2763         parameters.
2764         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
2765         prototype.
2766         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
2767         call to mep_conditional_register_usage.
2768
2769 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2770
2771         PR debug/43937
2772         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
2773         the DECL as well.
2774
2775 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
2776
2777         PR rtl-optimization/45617
2778         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
2779         even if low N bits of X aren't known to be zero.
2780
2781 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2782
2783         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
2784
2785         * config/i386/i386.c (initial_ix86_tune_features): Add
2786         X86_TUNE_VECTORIZE_DOUBLE.
2787         (ix86_units_per_simd_word): New.
2788
2789         * config/i386/i386.h (ix86_tune_indices): Add
2790         X86_TUNE_VECTORIZE_DOUBLE.
2791         (TARGET_VECTORIZE_DOUBLE): New.
2792         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
2793
2794 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
2795
2796         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
2797         (new_temp_expr_table): Allocate call_cnt vector.
2798         (free_temp_expr_table): Free it.
2799         (process_replaceable): Add call_cnt parm and set in vector.
2800         (find_replaceable_in_bb): Skip replacement if def/use span a call.
2801         (debug_ter): Dump call_cnt value, remove stderr uses.
2802
2803 2010-09-13  Jan Hubicka  <jh@suse.cz>
2804
2805         * tree.c (build_zero_cst): New.
2806         * tree.h (build_zero_cst): Declare.
2807         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
2808         (get_base_constructor): Break out from ...
2809         (fold_const_aggregate_ref): Here; handle empty constructors.
2810
2811 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2812
2813         * config/arm/arm.md: (define_attr "conds"): Update comment.
2814         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
2815         conds attribute to clob.
2816         (arm_sync_compare_and_swapsi): Likewise.
2817         (arm_sync_compare_and_swap<mode>): Likewise.
2818         (arm_sync_lock_test_and_setsi): Likewise.
2819         (arm_sync_lock_test_and_set<mode>): Likewise.
2820         (arm_sync_new_<sync_optab>si): Likewise.
2821         (arm_sync_new_nandsi): Likewise.
2822         (arm_sync_new_<sync_optab><mode>): Likewise.
2823         (arm_sync_new_nand<mode>): Likewise.
2824         (arm_sync_old_<sync_optab>si): Likewise.
2825         (arm_sync_old_nandsi): Likewise.
2826         (arm_sync_old_<sync_optab><mode>): Likewise.
2827         (arm_sync_old_nand<mode>): Likewise.
2828
2829 2010-09-13  Olivier Hainque  <hainque@adacore.com>
2830
2831         * fwprop.c (forward_propagate_and_simplify): Only attach a
2832         REG_EQUAL note to an insn if the destination is a register.
2833         * gcse.c (try_replace_reg): Likewise.
2834
2835 2010-09-13  Richard Guenther  <rguenther@suse.de>
2836
2837         PR tree-optimization/45611
2838         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
2839         (copy_ref_info): Likewise.
2840
2841 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
2842
2843         PR debug/45604
2844         PR debug/45419
2845         PR debug/45408
2846         * tree-pretty-print.c (dump_generic_node): Disregard top-level
2847         types of MEM_REF pointer types to the same type.
2848
2849 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
2850
2851         PR rtl-optimization/41087
2852         * ifcvt.c (noce_get_condition): Don't allow conditions with
2853         side-effects.
2854
2855 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
2856
2857         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2858         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
2859         * config/frv/frv.c (frv_register_move_cost): Make static. Change
2860         arguments type to reg_class_t. Add mode argument.
2861         (frv_memory_move_cost): New.
2862         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
2863
2864 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2865
2866         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
2867         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
2868
2869 2010-09-10  Jan Hubicka  <jh@suse.cz>
2870
2871         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
2872
2873 2010-09-10  Richard Guenther  <rguenther@suse.de>
2874
2875         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
2876         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
2877         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
2878         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
2879         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2880
2881 2010-09-10  Richard Guenther  <rguenther@suse.de>
2882
2883         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
2884         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
2885         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
2886         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
2887
2888 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
2889
2890         PR middle-end/45634
2891         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
2892         of string folding is of integral type.
2893
2894 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
2895
2896         * doc/invoke.texi (-x): Fix typo.
2897
2898 2010-09-10  Richard Guenther  <rguenther@suse.de>
2899
2900         PR debug/44115
2901         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
2902         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2903         Output DECL_DEBUG_EXPR.
2904         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
2905         Input DECL_DEBUG_EXPR.
2906
2907 2010-09-10  Richard Guenther  <rguenther@suse.de>
2908
2909         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
2910         (build_index_type): Implement in terms of build_range_type.
2911         (build_range_type): Do not allow NULL_TREE type, improve
2912         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
2913         if we didn't hash.
2914         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
2915         create a distinct copy of the type.
2916
2917 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
2918
2919         * configure: Regenerated.
2920         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
2921
2922 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2923
2924         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
2925         * config/arm/cortex-a9-neon.md: New and partially generated.
2926         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
2927
2928 2010-09-10  Richard Guenther  <rguenther@suse.de>
2929
2930         * tree.h (build_index_2_type): Remove.
2931         * tree.c (build_index_2_type): Remove.
2932
2933 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
2934
2935         PR bootstrap/45630
2936         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
2937         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
2938         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
2939
2940 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2941
2942         PR tree-optimization/44972
2943         * tree-sra.c: Include toplev.h.
2944         (build_ref_for_offset): Entirely reimplemented.
2945         (build_ref_for_model): New function.
2946         (build_user_friendly_ref_for_offset): New function.
2947         (analyze_access_subtree): Removed build_ref_for_offset check.
2948         (propagate_subaccesses_across_link): Likewise.
2949         (create_artificial_child_access): Use
2950         build_user_friendly_ref_for_offset.
2951         (propagate_subaccesses_across_link): Likewise.
2952         (ref_expr_for_all_replacements_p): Removed.
2953         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
2954         (sra_modify_expr): Use build_ref_for_model.
2955         (load_assign_lhs_subreplacements): Likewise.
2956         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
2957         checks for return values of build_ref_for_offset.
2958         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
2959         build_ref_for_offset.
2960         * ipa-prop.h: Include gimple.h
2961         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
2962         (ipa_analyze_indirect_call_uses): Update comment.
2963         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
2964         (IPA_PROP_H): Likewise.
2965
2966 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2967
2968         PR tree-optimization/44972
2969         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
2970         calling build_ref_for_offset.
2971
2972 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2973
2974         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
2975         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
2976         * config/arm/arm-tune.md: Regenerate.
2977         * doc/invoke.texi (ARM Options): Document it.
2978
2979 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
2980
2981         * config/i386/i386.c: Include sched-int.h.
2982         (TARGET_SCHED_DISPATCH): Defined.
2983         (TARGET_SCHED_DISPATCH_DO): Defined.
2984         (DISPATCH_WINDOW_SIZE): Defined.
2985         (MAX_DISPATCH_WINDOWS): Defined.
2986         (MAX_INSN): Defined.
2987         (MAX_IMM): Defined.
2988         (MAX_IMM_SIZE): Defined.
2989         (MAX_IMM_32): Defined.
2990         (MAX_IMM_64): Defined.
2991         (MAX_LOAD): Defined.
2992         (MAX_STORE): Defined.
2993         (BIG): Defined.
2994         (dispatch_group): New.
2995         (num_allowable_groups): New.
2996         (group_name): New.
2997         (sched_insn_info_s): New.
2998         (dispatch_windows_s): New.
2999         (imm_info_s): New.
3000         (dispatch_window_list): New.
3001         (dispatch_window_list1): New.
3002         (get_mem_group): New.
3003         (is_cmp): New.
3004         (dispatch_violation): New.
3005         (is_branch): New.
3006         (is_prefetch): New.
3007         (init_window): New.
3008         (allocate_window): New.
3009         (init_dispatch_sched): New.
3010         (is_end_basic_block): New.
3011         (process_end_window): New.
3012         (allocate_next_window): New.
3013         (find_constant_1): New.
3014         (find_constant): New.
3015         (get_num_immediates): New.
3016         (has_immediate): New.
3017         (get_insn_path): New.
3018         (get_insn_group): New.
3019         (count_num_restricted): New.
3020         (fits_dispatch_window): New.
3021         (add_insn_window): New.
3022         (add_to_dispatch_window): New.
3023         (debug_dispatch_window_file): New.
3024         (debug_dispatch_window): New.
3025         (debug_insn_dispatch_info_file): New.
3026         (debug_ready_dispatch): New.
3027         (do_dispatch): New.
3028         (has_dispatch): New.
3029         * config/i386/i386.h (debug_ready_dispatch): Declared.
3030         (debug_dispatch_window): Declared.
3031         * config/i386/i386.opt (mdispatch-scheduler): New flag.
3032         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
3033         (TARGET_SCHED_DISPATCH_DO): New.
3034         * doc/tm.texi: Regererated.
3035         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
3036         ready_remove_first_dispatch
3037         (schedule_block): Call targetm.sched.dispatch and
3038         targetm.sched.dispatch_do.
3039         (sched_init): Call targetm.sched.dispatch and
3040         targetm.sched.dispatch_do.
3041         (ready_remove_first_dispatch): New.
3042         (number_in_ready): New.
3043         (get_ready_element): New.
3044         * hooks.c (hook_bool_rtx_int_false): New.
3045         (hook_void_rtx_int): New.
3046         * hooks.h (hook_bool_rtx_int_false): Declared.
3047         (hook_void_rtx_int): Declared.
3048         * sched-int.h (IS_DISPATCH_ON): Defined.
3049         (IS_CMP): Defined.
3050         (DISPATCH_VIOLATION): Defined.
3051         (FITS_DISPATCH_WINDOW): Defined.
3052         (DISPATCH_INIT): Defined.
3053         (ADD_TO_DISPATCH_WINDOW): Defined.
3054         (get_ready_element): Declared.
3055         (number_in_ready): Declared.
3056         * target.def (dispatch): Defined.
3057         (dispatch_do): Defined.
3058
3059 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3060
3061         PR middle-end/45312
3062         * reload1.c (merge_assigned_reloads): Remove.
3063         (reload_as_needed): Don't call it.
3064
3065 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
3066
3067         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
3068         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3069         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3070
3071 2010-09-09  Matthias Klose  <doko@ubuntu.com>
3072
3073         PR bootstrap/43847
3074         * configure.ac (--enable-plugin): Enhance for cross builds.
3075         * configure: Regenerate.
3076
3077 2010-09-09  Jan Hubicka  <jh@suse.cz>
3078
3079         PR tree-optimization/45598
3080         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
3081         string folding is of integral type.
3082
3083 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
3084
3085         * configure.ac (gnu_indirect_function): New test.
3086         * configure: Rebuilt.
3087         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
3088         * defaults.h (IFUNC_ASM_TYPE): Provide default.
3089
3090         * doc/extend.texi (Function Attributes): Document ifunc.
3091         * varasm.c (do_assemble_alias): Deal with ifuncs too.
3092
3093 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3094
3095         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
3096         epilogue instruction move.
3097
3098 2010-09-09  Jan Hubicka  <jh@suse.cz>
3099
3100         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
3101         command line to allow more partitions than input files.
3102
3103 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3104
3105         PR middle-end/44554
3106         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
3107
3108 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3109
3110         PR middle-end/40386
3111         * ira.c (pseudo_for_reload_consideration_p): Don't use
3112         flag_ira_share_spill_slots.
3113
3114 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3115
3116         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
3117         point zero operands that fit into a single GPR.
3118         (s390_preferred_reload_class): Ensure we only return general-purpose
3119         register classes.
3120         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
3121         floating-point zero operands into GPRs.
3122         ("*mov<mode>_64"): Likewise.
3123         ("mov<mode>"): Likewise using lhi.
3124
3125 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3126
3127         * config/s390/s390.c (s390_symref_operand_p): Return false for
3128         literal pool references.
3129         (s390_check_qrst_address): Update caller.
3130
3131 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
3132
3133         * config/i386/predicates.md (ext_register_operand): Check that
3134         SUBREG_REG is really a register before looking for REGNO.
3135         (reg_not_xmm0_operand): Handle SUBREGs correctly.
3136         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
3137
3138 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
3139
3140         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
3141         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
3142         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
3143         * print-rtl.c (print_rtx): Likewise.
3144         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
3145         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
3146         for ADDR_EXPR with non-addressable object.
3147         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
3148         (struct dw_val_struct): Add v.val_decl_ref.
3149         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
3150         Handle DW_OP_GNU_implicit_pointer.
3151         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
3152         (get_ref_die_offset_label): New function.
3153         (implicit_ptr_descriptor): New function.
3154         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
3155         (loc_descriptor): Likewise.
3156         (gen_variable_die): Put even definitions into decl_die_table.
3157         (resolve_addr_in_expr): Resolve still unresolved
3158         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
3159         return false.
3160         (dwarf2out_finish): Call output_location_lists after outputting
3161         .debug_info and .debug_abbrev instead of before.
3162
3163 2010-09-09  Roland McGrath  <roland@redhat.com>
3164
3165         * dwarf2out.c (DWARF_REF_SIZE): Define.
3166         (size_of_loc_descr): Use it for DW_OP_call_ref.
3167
3168 2010-09-09  Alan Modra  <amodra@gmail.com>
3169
3170         * doc/invoke.text: Reinstate mcmodel=medium.
3171         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3172         CMODEL_MEDIUM as default.
3173         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
3174         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
3175         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
3176         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
3177
3178 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3179
3180         PR target/45250
3181         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
3182         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
3183         (builtin_longjmp): Likewise.
3184         (allocate_stack): Use hard_frame_pointer_rtx instead of
3185         frame_pointer_rtx.
3186         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
3187         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
3188         (pa_can_eliminate): Likewise.
3189         (TARGET_INTERNAL_ARG_POINTER): Define.
3190         (TARGET_CAN_ELIMINATE): Define.
3191         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
3192         pointer.
3193         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
3194         (pa_internal_arg_pointer, pa_can_eliminate,
3195         pa_initial_elimination_offset): New.
3196         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
3197         (HARD_FRAME_POINTER_REGNUM): Set to register three.
3198         (INITIAL_FRAME_POINTER_OFFSET): Delete.
3199         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
3200         Define.
3201         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
3202         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
3203         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
3204         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
3205         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
3206         new soft frame pointer.
3207         * config/pa/pa64-regs.h: Likewise.
3208
3209 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
3210
3211         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
3212         numerical constant.
3213         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
3214
3215 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
3216
3217         PR debug/45531
3218         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
3219
3220 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
3221
3222         PR debug/45419
3223         PR debug/45408
3224         * tree-pretty-print.c (dump_generic_node): Disregard top-level
3225         qualifiers in otherwise equal MEM_REF pointer types.
3226         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
3227         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
3228
3229 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3230
3231         PR target/44392
3232         * config/arm/arm.md (bswapsi2): Handle condition correctly
3233         for armv6 and optimize_size.
3234
3235 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3236
3237         PR other/18555
3238         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
3239
3240 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
3241
3242         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
3243         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
3244         ix86_expand_strlen, legitimate_pic_address_disp_p,
3245         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
3246         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
3247         ix86_check_movabs, ix86_secondary_memory_needed): Change function
3248         prototype to bool.
3249         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
3250         return_in_memory_ms_64, ix86_check_movabs,
3251         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
3252         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
3253         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
3254         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
3255         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
3256         ix86_secondary_memory_needed): Change to bool.  Return
3257         "true" and "false" values.
3258         * config/i386/i386.md: Return "true" and "false" values.
3259
3260 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3261
3262         * doc/sourcebuild.texi (Effective-Target Keywords): Document
3263         run_expensive_tests.
3264
3265 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3266
3267         * toplev.c (output_stack_usage): Use lbasename instead of basename.
3268
3269 2010-09-08  Martin Jambor  <mjambor@suse.cz>
3270
3271         PR other/45443
3272         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
3273         at -O3.
3274
3275 2010-09-08  Richard Guenther  <rguenther@suse.de>
3276
3277         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
3278         (visit): Adjust.
3279         (iterative_hash_gimple_type): Likewise.
3280         (gimple_type_hash): Likewise.
3281         (gimple_register_type): Likewise.
3282         (print_gimple_types_stats): Likewise.
3283         (free_gimple_type_tables): Likewise.
3284
3285 2010-09-08  Michael Matz  <matz@suse.de>
3286
3287         PR tree-optimization/43430
3288         * tree-vect-stmts.c (vectorizable_condition): Support multiple
3289         copies for conditional statements if it's not part of a reduction.
3290
3291 2010-09-08  Michael Matz  <matz@suse.de>
3292
3293         PR tree-optimization/33244
3294         * tree-ssa-sink.c (statement_sink_location): Don't sink into
3295         empty loop latches.
3296
3297 2010-09-08  Richard Guenther  <rguenther@suse.de>
3298
3299         PR tree-optimization/45578
3300         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
3301         Be more careful when transfering alignment information to
3302         the new induction variable.
3303         (copy_ref_info): Likewise.
3304
3305 2010-09-08  Richard Guenther  <rguenther@suse.de>
3306
3307         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
3308         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
3309
3310 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
3311
3312         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
3313         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
3314
3315 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3316
3317         PR doc/45587
3318         * doc/md.texi: Fixed modes on several standard pattern names.
3319
3320 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
3321
3322         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
3323         (ashl<mode>3): ...this.
3324         (loongson_psra<V_suffix>): Rename to...
3325         (ashr<mode>3): ...this.
3326         (loongson_psrl<V_suffix>): Rename to...
3327         (lshr<mode>3): ...this.
3328         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
3329         (CODE_FOR_loongson_psllw): Define.
3330         (CODE_FOR_loongson_psrlh): Define.
3331         (CODE_FOR_loongson_psrlw): Define.
3332         (CODE_FOR_loongson_psrah): Define.
3333         (CODE_FOR_loongson_psraw): Define.
3334
3335 2010-09-07  Richard Henderson  <rth@redhat.com>
3336
3337         * tree-vect-data-refs.c: Include tm_p.h.
3338         * Makefile.in (tree-vect-data-refs.o): Update deps.
3339         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
3340         Move delarations outside #ifdef RTX_CODE.
3341
3342 2010-09-07  Richard Henderson  <rth@redhat.com>
3343
3344         * final.c (rest_of_handle_final): Unconditionally do
3345         output_function_exception_table before assemble_end_function.
3346
3347 2010-09-07  Jan Hubicka  <jh@suse.cz>
3348
3349         * tree-inline.c (tree_inlinable_function_p): Do not test
3350         DECL_REPLACEABLE_P.
3351         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
3352         update_callee_keys, cgraph_decide_inlining): Test function availability.
3353         * cif-code.def (OVERWRITABLE): New code.
3354
3355 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
3356             Jack Howarth  <howarth@bromo.med.uc.edu>
3357
3358         PR target/36502
3359         PR target/42313
3360         PR target/44651
3361         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
3362         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
3363         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
3364         MAX macro.
3365
3366 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3367
3368         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
3369         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
3370
3371 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3372
3373         * config.gcc: Don't append t-android for Android targets.
3374
3375         * config/t-android: Removed.
3376
3377 2010-09-07  Richard Henderson  <rth@redhat.com>
3378
3379         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
3380         * doc/tm.texi.in: Add doc marker.
3381         * doc/tm.texi: Rebuild.
3382         * except.c (switch_to_exception_section): Always build.
3383         (output_one_function_exception_table): Move section switch,
3384         personality output, and label output ...
3385         (output_function_exception_table): ... here.  Use the new
3386         personality hook.
3387
3388         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
3389         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
3390         TARGET_ASM_INIT_SECTIONS): New.
3391         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
3392         make static.
3393         (TARGET_ASM_UNWIND_EMIT): Update to match.
3394         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
3395
3396         * config/arm/arm.c (arm_asm_emit_except_personality): New.
3397         (arm_asm_init_sections): New.
3398         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
3399
3400 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3401
3402         * config/arm/arm.md: Remove unused variable.
3403
3404 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
3405
3406         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3407         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
3408         (m32r_memory_move_cost): New function.
3409
3410 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3411
3412         * config.gcc: Append t-android for Android targets.
3413
3414         * config/t-android: New.
3415
3416 2010-09-07  Richard Henderson  <rth@redhat.com>
3417
3418         * target.def (unwind_emit_before_insn): New hook.
3419         * doc/tm.texi.in: Add @hook marker for it.
3420         * doc/tm.texi: Rebuild.
3421         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
3422
3423 2010-09-07  Martin Jambor  <mjambor@suse.cz>
3424
3425         PR fortran/43665
3426         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
3427         are any type attributes.
3428
3429 2010-09-07  Jan Hubicka  <jh@suse.cz>
3430
3431         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
3432         array_ref_low_bound in string access folding.
3433
3434 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
3435
3436         PR target/45206
3437         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
3438         eh_return fixup sequence.
3439
3440 2010-09-07  Jan Hubicka  <jh@suse.cz>
3441
3442         * gimple-fold.c (maybe_fold_reference): Verify that operand is
3443         gimple_min_invariant.
3444
3445 2010-09-07  Richard Guenther  <rguenther@suse.de>
3446
3447         PR middle-end/45569
3448         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
3449         nor CONSTRUCTOR can trap.
3450         * tree-complex.c (update_complex_assignment): Update EH info.
3451
3452 2010-09-07  Richard Guenther  <rguenther@suse.de>
3453
3454         PR middle-end/45569
3455         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
3456         * passes.c (execute_function_todo): Do not verify anything if
3457         we saw errors.
3458
3459 2010-09-07  Richard Guenther  <rguenther@suse.de>
3460
3461         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
3462
3463 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3464
3465         PR target/43137
3466         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
3467         New define_mode_attrs.
3468         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
3469         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
3470         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
3471         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
3472         Remove pool_range attribute.
3473         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
3474         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
3475         pool_range and neg_pool_range attributes.
3476         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
3477         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
3478         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
3479
3480 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3481
3482         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
3483         check glibc.
3484
3485 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3486
3487         PR target/22152
3488         * config/i386/mmx.md (*mov<mode>_internal_rex64,
3489         *mov<mode>_internal_avx, *mov<mode>_internal,
3490         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
3491         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
3492
3493 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
3494
3495         * c-typeck.c (do_warn_double_promotion): Remove.
3496         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
3497         Objective-C++ too.
3498
3499 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
3500
3501         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
3502         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
3503         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
3504         argument type to reg_class_t. Change result type to bool.
3505         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3506
3507 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3508
3509         PR libobjc/19850
3510         * gthr-posix.h (__gthread_objc_thread_detach): Use
3511         _objc_thread_attribs when detaching a thread.
3512         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
3513
3514 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3515
3516         PR target/45524
3517         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
3518         * configure: Regenerated.
3519
3520 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3521
3522         * combine.c (try_combine): Set subst_low_luid to i0.
3523
3524 2010-09-06  Richard Guenther  <rguenther@suse.de>
3525
3526         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
3527         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
3528         (build_aligned_type): Declare.
3529         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
3530         (check_aligned_type): New function.
3531         (build_aligned_type): Likewise.
3532         * expr.c (expand_assignment): Handle misaligned stores via
3533         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
3534         (expand_expr_real_1): Likewise.
3535         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
3536         * tree-vect-stmts.c (vectorizable_store): Do not build
3537         MISALIGNED_INDIRECT_REF but initialize alignment information.
3538         (vectorizable_load): Likewise.
3539         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
3540         handling.
3541         * cfgexpand.c (expand_debug_expr): Likewise.
3542         * dwarf2out.c (loc_list_from_tree): Likewise.
3543         * fold-const.c (maybe_lvalue_p): Likewise.
3544         (operand_equal_p): Likewise.
3545         (build_fold_addr_expr_with_type_loc): Likewise.
3546         * gimplify.c (gimplify_addr_expr): Likewise.
3547         (gimplify_expr): Likewise.
3548         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
3549         (verify_gimple_assign_single): Likewise.
3550         * tree-dump.c (dequeue_and_dump): Likewise.
3551         (tree_could_trap_p): Likewise.
3552         * tree-predcom.c (ref_at_iteration): Likewise.
3553         * tree-pretty-print.c (dump_generic_node): Likewise.
3554         (op_code_prio): Likewise.
3555         (op_symbol_code): Likewise.
3556         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3557         * tree-ssa-loop-im.c (for_each_index): Likewise.
3558         (gen_lsm_tmp_name): Likewise.
3559         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
3560         (find_interesting_uses_address): Likewise.
3561         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3562         * tree-ssa-operands.c (get_expr_operands): Likewise.
3563         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3564         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3565         (ao_ref_init_from_vn_reference): Likewise.
3566         * tree.c (staticp): Likewise.
3567         (build1_stat): Likewise.
3568         (reference_alias_ptr_type): Likewise.
3569         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3570         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
3571         MISALIGNED_INDIRECT_REF handling.
3572
3573 2010-09-06  Richard Guenther  <rguenther@suse.de>
3574
3575         PR tree-optimization/45534
3576         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
3577         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
3578         on the target.
3579         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
3580         valid on the target.
3581
3582 2010-09-06  Andreas Schwab  <schwab@redhat.com>
3583
3584         * configure.ac: Quote argument of AC_MSG_WARN.
3585         * configure: Regenerate.
3586
3587 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
3588
3589         * sel-sched.c (move_cond_jump): Correct arguments to
3590         maybe_tidy_empty_bb.
3591         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
3592
3593 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
3594
3595         PR rtl-optimization/44919
3596         * sel-sched.c (move_cond_jump): Remove assert, check that
3597         the several blocks case can only happen with mutually exclusive
3598         insns instead.  Rewrite the movement code to support moving through
3599         several basic blocks.
3600
3601 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3602
3603         * config/i386/i386.md (iptrsize): New mode attribute.
3604         (tp_seg): Ditto.
3605         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
3606         mode iterator.
3607         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
3608         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
3609         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
3610         (stack_tls_protect_set_<mode>): Ditto from
3611         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
3612         of thread base pointer load.
3613         (stack_tls_protect_test_<mode>): Ditto from
3614         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
3615         of thread base pointer load.
3616         (stack_protect_set): Rewrite using indirect functions.
3617         (stack_protect_test): Ditto.
3618         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
3619         (ix86_print_operand): Handle '@'.
3620
3621 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
3622
3623         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
3624         MINUS_EXPR.
3625
3626 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
3627
3628         * doc/invoke.texi: Document -Wdouble-promotion.
3629         * c-typeck.c (convert_arguments): Check for implicit conversions
3630         from float to double.
3631         (do_warn_double_promotion): New function.
3632         (build_conditional_expr): Use it.
3633         (build_binary_op): Likewise.
3634
3635 2010-09-05  Richard Guenther  <rguenther@suse.de>
3636
3637         PR tree-optimization/45535
3638         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
3639         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
3640         dereferencing it.
3641         (indirect_refs_may_alias_p): Likewise.
3642
3643 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
3644
3645         * config/sh/sh.c (sh_option_override): Make static.
3646         Adjust comments.  Declare.
3647         (sh_function_value_regno_p): Likewise.
3648         (sh_register_move_cost): Modify the arguments, make static.
3649         Adjust comments.  Declare.
3650         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
3651         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3652         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
3653         REGISTER_MOVE_COST): Delete.
3654         * config/sh/sh-protos.h (sh_override_options): Delete.
3655         (sh_register_move_cost): Delete.
3656         (sh_function_value_regno_p): Delete.
3657
3658 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
3659
3660         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
3661         m32r_function_value_regno_p): New functions.
3662         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3663         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
3664         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
3665         FUNCTION_VALUE_REGNO_P): Remove.
3666
3667 2010-09-04  Jan Hubicka  <jh@suse.cz>
3668
3669         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
3670         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
3671         fold_read_from_constant_string.
3672
3673         * gimple.h (canonicalize_constructor_val): Declare.
3674         * gimple-fold.c (canonicalize_constructor_val): New function.
3675         (get_symbol_constant_value):Use it.
3676         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3677
3678 2010-09-04  Jan Hubicka  <jh@suse.cz>
3679
3680         * tree-switch-conversion.c (build_one_array): Set constructor to be
3681         static.
3682         * varpool.c (varpool_finalize_decl): Compute const_value_known.
3683
3684 2010-09-04  Richard Guenther  <rguenther@suse.de>
3685
3686         PR bootstrap/45519
3687         * tree-flow.h (force_gimple_operand_1): Declare.
3688         (force_gimple_operand_gsi_1): Likewise.
3689         * gimplify.c (force_gimple_operand_1): New worker taking a
3690         gimple predicate for ...
3691         (force_gimple_operand): ... which now wraps it.
3692         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
3693         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
3694         last change.
3695         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
3696         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
3697         (create_mem_ref): Likewise.
3698
3699 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
3700
3701         * config/i386/predicates.md (sse_reg_operand): New predicate.
3702         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
3703         predicate for operand 1.
3704         (XFmode push splitter): Use fp_register_operand predicate
3705         for operand 1.
3706         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
3707         (SF-DF float_extend push splitter): Add reload_completed insn
3708         predicate.
3709         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
3710         MODEF mode macro.  Add reload_completed insn predicate.
3711
3712 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
3713
3714         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
3715         (struct df_extract_ref): Remove.
3716         (union df_ref_d): Remove extract_ref member.
3717         (df_ref_create): Remove last three arguments.
3718         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
3719         * df-scan.c (df_ref_record): Remove last three arguments, do not
3720         pass them to df_ref_create_structure.
3721         (df_uses_record): Remove first and last three arguments.  Replace
3722         first argument with DF_REF_REGULAR, adjust calls to remove the
3723         width, offset and mode.  Always call recursively on the second
3724         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
3725         (df_ref_create_structure): Remove first argument.
3726         (struct df_scan_problem_data): Remove ref_extract_pool.
3727         (df_scan_free_internal): Do not free it.
3728         (df_scan_alloc): Do not allocate it.
3729         (df_ref_create): Remove last three arguments, do not pass them to
3730         df_ref_create_structure.
3731         (df_free_ref): Remove DF_REF_EXTRACT case.
3732         (df_notes_rescan): Adjust call to df_uses_record.
3733         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3734         Remove DF_REF_EXTRACT case.
3735         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
3736         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
3737         and SUBREG definitions.
3738         (df_get_conditional_uses): Remove references to width/offset/mode,
3739         adjust call to df_ref_create_structure.
3740         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3741         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
3742         calls to df_uses_record and df_ref_record.
3743         * fwprop.c (update_df): Remove references to width/offset/mode,
3744         adjust call to df_ref_create.
3745
3746 2010-09-03  Jan Hubicka  <jh@suse.cz>
3747
3748         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
3749         (build_cdtor_fns): Update use of build_cdtor.
3750
3751 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
3752
3753         * doc/options.texi (SeparateAlias): Document.
3754         * opt-functions.awk (switch_flags): Handle SeparateAlias.
3755         * opth-gen.awk: Generate enumeration names for options marked
3756         SeparateAlias, but not for those marked Ignore.
3757         * opts-common.c (generate_canonical_option): Don't output separate
3758         argument for options marked CL_SEPARATE_ALIAS.
3759         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
3760         * opts.h (CL_SEPARATE_ALIAS): New.
3761         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3762         CL_COMMON): Adjust definitions.
3763         * config/i386/darwin.opt, config/mips/sde.opt: New.
3764         * common.opt (fdump-final-insns): New.
3765         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3766         i386/darwin.opt.
3767         (mips*-sde-elf*): Add mips/sde.opt.
3768         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
3769         -mno-data-in-code and -mcode-xonly here.
3770         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
3771         * gcc.c (option_map): Add "j" to --dump entry.
3772         (translate_options): Don't translate -d to -foutput-class-dir= here.
3773
3774 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
3775
3776         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
3777         DR_IS_WRITE.
3778         (compute_all_dependences): Same.
3779         (create_rdg_edge_for_ddr): Same.
3780         * tree-data-ref.h (DR_IS_WRITE): New.
3781         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
3782         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
3783         (write_memrefs_written_at_least_once): Same.
3784         * tree-predcom.c (suitable_component_p): Same.
3785         (determine_roots_comp): Same.
3786         (execute_load_motion): Same.
3787         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
3788         (vect_enhance_data_refs_alignment): Same.
3789         (vect_analyze_group_access): Same.
3790
3791 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3792
3793         PR testsuite/42843
3794         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
3795         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
3796
3797 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
3798
3799         * dwarf2out.c (file scope): Remove #if0'd code.
3800         (gen_subprogram_die): Same.
3801
3802 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3803
3804         PR middle-end/45484
3805         * dwarf2out.c (flush_queued_reg_saves): Rename to...
3806         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
3807         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
3808         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
3809         * config/i386/i386.c (output_set_got): Call it.
3810
3811 2010-09-03  Michael Matz  <matz@suse.de>
3812
3813         PR middle-end/45415
3814         * tree-sra.c (sra_modify_assign): If we modify the statement,
3815         say so.
3816
3817         * tree-ssa.c (verify_ssa): Check number of operands and links
3818         per statement to agree.
3819
3820 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3821             Iain Sandoe  <iains@gcc.gnu.org>
3822
3823         PR target/45476
3824         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
3825         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
3826         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3827
3828 2010-09-03  Richard Guenther  <rguenther@suse.de>
3829
3830         * lto-streamer-out.c (output_function): Output function
3831         start and end loci.
3832         * lto-streamer-in.c (input_function): Input function start
3833         and end loci.
3834
3835 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3836
3837         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
3838         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
3839         * configure: Regenerate.
3840         * aclocal.m4: Regenerate.
3841
3842 2010-09-03  Jan Hubicka  <jh@suse.cz>
3843
3844         PR lto/44812
3845         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
3846         on functions/variables in other partition.
3847
3848 2010-09-03  Jan Hubicka  <jh@suse.cz>
3849
3850         * cgraph.h (struct varpool_node): Add const_value_known.
3851         (varpool_decide_const_value_known): Declare.
3852         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
3853         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
3854         (input_varpool_node): Restore const_value_known.
3855         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
3856         initializer folding.
3857         * ipa.c (ipa_discover_readonly_nonaddressable_var,
3858         function_and_variable_visibility): Compute const_value_known.
3859         * gimple-fold.c (get_symbol_constant_value): Use varpool for
3860         initializer folding.
3861         * varpool.c (varpool_decide_const_value_known): New function.
3862
3863 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3864
3865         * config/i386/i386.md: Remove empty preparation statements
3866         from splitters.
3867
3868 2010-09-03  Jan Hubicka  <jh@suse.cz>
3869
3870         * passes.c (rest_of_decl_compilation): Do not add local vars into
3871         varpool.
3872         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
3873         static or extern vars are in varpool.
3874         (varpool_finalize_decl): Sanity check that only static vars are
3875         finalized.
3876
3877 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3878
3879         PR debug/45500
3880         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
3881         not just generic vectors with BLKmode.
3882
3883 2010-09-03  Richard Guenther  <rguenther@suse.de>
3884
3885         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
3886         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
3887         * tree.h (TMR_SYMBOL): Remove.
3888         (TMR_BASE, TMR_OFFSET): Adjust.
3889         (TMR_INDEX2): New.
3890         * alias.c (ao_ref_from_mem): Use TMR_BASE.
3891         * builtins.c (get_object_alignment): Merge TMR_BASE and
3892         TMR_SYMBOL handling.
3893         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
3894         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
3895         handling.  Also allow TARGET_MEM_REF as base address.
3896         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
3897         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
3898         base.  Gimplify TMR_INDEX2.
3899         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
3900         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3901         (get_addr_base_and_unit_offset): Likewise.
3902         * tree-eh.c (tree_could_trap_p): Likewise.
3903         * tree-pretty-print.c (dump_generic_node): Likewise.
3904         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
3905         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
3906         base to index2.
3907         (get_address_description): Reconstruct addres description
3908         from merged TMR_BASE and TMR_INDEX2.
3909         (maybe_fold_tmr): Fold propagated addresses.
3910         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
3911         MEM_REF and TARGET_MEM_REF paths.
3912         (indirect_refs_may_alias_p): Likewise.
3913         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
3914         instead of TMR_SYMBOL.
3915         * tree-ssa-operands.c (get_tmr_operands): Simplify.
3916         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
3917         according to changes ...
3918         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
3919         Split TARGET_MEM_REF into two fields plus the base.
3920         * tree.c (mem_ref_offset): Simplify.
3921         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
3922         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3923         Strip NOPs when folding MEM_REF addresses.
3924         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
3925         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
3926         (fold_gimple_assign): ... not here.
3927
3928 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
3929
3930         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
3931         * config/mips/mips.c (mips_shift_truncation_mask): New function.
3932         (TARGET_SHIFT_TRUNCATION_MASK): Define.
3933
3934 2010-09-02  Richard Henderson  <rth@redhat.com>
3935
3936         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
3937         instead of readelf in the test.
3938         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
3939         in the .debug_frame section for coff targets.
3940         * configure: Rebuild.
3941
3942 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3943
3944         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
3945         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
3946         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3947         (m32c_class_likely_spilled_p): Make static. Change argument type to
3948         reg_class_t. Change result type to bool.
3949
3950 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3951
3952         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
3953         to convert (double)(long) into a single FRIZ instruction or not
3954         when -ffast-math is used.
3955
3956         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
3957         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
3958         or FRIZ instruction if -ffast-math.
3959         * config/rs6000/rs6000.md (friz): Ditto.
3960
3961         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
3962
3963 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3964
3965         * opth-gen.awk (quote, comma): Remove unused variables.
3966
3967 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
3968
3969         * arm.c (arm_override_options): Correct fall-back code to use
3970         SUBTARGET_CPU_DEFAULT.
3971
3972 2010-09-02  Julian Brown  <julian@codesourcery.com>
3973
3974         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
3975         unspecs.
3976         (vcond<mode>, vcondu<mode>): New expanders.
3977         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
3978         comparisons with zero.
3979         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
3980         * config/arm/constraints.md (Dz): New constraint.
3981
3982 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3983
3984         * target.def (class_likely_spilled_p): New hook.
3985         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
3986         * doc/tm.texi: Regenerate.
3987         * targhooks.c (default_class_likely_spilled_p): New function.
3988         * targhooks.h (default_class_likely_spilled_p): Declare.
3989         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
3990         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
3991         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
3992         Use fixed_reg_set instead of fixed_regs.
3993         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3994         * calls.c (avoid_likely_spilled_reg): Ditto.
3995         * ira-conflicts.c (ira_build_conflicts): Ditto.
3996         * ira.c (update_equiv_regs): Ditto.
3997         * mode-switching.c (create_pre_exit): Ditto.
3998         * regmove.c (find_matches): Ditto.
3999         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
4000         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
4001         (small_register_class_p): New inline function.
4002         (push_secondary_reload, find_reusable_reload, find_reloads): Use
4003         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
4004
4005         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
4006         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
4007         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4008
4009 2010-09-02  Richard Guenther  <rguenther@suse.de>
4010
4011         PR tree-optimization/44937
4012         PR tree-optimization/45412
4013         * ipa-split.c (split_function): Properly remove PHI nodes.
4014
4015 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
4016
4017         * opts.h (struct cl_option): Add warn_message field.
4018         (struct cl_decoded_option): Add warn_message field.
4019         * doc/options.texi (Ignore, Warn): Document.
4020         * opt-functions.awk (needs_state_p): Don't consider aliases or
4021         ignored options to need state saved.
4022         * optc-gen.awk: Handle Warn and Ignore.
4023         * opth-gen.awk: Output OPT_SPECIAL_ignore.
4024         * opts-common.c (decode_cmdline_option): Set warn_message field.
4025         Handle ignored options.
4026         (decode_cmdline_options_to_array, generate_option,
4027         generate_option_input_file): Set warn_message field.
4028         (read_cmdline_option): Generate warnings from warn_message field.
4029         Handle ignored options.
4030         * common.opt (Wunreachable-code, fargument-alias,
4031         fargument-noalias, fargument-noalias-global,
4032         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
4033         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
4034         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
4035         ftree-salias): Mark Ignore.
4036         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
4037         -mintel-syntax and -mno-intel-syntax here.
4038         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
4039         using Warn.
4040         * opts.c (common_handle_option): Don't handle options marked as
4041         ignored.
4042         (enable_warning_as_error): Handle ignored options.
4043
4044 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
4045
4046         PR driver/44076
4047         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
4048         alias_target fields.
4049         * opt-functions.awk (opt_sanitized_name): Don't handle
4050         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
4051         * optc-gen.awk: Generate alias fields.
4052         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
4053         Don't generate such constants for aliases.
4054         * opts-common.c (generate_canonical_option): New.
4055         (decode_cmdline_option): Handle aliases.  Use
4056         generate_canonical_option for known options instead of copying the
4057         input option text.
4058         * doc/options.texi (Alias): Document.
4059         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
4060         fstack-check, specs): Mark as aliases.
4061         * gcc.c (driver_handle_option): Canonicalize -L options to joined
4062         arguments.
4063         (driver_handle_option): Don't handle OPT_specs.
4064         * opts.c (common_handle_option): Don't handle options marked as
4065         aliases.
4066         (enable_warning_as_error): Handle aliases.
4067         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
4068         OPT_Wlarger_than_eq.
4069         * tree-optimize.c (tree_rest_of_compilation): Use
4070         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
4071
4072 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
4073
4074         * config/i386/i386.md (nonmemory_operand): New mode attribute.
4075         (push memory peephole2): Macroize peepholes using SWI mode iterator.
4076         (move immediate to memory peephole2): Macroize peepholes using
4077         SWI124 mode iterator.
4078         (non-pairable NOT peephole2): Macroize peepholes using SWI124
4079         mode iterator.
4080         (simple lea add peephole2): Macroize peepholes using SWI48
4081         mode iterator.
4082         (simple lea mult peephole2): Ditto.
4083         (imul by 3,5,9 to lea peephole2): Ditto.
4084         (mov $-1, reg peephole2): Macroize peepholes using SWI248
4085         mode iterator.
4086         (imul $32bit_imm,mem,reg peephole2): Ditto.
4087         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
4088
4089 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
4090
4091         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
4092
4093 2010-09-02  Olivier Hainque  <hainque@adacore.com>
4094
4095         PR middle-end/44763
4096         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
4097         (allocno_priority_compare_func): Use it instead of a straight
4098         difference computation over priorities.
4099
4100 2010-09-02  Andi Kleen  <ak@linux.intel.com>
4101
4102         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
4103
4104 2010-09-02  Ira Rosen  <irar@il.ibm.com>
4105
4106         * tree-vectorizer.h (get_later_stmt): New function.
4107         (vect_analyze_data_ref_dependences): Add argument.
4108         * tree-vect-loop.c (vect_analyze_loop): Update call to
4109         vect_analyze_data_ref_dependences.
4110         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
4111         New function.
4112         (vect_analyze_data_ref_dependence): Add argument for basic block
4113         dependencies. Check dependencies in basic block vectorization.
4114         (vect_analyze_data_ref_dependences): Add argument and update call to
4115         vect_analyze_data_ref_dependences.
4116         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
4117         (vect_bb_vectorizable_with_dependencies): New.
4118         (vect_slp_analyze_bb): Check dependencies in basic block.
4119         (vect_schedule_slp_instance): Insert stores before the last store in
4120         SLP instance.
4121
4122 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
4123
4124         PR target/45476
4125         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
4126         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
4127
4128 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
4129
4130         PR middle-end/45458
4131         * bb-reorder.c (add_labels_and_missing_jumps): Treat
4132         bbs ending with throwing insns like blocks ending with a call.
4133         (fix_up_fall_thru_edges): Likewise.
4134
4135 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
4136
4137         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
4138         (m32c_function_arg_advance): Delete.
4139         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4140         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
4141         comments.  Take a const_tree and a bool.  Declare.
4142         (m32c_function_arg_advance): Likewise.
4143         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4144
4145 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4146
4147         PR target/45476
4148         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
4149         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
4150         * config/i386/mingw32.h: ... here.
4151
4152 2010-09-01  Andi Kleen  <ak@linux.intel.com>
4153
4154         PR lto/45475
4155         * lto-streamer-in.c (lto_input_ts_target_option): Add.
4156         (lto_input_tree_pointers): Call lto_input_ts_target_option.
4157         * lto-streamer-out (lto_output_ts_target_option): Add.
4158         (lto_output_tree_pointers): Call lto_output_ts_target_option.
4159
4160 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
4161
4162         PR/target 45452
4163         * config/i386/cygwin.h: Change order of specified import libraries.
4164         * config/i386/mingw32.h: Likewise.
4165         * config/i386/t-cygwin: Likewise.
4166         * config/i386/t-mingw32: Likewise.
4167         * config/i386/t-mingw-w32: Likewise.
4168         * config/i386/t-mingw-w64: Likewise.
4169
4170 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4171
4172         * config/arm/neon-schedgen.ml (core): New type.
4173         (allCores): List of supported cores.
4174         (availability_table): Add supported cores.
4175         (collate_bypasses): Accept core as a parameter.
4176         (worst_case_latencies_and_bypasses): Accept core as a parameter.
4177         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
4178         and coreStr to get tune attribute and prefix for functional units.
4179         (emit_bypasses): Accept core name and use it.
4180         (calculate_per_core_availability_table): New.
4181         (filter_core): New.
4182         (calculate_core_availability_table): New.
4183         (main): Use calculate_core_availablity_table.
4184         * config/arm/cortex-a8-neon.md: Update copyright year.
4185         Regenerated from ml file and merged in.
4186         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
4187         cortex_a8_neon_mrc.
4188
4189 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
4190
4191         * Makefile.in (tree-switch-conversion.o): Update dependencies.
4192
4193 2010-09-01  Richard Guenther  <rguenther@suse.de>
4194
4195         * alias.c (ao_ref_from_mem): Adjust.
4196         * builtins.c (get_object_alignment): Likewise.
4197         * cfgexpand.c (expand_debug_expr): Likewise.
4198         * gimple.c (get_base_address): Likewise.
4199         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4200         (get_addr_base_and_unit_offset): Likewise.  Fix for
4201         both TMR_SYMBOL and TMR_BASE being set.
4202         * tree-eh.c (tree_could_trap_p): Likewise.
4203         * gimplify.c (gimplify_expr): Do not attempt to gimplify
4204         TMR_SYMBOL.  Always gimplify TMR_BASE.
4205         * tree-cfg.c (verify_types_in_gimple_reference): Verify
4206         TMR_BASE if there is a TMR_SYMBOL.
4207         * tree-pretty-print.c (dump_generic_node): Adjust.
4208         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
4209         (tree_mem_ref_addr): Likewise.
4210         (create_mem_ref_raw): Likewise.
4211         (move_fixed_address_to_symbol): Likewise.
4212         (create_mem_ref): Likewise.
4213         (dump_mem_address): Likewise.
4214         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
4215         Fix for both TMR_SYMBOL and TMR_BASE being set.
4216         (indirect_refs_may_alias_p): Likewise.
4217         * tree-ssa-operands.c (get_tmr_operands): Adjust.
4218         * tree.def (TARGET_MEM_REF): Adjust documentation.
4219
4220 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4221
4222         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
4223         Rename from X86_TUNE_ADD_ESP_4.
4224         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
4225         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
4226         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
4227         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
4228         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
4229         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
4230         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
4231         * config/i386/i386.c (initial_ix86_tune_features)
4232         <X86_TUNE_SINGLE_POP>: Invert members.
4233         <X86_TUNE_DOUBLE_POP>: Ditto.
4234         <X86_TUNE_SINGLE_PUSH>: Ditto.
4235         <X86_TUNE_DOUBLE_PUSH>: Ditto.
4236         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
4237         No longer exported.
4238         (push peephole2 patterns): Macroize peepholes using P mode iterator.
4239         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
4240         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
4241         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
4242
4243 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
4244
4245         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
4246         a volatile LHS if the constructor has only one element.
4247
4248 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
4249
4250         PR bootstrap/45321
4251         * tree.c (stdarg_p): Make fntype parameter const.
4252         * tree.h (stdarg_p): Likewise.
4253         (function_args_iterator): Remove unused fntype field.
4254         (function_args_iter_init): Do not initialize fntype
4255         field.  Make fntype parameter const.
4256
4257 2010-09-01  Richard Guenther  <rguenther@suse.de>
4258
4259         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
4260         estimate.
4261         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
4262         (execute_vrp): Compute number of iteration estimates.
4263         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
4264         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
4265         * tree-data-ref.c (estimated_loop_iterations): Adjust.
4266         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
4267         Infer loop bounds from undefined behavior based on a new parameter.
4268         (estimate_numbers_of_iterations): Likewise.
4269         (scev_probably_wraps_p): Adjust.
4270         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
4271
4272 2010-09-01  Nick Clifton  <nickc@redhat.com>
4273
4274         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
4275         where appropriate.
4276         (xstormy16_legitimate_address_p): Use true and false instead of 1
4277         and 0.
4278         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
4279         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
4280         magic constant 2.
4281         (xstormy16_expand_call): Fix comment at start of function.
4282
4283 2010-09-01  Nick Clifton  <nickc@redhat.com>
4284
4285         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
4286         when pushing accumulator register.
4287         (rx_get_stack_layout): Always save call clobbered registers inside
4288         interrupt handlers.
4289         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
4290
4291 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4292
4293         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
4294         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
4295
4296         * libgcc-std.ver (GCC_4.6.0): Define version.
4297
4298 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
4299
4300         * tree-nested.c (convert_all_function_calls): Iterate until after the
4301         sum of static chains in the nest doesn't change.
4302
4303 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
4304
4305         * config/m32c/m32c.c (classes_intersect): Remove.
4306         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
4307         reg_classes_intersect_p instead of classes_intersect.
4308         (class_can_hold_mode): Change arguments type from enum reg_class to
4309         reg_class_t.  Use reg_class_contents instead of class_contents.
4310         (m32c_register_move_cost): Make static. Change arguments type from
4311         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
4312         classes_intersect. Use reg_class_contents instead of class_contents.
4313         (m32c_memory_move_cost): Make static. Change arguments type from
4314         enum reg_class to reg_class_t.
4315         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4316         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4317         * config/m32c/m32c-protos.h (m32c_register_move_cost,
4318         m32c_memory_move_cost): Remove.
4319
4320 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4321
4322         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
4323         (arm_function_arg): Delete.
4324         (arm_needs_doubleword_align): Take a const_tree.
4325         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4326         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
4327         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
4328         (arm_function_arg): Make static.  Take a const_tree and a bool.
4329         (arm_function_arg_advance): Likewise.
4330         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4331
4332 2010-08-31  Andi Kleen  <ak@linux.intel.com>
4333
4334         * common.opt (fwhopr=): Update for -fwhopr=jobserver
4335         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
4336         * lto-wrapper.c (run_gcc): Add jobserver mode.
4337         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
4338         argument.
4339
4340 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
4341
4342         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
4343         (popsi1): Ditto.
4344         (*popdi1_epilogue): Ditto.
4345         (*popsi1_epilogue): Ditto.
4346         (popsi, popdi peephole2 patterns): Update peepholes for changed
4347         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
4348
4349         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
4350         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
4351
4352         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
4353         (override_options): Do not initialize removed ix86_gen_pop1.
4354         (gen_pop): New static function.
4355         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
4356         (release_scratch_register_on_entry): Ditto.
4357         (ix86_restore_reg_using_pop): Ditto.
4358         (ix86_expand_epilogue): Ditto.
4359
4360 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
4361
4362         PR middle-end/45461
4363         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
4364
4365 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4366
4367         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
4368         semicolons.
4369
4370 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4371
4372         * doc/extend.texi: Fix documentation of the return value of
4373         __builtin_choose_expr.
4374
4375 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4376
4377         * config/v850/v850-protos.h (function_arg): Delete.
4378         * config/v850/v850.h (FUNCTION_ARG): Delete.
4379         (FUNCTION_ARG_ADVANCE): Move code to...
4380         * config/v850/v850.c (v850_function_arg_advance): ...here.
4381         (v850_function_arg): Make static.  Take a const_tree and a bool.
4382         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4383
4384 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4385
4386         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
4387         these...
4388         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4389         ...and these...
4390         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
4391         ..to here..
4392         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4393         ...and here.
4394         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4395
4396 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4397
4398         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
4399         Delete.
4400         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4401         * config/rx/rx.c (rx_function_arg_size): Make static.
4402         (rx_function_arg): Likewise.
4403         (rx_function_arg_advance): New function.
4404         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4405
4406 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
4407
4408         * config/arm/arm.c (arm_override_options): Remove superfluous test.
4409         Fix indentation.
4410
4411 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
4412
4413         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
4414         (dwarf2out_decl) <CONST_DECL>: Likewise.
4415
4416 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
4417
4418         Stack usage support
4419         * common.opt (-fstack-usage): New option.
4420         * doc/invoke.texi (Debugging options): Document it.
4421         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
4422         allocate_dynamic_stack_space.
4423         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
4424         and propagate it to allocate_dynamic_stack_space.
4425         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
4426         * calls.c (initialize_argument_information): Pass TRUE as 4th
4427         argument to allocate_dynamic_stack_space.
4428         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
4429         to 1 when pushing a variable-sized argument onto the stack.  Pass
4430         TRUE as 4th argument to allocate_dynamic_stack_space.
4431         Update current_function_pushed_stack_size.
4432         (emit_library_call_value_1): Likewise.
4433         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
4434         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
4435         attempt to find an upper bound.  Remove redundant code for the
4436         SETJMP_VIA_SAVE_AREA case.
4437         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
4438         * function.h (struct stack_usage): New structure.
4439         (current_function_static_stack_size): New macro.
4440         (current_function_dynamic_stack_size): Likewise.
4441         (current_function_pushed_stack_size): Likewise.
4442         (current_function_dynamic_alloc_count): Likewise.
4443         (current_function_has_unbounded_dynamic_stack_size): Likewise.
4444         (current_function_allocates_dynamic_stack_space): Likewise.
4445         (struct function): Add new field 'su'.
4446         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
4447         add the value of the dynamic offset to the dynamic stack usage.
4448         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
4449         for variable-sized objects.
4450         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
4451         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
4452         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
4453         BUILT_IN_ALLOCA for variable-sized objects.
4454         * output.h (output_stack_usage): Declare.
4455         * toplev.c (stack_usage_file): New file pointer.
4456         (output_stack_usage): New function.
4457         (open_auxiliary_file): Likewise.
4458         (lang_dependent_init): Open file if flag_stack_usage is set.
4459         (finalize): Close file if stack_usage_file is not null.
4460         * tree.h (ALLOCA_FOR_VAR_P): New macro.
4461         * config/alpha/alpha.c (compute_frame_size): New function.
4462         (alpha_expand_prologue): Use it.
4463         (alpha_start_function): Likewise.
4464         (alpha_expand_epilogue): Likewise.  Set stack usage info.
4465         * config/i386/i386.c (ix86_expand_prologue): Likewise.
4466         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4467         * config/mips/mips.c (mips_expand_prologue): Likewise.
4468         * config/pa/pa.c (hppa_expand_prologue): Likewise.
4469         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4470         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4471
4472 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
4473
4474         PR tree-optimization/45427
4475         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
4476         Handle the case that the exit is never taken correctly.
4477         (number_of_iterations_ne): Pass exit_must_be_taken to
4478         number_of_iterations_ne_max.
4479
4480 2010-08-30  Catherine Moore  <clm@codesourcery.com>
4481
4482         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
4483         Infer -mdspr2 for the the 74K.
4484
4485 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
4486
4487         PR debug/45419
4488         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
4489
4490         PR middle-end/45423
4491         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
4492         and TRUTH_{AND,OR,XOR}_EXPR.
4493         * c-parser.c (c_parser_omp_atomic): Handle boolean
4494         {PRE,POST}_{INC,DEC}REMENT.
4495
4496 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
4497
4498         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
4499         (function_arg): Delete.
4500         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4501         (FUNCTION_INCOMING_ARG): Delete.
4502         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
4503         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
4504         and a bool.
4505         (function_arg): Rename to...
4506         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
4507         a bool.
4508         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
4509         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4510         (TARGET_FUNCTION_INCOMING_ARG): Define.
4511
4512 2010-08-30  Richard Guenther  <rguenther@suse.de>
4513
4514         PR tree-optimization/21602
4515         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
4516         using points-to information.
4517
4518 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
4519
4520         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
4521
4522 2010-08-30  Richard Guenther  <rguenther@suse.de>
4523
4524         PR tree-optimization/45449
4525         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
4526         variables.
4527
4528 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
4529
4530         * opts.h (CL_ERR_NEGATIVE): Define.
4531         * opts.c (unknown_option_callback): Don't postpone warnings for
4532         options marked with CL_ERR_NEGATIVE.
4533         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
4534         for negative versions of CL_REJECT_NEGATIVE options.
4535
4536 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
4537
4538         * config/i386/i386.md (zero_extendsidi2_1): Rename from
4539         zero_extendsidi2_32.
4540         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
4541         using SWI12 mode iterator.
4542         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
4543         to define_insn_and_split pattern.
4544         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
4545         using SWI24 mode iterator.
4546         (*zero_extendqi<mode>2_and): Macroize insn from
4547         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
4548         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
4549         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
4550         SWI24 mode iterator.
4551         (*zero_extendqi<mode>2_movzbl): Ditto from
4552         *zero_extendqi{hi,si}2_movzbl.
4553         (extendsidi2_1): Rename from extendsidi2_32.
4554         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
4555         SWI12 mode iterator.
4556
4557 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
4558
4559         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
4560         general purpose registers.
4561         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
4562         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
4563         with general purpose registers and memory operands.  Add associated
4564         CCImode post-reload splitter.
4565         * config/ia64/div.md: Change BImode to CCImode throughout.
4566
4567 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
4568
4569         * config/ia64/ia64.md (cstorebi4): Fix thinko.
4570
4571 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
4572
4573         * config/picochip/picochip.c (reorder_var_tracking_notes): This
4574         function was dropping debug insns which caused PR45299.
4575
4576 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
4577
4578         * config/i386/sse.md (extsuffix): New code attribute.
4579         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
4580         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
4581         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
4582         and sse4_1_zero_extendv4qiv4si2.
4583         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
4584         and sse4_1_zero_extendv2qiv2di2.
4585         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
4586         and sse4_1_zero_extendv4hiv4si2.
4587         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
4588         and sse4_1_zero_extendv2hiv2di2.
4589         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
4590         and sse4_1_zero_extendv2siv2di2
4591
4592         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
4593         using any_extend code iterator.
4594         (*avx_<s>mulv8hi3_highpart): Macroize insn from
4595         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
4596         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
4597
4598         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
4599         gen_sse4_1_sign_extend* functions.
4600         (struct builtin_description bdesc_args): Ditto.
4601
4602 2010-08-27  Xinliang David Li  <davidxl@google.com>
4603
4604         PR/45422
4605         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
4606         (iv_ca_set_no_cp): Update used inv expr count.
4607         (iv_ca_set_cp): Ditto.
4608         (iv_ca_new): Initialize new member.
4609         (iv_ca_free): Free memory.
4610
4611 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4612
4613         * config/sh/sh-protos.h (sh_function_arg): Delete.
4614         (sh_function_arg_advance): Delete.
4615         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4616         (PASS_IN_REG_P): Eliminate cast.
4617         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
4618         const_tree and a bool.
4619         (sh_function_arg): Likewise.
4620         (sh_output_mi_thunk): Call sh_function_arg_advance) and
4621         sh_function_arg.
4622         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4623
4624 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
4625             Kaz Kojima  <kkojima@gcc.gnu.org>
4626
4627         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
4628         when possible.
4629         (sh_expand_epilogue): Likewise.
4630         * config/sh/sh.md (movml_push_banked): New insn.
4631         (movml_pop_banked): Likewise.
4632
4633 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
4634
4635         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
4636         gen_regexp_oneof, gen_regexp_sequence): Use the string found
4637         in vector element 0 rather than the original string when there's
4638         only one element.
4639         (gen_regexp): Remove extra semicolon.
4640
4641         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
4642         thumb2_movsf_vfp): Set attribute "insn".
4643         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
4644         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
4645         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
4646         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
4647         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
4648         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
4649         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
4650         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
4651         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
4652         if_not_arith, if_arith_not, cond_move_not): Likewise.
4653
4654 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4655
4656         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
4657         New declaration.
4658         (rs6000_allocate_stack_temp): Ditto.
4659         (rs6000_expand_convert_si_to_sfdf): Ditto.
4660
4661         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
4662         line.  Update the options set if power6 or power7 server/embedded
4663         type options are used.  If we give a warning for no vsx under
4664         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
4665         (rs6000_allocate_stack_temp): New function to allocate a stack
4666         tempoary and adjust the address so it meets either REG+OFFSET or
4667         REG+REG addressing requirements.
4668         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
4669         that they can be used with the LFIWAX/LFIWZX instrucitons.
4670         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
4671         converting signed/unsigned SImode to either SFmode/DFmode.
4672
4673         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
4674         whether certain instructions can be generated.
4675         (TARGET_FCTIDZ): Ditto.
4676         (TARGET_STFIWX): Ditto.
4677         (TARGET_LFIWAX): Ditto.
4678         (TARGET_LFIWZX): Ditto.
4679         (TARGET_FCFIDS): Ditto.
4680         (TARGET_FCFIDU): Ditto.
4681         (TARGET_FCFIDUS): Ditto.
4682         (TARGET_FCTIDUZ): Ditto.
4683         (TARGET_FCTIWUZ): Ditto.
4684
4685         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
4686         (UNSPEC_FCTID): Ditto.
4687         (UNSPEC_LFIWAX): Ditto.
4688         (UNSPEC_LFIWZX): Ditto.
4689         (UNSPEC_FCTIWUZ): Ditto.
4690         (rreg): Use correct constraints.
4691         (SI_CONVERT_FP): New mode attribute for floating point conversion
4692         tests.
4693         (E500_CONVERT): Ditto.
4694         (lfiwax): New insns for converting from integer to floating point
4695         utilizing newer instructions.  Attempt to optimize conversions
4696         that come from memory so that we don't load the value into a GPR,
4697         spill it to the stack and reload it into a FPR.
4698         (floatsi<mode>2_lfiwax): Ditto.
4699         (floatsi<mode>2_lfiwax_mem): Ditto.
4700         (floatsi<mode>2_lfiwax_mem2): Ditto.
4701         (lfiwzx): Ditto.
4702         (floatunssi<mode>2_lfiwzx): Ditto.
4703         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4704         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4705         (floatdidf2_mem): Ditto.
4706         (floatunsdidf2_fcfidu): Ditto.
4707         (floatunsdidf2_mem): Ditto.
4708         (floatunsdisf2): Ditto.
4709         (floatunsdisf2_fcfidus): Ditto.
4710         (floatunsdisf2_mem): Ditto.
4711         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
4712         Use FCFID on 32-bit hosts that support it.
4713         (floatsidf2_internal): Ditto.
4714         (floatunssisf2): Ditto.
4715         (floatunssidf2): Ditto.
4716         (floatunssidf2_internal): Ditto.
4717         (floatsisf2): Ditto.
4718         (floatdidf2): Ditto.
4719         (floatdidf2_fpr): Ditto.
4720         (floatunsdidf2): Ditto.
4721         (floatdisf2): Ditto.
4722         (floatdisf2_fcfids): Ditto.
4723         (floatdisf2_internal1): Ditto.
4724         (fixuns_truncsfsi2): Delete, merge into common pattern for both
4725         SF/DF.  Add power7 support.
4726         (fix_truncsfsi2): Ditto.
4727         (fixuns_truncdfsi2): Ditto.
4728         (fixuns_truncdfdi2): Ditto.
4729         (fix_truncdfsi2): Ditto.
4730         (fix_truncdfsi2_internal): Ditto.
4731         (fix_truncdfsi2_internal_gfxopt): Ditto.
4732         (fix_truncdfsi2_mfpgpr): Ditto.
4733         (fctiwz): Ditto.
4734         (btruncdf2): Ditto.
4735         (btruncdf2_fpr): Ditto.
4736         (btructsf2): Ditto.
4737         (ceildf2): Ditto.
4738         (ceildf2_fpr): Ditto.
4739         (ceilsf2): Ditto.
4740         (floordf2): Ditto.
4741         (floordf2_fpr): Ditto.
4742         (floorsf2): Ditto.
4743         (rounddf2): Ditto.
4744         (rounddf2_fpr): Ditto.
4745         (roundsf2): Ditto.
4746         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
4747         (fix_trunc<mode>di2): Ditto.
4748         (fixuns_trunc<mode>si2): Ditto.
4749         (fixuns_trunc<mode>di2): Ditto.
4750         (fctiwz_<mode>): Ditto.
4751         (btrunc<mode>2): Ditto.
4752         (btrunc<mode>2_fpr): Ditto.
4753         (ceil<mode>2): Ditto.
4754         (ceil<mode>2_fpr): Ditto.
4755         (floor<mode>2): Ditto.
4756         (float<mode>2_fpr): Ditto.
4757         (round<mode>2): Ditto.
4758         (round<mode>2_fpr): Ditto.
4759         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
4760         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4761         (fix_truncdfsi2_internal): Ditto.
4762         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
4763         converted value on stack, loaded into GPR, and then stored into
4764         the final destination.
4765         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
4766         FCTIDZ.
4767         (lrint<mode>di2): New insn, provide the lrint builtin functions.
4768         (ftruncdf2): Delete, unused.
4769         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
4770
4771         * config/rs6000/vsx.md (toplevel): Update copyright year.
4772         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
4773         (VSr3): Ditto.
4774
4775 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
4776             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4777
4778         * gengtype.c (output_type_enum): Test the right union member.
4779
4780 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
4781
4782         PR target/41484
4783         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
4784         operands for operand 1.
4785         (sse4_1_extendv4qiv4si2): Ditto.
4786         (sse4_1_extendv2qiv2di2): Ditto.
4787         (sse4_1_extendv4hiv4si2): Ditto.
4788         (sse4_1_extendv2hiv2di2): Ditto.
4789         (sse4_1_extendv2siv2di2): Ditto.
4790         (sse4_1_zero_extendv8qiv8hi2): Ditto.
4791         (sse4_1_zero_extendv4qiv4si2): Ditto.
4792         (sse4_1_zero_extendv2qiv2di2): Ditto.
4793         (sse4_1_zero_extendv4hiv4si2): Ditto.
4794         (sse4_1_zero_extendv2hiv2di2): Ditto.
4795         (sse4_1_zero_extendv2siv2di2): Ditto.
4796         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
4797         (*sse4_1_extendv4qiv4si2): Ditto.
4798         (*sse4_1_extendv2qiv2di2): Ditto.
4799         (*sse4_1_extendv4hiv4si2): Ditto.
4800         (*sse4_1_extendv2hiv2di2): Ditto.
4801         (*sse4_1_extendv2siv2di2): Ditto.
4802         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
4803         (*sse4_1_zero_extendv4qiv4si2): Ditto.
4804         (*sse4_1_zero_extendv2qiv2di2): Ditto.
4805         (*sse4_1_zero_extendv4hiv4si2): Ditto.
4806         (*sse4_1_zero_extendv2hiv2di2): Ditto.
4807         (*sse4_1_zero_extendv2siv2di2): Ditto.
4808
4809 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4810
4811         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
4812         (mips_function_arg): Delete.
4813         (mips_function_arg_boundary): Take a const_tree.
4814         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
4815         (mips_arg_info): Likewise.
4816         (mips_setup_incoming_varargs): Call mips_function_arg_advance
4817         instead of FUNCTION_ARG_ADVANCE.
4818         (mips_function_arg_advance): Adjust prototype.  Make static.
4819         (mips_function_arg): Likewise.
4820         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4821         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
4822
4823 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4824
4825         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4826         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
4827         (function_arg): Delete.
4828         (function_arg_boundary): Take a const_tree.
4829         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
4830         (rs6000_spe_function_arg): Likewise.
4831         (rs6000_parm_start): Likewise.
4832         (rs6000_arg_size): Likewise.
4833         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
4834         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
4835         (rs6000_mixed_function_arg): Likewise.
4836         (function_arg): Rename to...
4837         (rs6000_function_arg): ...this.
4838         (function_arg_advance): Rename to...
4839         (rs6000_function_arg_advance_1): ...this
4840         (rs6000_function_arg_advance): New function.  Call it.
4841         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
4842         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
4843         (rs6000_function_value): Likewise.
4844         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4845
4846 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4847
4848         * config/arm/arm.md (enabled): Test the value of arch_enabled
4849         rather than just using it.
4850
4851 2010-08-27  Olivier Hainque  <hainque@adacore.com>
4852             Eric Botcazou  <ebotcazou@adacore.com>
4853
4854         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
4855         cover all the possible offsets from this base.
4856         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
4857
4858 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
4859
4860         PR tree-optimization/44485
4861         * calls.c (flags_from_decl_or_type): For const or pure
4862         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
4863         together with ECF_CONST resp. ECF_PURE.
4864         * builtins.c (expand_builtin): Use flags_from_decl_or_type
4865         instead of querying flags directly.
4866         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
4867         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
4868
4869 2010-08-26  Richard Guenther  <rguenther@suse.de>
4870
4871         PR tree-optimization/45255
4872         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
4873         and externals are also invariant.
4874
4875 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
4876
4877         PR rtl-optimization/44858
4878         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
4879         newi2pat, make sure they don't affect newpat.
4880
4881         PR rtl-optimization/45400
4882         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
4883         SUBREG_REG if both modes are of MODE_INT class.
4884
4885 2010-08-25  Julian Brown  <julian@codesourcery.com>
4886
4887         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
4888         * config/arm/arm.md (generic_sched): No for Cortex-A5.
4889         (generic_vfp): Likewise.
4890         (cortex-a5.md): Include.
4891         * config/arm/cortex-a5.md: New.
4892
4893 2010-08-25  Richard Guenther  <rguenther@suse.de>
4894
4895         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
4896         * gimple.c (gimple_get_alias_set): Remove special handling
4897         for pointers.
4898
4899 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4900
4901         PR middle-end/45355
4902         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
4903         dead_or_set_p when computing i0_feeds_i2_n.
4904
4905         * combine.c (find_split_point): Undo canonicalization of multiply-add
4906         to (minus x (mult)) when it seems likely that this will increase the
4907         chances of a split.
4908
4909 2010-08-25  Richard Guenther  <rguenther@suse.de>
4910
4911         PR lto/44562
4912         * lto-streamer.c (lto_record_common_node): Do not mess with
4913         TYPE_CANONICAL when not in lto.
4914         * gimple.c (gimple_register_type): Likewise.
4915
4916 2010-08-25  Richard Guenther  <rguenther@suse.de>
4917
4918         PR tree-optimization/45316
4919         * tree-ssa-pre.c (eliminate): Properly clean EH info.
4920
4921 2010-08-25  Richard Guenther  <rguenther@suse.de>
4922
4923         PR tree-optimization/45393
4924         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
4925         and clean EH info.  Avoid SSA update.
4926         (execute_cse_sincos): Cleanup the CFG if it has changed.
4927
4928 2010-08-25  Richard Guenther  <rguenther@suse.de>
4929
4930         PR middle-end/45379
4931         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
4932         TARGET_MEM_REF in alignment computation.
4933
4934 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
4935
4936         PR tree-optimization/45059
4937         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
4938         type conversions from newop{1,2}.  Assert t is a comparison and
4939         newop{1,2} after the stripping are gimple vals.
4940
4941 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
4942
4943         * config/arm/iterators.md (VU, SE, V_widen_l): New.
4944         (V_unpack, US): New.
4945         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
4946         (vec_unpack<US>_lo_<mode>): Likewise.
4947         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
4948         (neon_vec_unpack<US>_lo_<mode>): Likewise.
4949         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
4950         (vec_widen_<US>mult_hi_<mode>): Likewise.
4951         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
4952         (neon_vec_<US>mult_hi_<mode>"): Likewise.
4953         (neon_unpack<US>_<mode>): Widening move intermediate step for
4954         vectorizing without -mvectorize-with-neon-quad.
4955         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
4956         for vectorizing without -mvectorize-with-neon-quad.
4957         * config/arm/predicates.md (vect_par_constant_high): Check for
4958         high-half lanes of a vector.
4959         (vect_par_constant_low): Check for low-half lanes of a vector.
4960
4961 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4962
4963         * tree-if-conv.c (struct ifc_dr): New.
4964         (IFC_DR): New.
4965         (DR_WRITTEN_AT_LEAST_ONCE): New.
4966         (DR_RW_UNCONDITIONALLY): New.
4967         (memref_read_or_written_unconditionally): Use the cached values
4968         when possible.
4969         (write_memref_written_at_least_once): Same.
4970         (if_convertible_loop_p): Initialize and free DR->aux fields.
4971
4972 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4973
4974         * gimple.c (gimple_could_trap_p_1): Not static anymore.
4975         Pass an extra bool parameter include_mem.
4976         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
4977         (gimple_assign_rhs_could_trap_p): Same.
4978         * gimple.h (gimple_could_trap_p_1): Declared.
4979         * tree-data-ref.h (same_data_refs_base_objects): New.
4980         (same_data_refs): New.
4981         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
4982         (write_memrefs_written_at_least_once): New.
4983         (ifcvt_memrefs_wont_trap): New.
4984         (operations_could_trap): New.
4985         (ifcvt_could_trap_p): New.
4986         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
4987         Gets a vector of data refs.
4988         (if_convertible_stmt_p): Same.
4989         (if_convertible_loop_p_1): New.
4990         (if_convertible_loop_p): Call if_convertible_loop_p_1.
4991
4992 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4993
4994         * common.opt (ftree-loop-if-convert-stores): New flag.
4995         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
4996         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
4997         the created statement before GSI.
4998         (if_convertible_phi_p): Allow virtual phi nodes when
4999         flag_loop_if_convert_stores is set.
5000         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
5001         Do not handle types that do not match is_gimple_reg_type.
5002         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
5003         when flag_loop_if_convert_stores is set, as LHS can contain
5004         memory refs.
5005         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
5006         to if_convertible_gimple_assign_stmt_p.
5007         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
5008         (replace_phi_with_cond_gimple_assign_stmt): Renamed
5009         predicate_scalar_phi.  Do not handle virtual phi nodes.
5010         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
5011         Call predicate_scalar_phi.
5012         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
5013         just after the labels for flag_loop_if_convert_stores, otherwise
5014         insert the predicate in the end of the BB.
5015         (predicate_mem_writes): New.
5016         (combine_blocks): Call predicate_all_scalar_phis.  When
5017         flag_loop_if_convert_stores is set, call predicate_mem_writes.
5018         (tree_if_conversion): Call mark_sym_for_renaming when
5019         flag_loop_if_convert_stores is set.
5020         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
5021         flag_loop_if_convert_stores is set.
5022
5023 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
5024
5025         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
5026         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
5027         (pa_function_value): Make static.
5028         (override_options): Rename to...
5029         (pa_option_override): ...this. Make static.
5030         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
5031         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
5032         TARGET_OPTION_OVERRIDE): Define.
5033         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
5034         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
5035         Remove.
5036         * config/pa/pa-protos.h (override_options): Remove.
5037
5038 2010-08-24  Richard Guenther  <rguenther@suse.de>
5039
5040         PR middle-end/45379
5041         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
5042         if addr->index is NULL or zero.
5043         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
5044         TARGET_MEM_REF more properly.
5045         (indirect_ref_may_alias_decl_p): Likewise.
5046         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
5047         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
5048
5049 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
5050
5051         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
5052         (m32c_override_options): Rename to...
5053         (m32c_option_override): ...this. Make static.
5054         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
5055         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
5056         Remove.
5057         * config/m32c/m32c-protos.h (m32c_override_options,
5058         m32c_function_value_regno_p): Remove.
5059
5060 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
5061
5062         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
5063         Fix a typo in a previous commit.
5064
5065 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
5066
5067         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
5068         Pre-initialize innerloop_iters to one.
5069
5070 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
5071
5072         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
5073         existing static function global.
5074
5075         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
5076         is changed to global.
5077
5078         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
5079         may_be_nonaddressable_p on base, and don't collect this reference
5080         if the address of the base could not be taken.
5081
5082 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5083
5084         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
5085         enable the compiler to autovectorize mathmetical functions for
5086         power7 using the Mathematical Acceleration Subsystem library.
5087
5088         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
5089         handle which vector math library we have.
5090         (rs6000_override_options): Add -mveclibabi=mass support.
5091         (rs6000_builtin_vectorized_libmass): New function to handle auto
5092         vectorizing math functions that are in the MASS library.
5093         (rs6000_builtin_vectorized_function): Call it.
5094
5095         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5096         -mveclibabi=mass.
5097
5098 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5099
5100         PR boehm-gc/34544
5101         * gthr-posix.h (__gthread_active_init): Delete.
5102         (__gthread_active_p): Do activity check here.
5103         Don't include errno.h on hppa-hpux.  Update comment.
5104         * gthr-posix95.h (__gthread_active_init): Delete.
5105         (__gthread_active_p): Do activity check here.
5106         Don't include errno.h on hppa-hpux.  Update comment.
5107         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
5108         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
5109         add -lpthread when -mt or -pthread is specified.
5110         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
5111         (LINK_GCC_C_SEQUENCE_SPEC): Define.
5112         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
5113         (stublib.c, pthread_default_stacksize_np-stub.o,
5114         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
5115         $(T)libgcc_stub.a): Add methods.
5116         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
5117         (stublib.c, pthread_default_stacksize_np-stub.o,
5118         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
5119         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
5120         pthread_mutex_unlock): New stubs.
5121
5122 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
5123
5124         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
5125         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
5126         options.
5127         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
5128         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
5129         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
5130         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
5131         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
5132         "-l".
5133         * cppspec.c: Include opts.h.
5134         (lang_specific_driver): Use cl_decoded_option structures.
5135         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
5136         * doc/tm.texi: Regenerate.
5137         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
5138         (driver_handle_option): Allow driver options needing no special
5139         processing.
5140         (process_command): Decode options before call to
5141         lang_specific_driver.  Pass decoded options to
5142         lang_specific_driver.
5143         * gcc.h (lang_specific_driver): Update prototype.
5144         * gccspec.c: Include opts.h.
5145         (lang_specific_driver): Use cl_decoded_option structures.
5146         * opts-common.c (option_ok_for_language, generate_option,
5147         generate_option_input_file): New.
5148         (decode_cmdline_option): Use option_ok_for_language.
5149         (decode_cmdline_options_to_array): Use generate_option_input_file.
5150         (handle_generated_option): Use generate_option.
5151         * opts.h (generate_option, generate_option_input_file): Declare.
5152
5153 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
5154
5155         * config/mips/mips.c (mips_override_options): Rename to...
5156         (mips_option_override): ...this. Make static.
5157         (TARGET_OPTION_OVERRIDE): Define.
5158         (mips_in_small_data_p): Update comment.
5159         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
5160         (FIXED_REGISTERS): Update comment.
5161         * config/mips/mips-protos.h (mips_override_options): Remove.
5162
5163 2010-08-21  Olivier Hainque  <hainque@adacore.com>
5164
5165         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
5166
5167 2010-08-21  Olivier Hainque  <hainque@adacore.com>
5168
5169         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
5170         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
5171
5172 2010-08-20  Jan Hubicka  <jh@suse.cz>
5173
5174         * tree-pass.h (pass_ipa_cdtor_merge): New function.
5175         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
5176         heap allocated.
5177         (record_cdtor_fn): Move to ipa.c; do not test for
5178         have_ctors_dtors.
5179         (build_cdtor): Move to ipa.c; add code avoiding construction
5180         when target have ctors/dtors and there is only one ctor/dtor at given
5181         priority.
5182         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
5183         sort; reverse order of constructors.
5184         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
5185         (cgraph_finalize_function): Do not call record_cdtor_fn.
5186         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
5187         (cgraph_build_static_cdtor): Move to ipa.c.
5188         * ipa.c: Include target.h and tree-iterator.h.
5189         (cgraph_build_static_cdtor, static_ctors, static_dtors,
5190         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
5191         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
5192         pass_ipa_cdtor_merge): New.
5193         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
5194         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
5195         bounds access.
5196
5197 2010-08-20  Jan Hubicka  <jh@suse.cz>
5198
5199         PR c++/45307
5200         PR c++/17736
5201         * cgraph.h (cgraph_only_called_directly_p,
5202         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
5203         static cdtors.
5204         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
5205         are not needed.
5206         (cgraph_finalize_function): Static cdtors are reachable.
5207         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
5208
5209 2010-08-20  Jan Hubicka  <jh@suse.cz>
5210
5211         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
5212         flag_wpa.
5213         * lto-streamer-out.c (lto_output): Likewise.
5214         * passes.c (ipa_write_optimization_summaries): Initialize statement
5215         uids.
5216
5217 2010-08-20  Olivier Hainque  <hainque@adacore.com>
5218
5219         * tree.h (alias_diag_flags): New enum.
5220         (alias_pair): Add an 'emitted_diags' field.
5221         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
5222         (assemble_alias): Initialize emitted_diags of new pairs.
5223
5224 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
5225
5226         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
5227         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5228         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5229         (STACK_CHECK_PROTECT): Define.
5230         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
5231         (output_probe_stack_range): Likewise.
5232         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
5233         builtin stack checking is enabled.
5234         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
5235         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
5236         (probe_stack_range): New insn.
5237
5238 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5239
5240         PR target/45336
5241         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
5242         short first.
5243
5244         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
5245         char first.
5246
5247 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5248
5249         PR target/45336
5250         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
5251         to cover zero extension into 64-bit register.
5252         (*sse2_pextrw): Likewise.
5253         (*sse4_1_pextrd_zext): New insn.
5254
5255 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
5256
5257         revert r163410, partially revert r163267.
5258         * config/rs6000/darwin.h (LIB_SPEC): Remove.
5259         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
5260         Darwin versions.
5261
5262 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5263
5264         PR middle-end/44974
5265         * builtins.c (expand_builtin): Don't optimize away
5266         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
5267
5268 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
5269
5270         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
5271         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
5272         alternative 1 of operand 2.
5273
5274 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5275             Paolo Bonzini  <bonzini@gnu.org>
5276
5277         * simplify-rtx.c (simplify_unary_operation_1): Optimize
5278         (sign_extend (zero_extend (...)) and
5279         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
5280
5281 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5282
5283         PR rtl-optimization/45353
5284         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
5285         after bb_note is a BARRIER.
5286
5287 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
5288
5289         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
5290         linking libgcc.a.
5291
5292 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5293             Michael Matz  <matz@suse.de>
5294
5295         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
5296
5297 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
5298
5299         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
5300         (ggc_mark_roots): ...here.
5301
5302 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
5303
5304         * vec.h (FOR_EACH_VEC_ELT): Define.
5305         * c-decl.c: Use it.
5306         * cfgloop.c: Likewise.
5307         * cfgloopmanip.c: Likewise.
5308         * cgraph.c: Likewise.
5309         * cgraphunit.c: Likewise.
5310         * combine.c: Likewise.
5311         * config/bfin/bfin.c: Likewise.
5312         * config/mips/mips.c: Likewise.
5313         * config/rs6000/rs6000.c: Likewise.
5314         * dbxout.c: Likewise.
5315         * df-scan.c: Likewise.
5316         * dominance.c: Likewise.
5317         * dse.c: Likewise.
5318         * dwarf2out.c: Likewise.
5319         * except.c: Likewise.
5320         * expr.c: Likewise.
5321         * function.c: Likewise.
5322         * gcse.c: Likewise.
5323         * genattr.c: Likewise.
5324         * ggc-common.c: Likewise.
5325         * gimplify.c: Likewise.
5326         * graphite-blocking.c: Likewise.
5327         * graphite-clast-to-gimple.c: Likewise.
5328         * graphite-dependences.c: Likewise.
5329         * graphite-interchange.c: Likewise.
5330         * graphite-poly.c: Likewise.
5331         * graphite-scop-detection.c: Likewise.
5332         * graphite-sese-to-poly.c: Likewise.
5333         * graphite.c: Likewise.
5334         * haifa-sched.c: Likewise.
5335         * ifcvt.c: Likewise.
5336         * implicit-zee.c: Likewise.
5337         * ipa-prop.c: Likewise.
5338         * ipa-struct-reorg.c: Likewise.
5339         * ipa.c: Likewise.
5340         * ira-build.c: Likewise.
5341         * ira-color.c: Likewise.
5342         * ira-emit.c: Likewise.
5343         * lambda-code.c: Likewise.
5344         * loop-invariant.c: Likewise.
5345         * loop-unroll.c: Likewise.
5346         * lower-subreg.c: Likewise.
5347         * lto-cgraph.c: Likewise.
5348         * lto-opts.c: Likewise.
5349         * lto-streamer-in.c: Likewise.
5350         * lto-streamer-out.c: Likewise.
5351         * lto-streamer.c: Likewise.
5352         * lto-symtab.c: Likewise.
5353         * matrix-reorg.c: Likewise.
5354         * opts.c: Likewise.
5355         * predict.c: Likewise.
5356         * print-tree.c: Likewise.
5357         * sdbout.c: Likewise.
5358         * sel-sched-dump.c: Likewise.
5359         * sel-sched-ir.c: Likewise.
5360         * sel-sched.c: Likewise.
5361         * sese.c: Likewise.
5362         * stor-layout.c: Likewise.
5363         * tree-cfg.c: Likewise.
5364         * tree-cfgcleanup.c: Likewise.
5365         * tree-chrec.c: Likewise.
5366         * tree-data-ref.c: Likewise.
5367         * tree-emutls.c: Likewise.
5368         * tree-inline.c: Likewise.
5369         * tree-into-ssa.c: Likewise.
5370         * tree-loop-distribution.c: Likewise.
5371         * tree-loop-linear.c: Likewise.
5372         * tree-mudflap.c: Likewise.
5373         * tree-outof-ssa.c: Likewise.
5374         * tree-parloops.c: Likewise.
5375         * tree-predcom.c: Likewise.
5376         * tree-pretty-print.c: Likewise.
5377         * tree-scalar-evolution.c: Likewise.
5378         * tree-ssa-live.c: Likewise.
5379         * tree-ssa-loop-im.c: Likewise.
5380         * tree-ssa-loop-ivcanon.c: Likewise.
5381         * tree-ssa-loop-ivopts.c: Likewise.
5382         * tree-ssa-loop-manip.c: Likewise.
5383         * tree-ssa-loop-niter.c: Likewise.
5384         * tree-ssa-loop-prefetch.c: Likewise.
5385         * tree-ssa-phiprop.c: Likewise.
5386         * tree-ssa-pre.c: Likewise.
5387         * tree-ssa-reassoc.c: Likewise.
5388         * tree-ssa-sccvn.c: Likewise.
5389         * tree-ssa-structalias.c: Likewise.
5390         * tree-ssa.c: Likewise.
5391         * tree-vect-data-refs.c: Likewise.
5392         * tree-vect-loop-manip.c: Likewise.
5393         * tree-vect-loop.c: Likewise.
5394         * tree-vect-patterns.c: Likewise.
5395         * tree-vect-slp.c: Likewise.
5396         * tree-vect-stmts.c: Likewise.
5397         * tree-vrp.c: Likewise.
5398         * tree.c: Likewise.
5399         * value-prof.c: Likewise.
5400         * var-tracking.c: Likewise.
5401         * varasm.c: Likewise.
5402         * vmsdbgout.c: Likewise.
5403
5404 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
5405             Richard Guenther  <richard.guenther@gmail.com>
5406
5407         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
5408         copy the src value and return a copy.
5409         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
5410         (C++ Volatiles): Adjust to describe C++ semantics only.
5411
5412 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
5413
5414         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
5415         be zero or nonzero.
5416         * doc/tm.texi: Regenerate.
5417         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
5418         * df-scan.c (df_get_exit_block_use_set), reginfo.c
5419         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
5420         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
5421         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
5422         to 1.
5423
5424 2010-08-20  Olivier Hainque  <hainque@adacore.com>
5425
5426         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
5427         an extra nop past a sibling call at the very end.
5428
5429 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
5430
5431         PR bootstrap/45350
5432         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
5433         a comment.
5434
5435 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
5436
5437         * target.def (function_arg, function_incoming_arg): Remove const
5438         qualifier on CUMULATIVE_ARGS parameter.
5439         * targhooks.h (default_function_arg, default_function_incoming_arg):
5440         Likewise.
5441         * targhooks.c (default_function_arg, default_function_incoming_arg):
5442         Likewise.
5443         * config/i386/i386.c (ix86_function_arg): Likewise.
5444
5445 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
5446
5447         PR target/45336
5448         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
5449         SIGN_EXTENDs or ZERO_EXTENDs.
5450
5451 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
5452
5453         PR target/42172
5454         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
5455         Take its cost into account if nonnull.
5456         (insn_a_feeds_b): New static function.
5457         (combine_instructions): Look for four-insn combinations.
5458         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
5459         them into account when computing all_adjacent and looking for other
5460         uses.
5461         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
5462         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
5463         (try_combine): New arg I0.  Handle four-insn combinations.
5464         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
5465         like ELIM_I1.
5466
5467 2010-08-19  Jason Merrill  <jason@redhat.com>
5468
5469         PR c++/45307
5470         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
5471         if ctor is empty.
5472         (gimplify_modify_expr_rhs): Adjust.
5473
5474 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
5475
5476         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
5477         bitmap_bit_p.
5478         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
5479         * dominance.c (iterate_fix_dominators): Likewise.
5480         * dse.c (set_usage_bits): Likewise.
5481         (set_position_unneeded, record_store): Likewise.
5482         * gimple-fold.c (get_maxval_strlen): Likewise.
5483         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
5484         * ipa-inline.c (update_caller_keys): Likewise.
5485         * ipa-split.c (verify_non_ssa_vars): Likewise.
5486         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
5487         (close_type_exposed_parameter, close_type_full_escape): Likewise.
5488         (close_addressof_down): Likewise.
5489         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
5490         (setup_allocno_left_conflicts_size): Likewise.
5491         (ira_reassign_conflict_allocnos): Likewise.
5492         (ira_reassign_pseudos): Likewise.
5493         * ira-emit.c (change_loop): Likewise.
5494         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
5495         * lto-streamer-out.c (write_symbol): Likewise.
5496         * predict.c (expr_expected_value_1): Likewise.
5497         * regstat.c (regstat_bb_compute_ri): Likewise.
5498         * sel-sched.c (create_block_for_bookkeeping): Likewise.
5499         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
5500         * stmt.c (expand_case): Likewise.
5501         * tree-eh.c (emit_eh_dispatch): Likewise.
5502         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
5503         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
5504         Likewise.
5505         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
5506         (rdg_build_components): Likewise.
5507         * tree-object-size.c (collect_object_sizes_for): Likewise.
5508         * tree-sra.c (convert_callers): Likewise.
5509         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
5510         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
5511         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
5512
5513 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5514
5515         * config/i386/i386.md (*lea_1): Use P mode iterator.
5516         (lea add splitter): Also handle DImode operands.
5517         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
5518         predicate.  Do not use ix86_lea_for_add_ok.
5519         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
5520         (lea ashift splitter): Also handle DImode operands.
5521         (DImode lea ashift splitter): Remove splitter.
5522
5523 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5524
5525         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
5526         ix86_binary_operator_ok.
5527
5528 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
5529
5530         PR rtl-optimization/44691
5531         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
5532         is not a register.
5533
5534 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5535
5536         PR target/45070
5537         * config/arm/arm.c (arm_output_epilogue): Ensure that return
5538          value of size 1-3 is handled correctly.
5539
5540 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5541
5542         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
5543         type for the conditional has wide enough range.
5544
5545 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
5546
5547         PR target/45327
5548         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
5549         ix86_binary_operator_ok.
5550
5551 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
5552
5553         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
5554         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
5555         code to output insn mnemonic.  Fix comment.
5556         (*addsi_1_zext): Add r-r-0 alternative 1.
5557         <TYPE_LEA>: Split insn to lea.
5558         <default>: Handle alternative 1.
5559         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
5560         multi-level if_then_else RTX to set "type" attribute.
5561         <default>: Handle alternative 2.
5562         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
5563         Use cond RTX instead of multi-level if_then_else RTX to set
5564         "type" attribute.
5565         <default>: Handle alternatives 2 and 4.
5566         (lea splitters): Update calls to ix86_lea_for_add_ok.
5567
5568         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
5569         argument.
5570         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
5571
5572 2010-08-18  Richard Guenther  <rguenther@suse.de>
5573
5574         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
5575         use operand helpers.
5576
5577 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
5578
5579         PR middle-end/45292
5580         * optabs.c (expand_bool_compare_and_swap): Expand pending
5581         pops before trying the optab.
5582
5583 2010-08-18  Yao Qi  <yao@codesourcery.com>
5584
5585         PR target/45094
5586         * config/arm/arm.c (output_move_double): Fix typo generating
5587         instructions ('ldr'->'str').
5588
5589 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5590
5591         PR rtl-optimization/42575
5592         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
5593         live ranges.
5594
5595 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5596
5597         * config/arm/arm-protos.h (arm_expand_sync): New.
5598         (arm_output_memory_barrier, arm_output_sync_insn): New.
5599         (arm_sync_loop_insns): New.
5600         * config/arm/arm.c (FL_ARCH7): New.
5601         (FL_FOR_ARCH7): Include FL_ARCH7.
5602         (arm_arch7): New.
5603         (arm_print_operand): Support %C markup.
5604         (arm_legitimize_sync_memory): New.
5605         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
5606         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
5607         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
5608         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
5609         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
5610         (arm_process_output_sync_insn, arm_output_sync_insn): New.
5611         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
5612         * config/arm/arm.h (struct arm_sync_generator): New.
5613         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
5614         (TARGET_HAVE_MEMORY_BARRIER): New.
5615         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
5616         * config/arm/arm.md: Include sync.md.
5617         (UNSPEC_MEMORY_BARRIER): New.
5618         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
5619         (VUNSPEC_SYNC_OP):New.
5620         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
5621         (sync_result, sync_memory, sync_required_value): New attributes.
5622         (sync_new_value, sync_t1, sync_t2): Likewise.
5623         (sync_release_barrier, sync_op): Likewise.
5624         (length): Add logic to length attribute defintion to call
5625         arm_sync_loop_insns when appropriate.
5626         * config/arm/sync.md: New file.
5627
5628 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
5629
5630         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
5631         ENABLE_TREE_CHECKING.
5632         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
5633         and GCC >= 4.3.
5634
5635 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
5636
5637         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
5638         or optimizing for size, always avoid lea if possible.
5639
5640         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
5641
5642 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
5643
5644         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
5645         Dunmmy function with NULL return unless the target is
5646         OSX >= 10.6 (Darwin10).
5647
5648 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
5649
5650         * gcc.c (spec_function): Add remove-outfile.
5651         (remove_outfile_spec_function): New function.
5652         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
5653         * invoke.texi (replace-outfile): Document.
5654
5655 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
5656
5657         PR target/45296
5658         * reginfo.c (globalize_reg): Reject stack registers.
5659
5660 2010-08-17  Richard Guenther  <rguenther@suse.de>
5661
5662         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
5663         list of conditional equivalences.
5664         (free_all_edge_infos): Adjust.
5665         (record_equivalences_from_incoming_edge): Likewise.
5666         (record_cond): Likewise.
5667         (build_and_record_new_cond): Likewise.
5668         (record_conditions): Likewise.
5669         (dom_opt_leave_block): Likewise.
5670
5671 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
5672
5673         * doc/invoke.texi (ms-extension): Add documentation.
5674
5675 2010-08-17  Richard Guenther  <rguenther@suse.de>
5676
5677         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
5678
5679 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
5680
5681         PR c/40563
5682         * c-decl.c (diagnose_uninitialized_cst_member): New function.
5683         (finish_decl): Use it to issue a -Wc++-compat warning about
5684         uninitialized const field in struct or union.
5685
5686         (finish_struct): Use strip_array_types.
5687
5688 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
5689
5690         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
5691         functions.
5692         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
5693         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
5694         call block_nreverse here.
5695         (blocks_nreverse): Rename decl temporary to block.
5696
5697 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
5698
5699         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
5700         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
5701         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
5702         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
5703         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
5704         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
5705         thumb2_iorsi3): Delete.
5706         (orsi_notsi_si): No longer a named pattern.
5707         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
5708         * config/arm/predicates.md (shift_amount_operand): New.
5709         (mult_operator): New.
5710         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
5711         attr enabled): New.
5712         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
5713         arch matches t2.
5714         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
5715         (not_shiftsi_compare0): Likewise, renamed from
5716         arm_notsi_shiftsi_compare0.
5717         (not_shiftsi_compare0_scratch): Likweise, renamed from
5718         arm_notsi_shiftsi_compare0_scratch.
5719         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
5720         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
5721         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
5722         so that the register alternative is disabled when the shift_operator
5723         is MULT.  Use "M" as the constraint for constants.
5724         (arith_shiftsi splitter): Enable for TARGET_32BIT.
5725         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
5726         constraint for constants.
5727         (arith_shiftsi_compare0_scratch): Likewise.
5728         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
5729         Handle Thumb2 alternative.
5730
5731 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
5732
5733         * doc/options.texi (NoDriverArg): Document.
5734         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
5735         -MDX and -MMDX.
5736         * opt-functions.awk (switch_flags): Handle NoDriverArg.
5737         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
5738         marking for CL_NO_DRIVER_ARG options when in the driver.
5739         * opts.h (CL_NO_DRIVER_ARG): Define.
5740         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5741         CL_COMMON): Update values.
5742
5743 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
5744
5745         * common.opt: Add driver options.
5746         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
5747         * doc/options.texi (Driver, RejectDriver): Document.
5748         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
5749         print_prog_name, print_multi_directory, print_sysroot,
5750         print_multi_os_directory, print_multi_lib,
5751         print_sysroot_headers_suffix, report_times, combine_flag,
5752         use_pipes, wrapper_string): Remove.
5753         (save_switch, driver_unknown_option_callback,
5754         driver_wrong_lang_callback, driver_post_handling_callback,
5755         driver_handle_option): New.
5756         (spec_lang, last_language_n_infiles): Make file-scope static
5757         instead of local to process_command.
5758         (process_command): Use decode_cmdline_options_to_array and
5759         read_cmdline_option for option processing.  Compute have_c in
5760         prescan of decoded options.
5761         * opt-functions.awk (switch_flags): Handle Driver and
5762         RejectDriver.
5763         (var_type, var_type_struct): Handle Separate options as generating
5764         const char * variables.
5765         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
5766         CL_TARGET to be passed by caller if required.
5767         (decode_cmdline_options_to_array): Update comment.
5768         * opts.c (complain_wrong_lang): Handle options only valid for the
5769         driver.
5770         (decode_options): Update call to decode_cmdline_options_to_array.
5771         (print_filtered_help): Ignore driver-only options.
5772         (print_specific_help): Ignore CL_DRIVER.
5773         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
5774         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
5775         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
5776         Update values.
5777
5778 2010-08-16  Richard Guenther  <rguenther@suse.de>
5779
5780         * tree-cfg.c (verify_types_in_gimple_reference): Verify
5781         TARGET_MEM_REF a bit.
5782         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
5783         (create_mem_ref_raw): Always create TMR_OFFSET, store the
5784         alias pointer type via it.
5785         (copy_mem_ref_info): Adjust.
5786         (maybe_fold_tmr): Likewise.
5787         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
5788         (reference_alias_ptr_type): Likewise.
5789         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
5790         adjust documentation of TMR_OFFSET operand.
5791         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
5792         use the alias pointer type.
5793         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
5794         initialize mem attrs but the TMR itself.
5795         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
5796         similar to MEM_REF.
5797         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
5798         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
5799         (unshare_and_remove_ssa_names): Likewise.
5800         (copy_ref_info): Adjust.
5801         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
5802         TARGET_MEM_REF case.
5803         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
5804         at TMR_ORIGINAL.
5805         * tree.h (TMR_ORIGINAL): Remove.
5806         * gimple.c (get_base_address): For TARGET_MEM_REF with a
5807         symbol return that.
5808         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
5809         with a symbol.
5810         (get_addr_base_and_unit_offset): Likewise.
5811         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
5812         TARGET_MEM_REFs.
5813         (indirect_ref_may_alias_decl_p): Likewise.
5814         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
5815
5816 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
5817
5818         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
5819         with GCC version 4.6, the default setting (when not optimizing
5820         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
5821         been changed to -fomit-frame-pointer.
5822
5823 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
5824
5825         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
5826         Darwin10.  Do not link libgcc.a for Darwin >= 9.
5827
5828 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
5829
5830         * doc/invoke.texi (Warning Options): Fix terminology and markup
5831         in the description of how unknown warning options are handled.
5832
5833 2010-08-15  Ira Rosen  <irar@il.ibm.com>
5834
5835         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
5836         in basic blocks.
5837         (vect_supportable_dr_alignment): Check alignment for basic blocks.
5838         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
5839         data references.
5840         (vect_bb_vectorization_profitable_p): New function.
5841         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
5842         check if it's worthwhile to vectorize the basic block.
5843
5844 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
5845
5846         * reload.h (register_move_cost, memory_move_secondary_cost,
5847         secondary_reload_class): Adjust prototype.
5848         * rtl.h (reg_class_subset_p): Adjust prototype.
5849         * reload.c (secondary_reload_class): Change arguments type from
5850         enum reg_class to reg_class_t. Change result type to reg_class_t.
5851         * reginfo.c (register_move_cost, reg_class_subset_p): Change
5852         arguments type from enum reg_class to reg_class_t.
5853         (memory_move_secondary_cost): Change arguments type from
5854         enum reg_class to reg_class_t. Change type of saved_flags to
5855         reg_class_t.
5856
5857         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5858         Remove macros.
5859         (mips_cost): Remove.
5860         (struct mips_rtx_cost_data): Moved to mips.c.
5861         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
5862         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
5863         (mips_cost): Make static.
5864         (mips_canonicalize_move_class): Change argument type to reg_class_t.
5865         Change result type to reg_class_t.
5866         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
5867         type from enum reg_class to reg_class_t.
5868         (mips_register_move_cost): Make static. Change arguments
5869         type from enum reg_class to reg_class_t.
5870         (mips_memory_move_cost): New function.
5871         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
5872
5873 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
5874
5875         PR rtl-optimization/43358
5876         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
5877         of a single hard register, using simplify_subreg_regno to decide
5878         what that register should be.
5879
5880 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
5881
5882         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
5883         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
5884         (loongson_pmull<V_suffix>): Rename to...
5885         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
5886
5887 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
5888
5889         * configure.ac: Enable -fomit-frame-pointer on darwin
5890         which support dwarf2.
5891         * config/i386/i386.c (override_options): Same.
5892
5893 2010-08-13  Jie Zhang  <jie@codesourcery.com>
5894
5895         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
5896
5897 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
5898
5899         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
5900         -MMD.
5901
5902 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
5903
5904         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
5905         up dot_prod pattern searching if a stmt is outside the loop.
5906
5907 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
5908             Uros Bizjak  <ubizjak@gmail.com>
5909
5910         * config.gcc: Handle --enable-frame-pointer.
5911
5912         * configure.ac: Add --enable-frame-pointer.
5913         * configure: Regenerated.
5914
5915         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
5916         (override_options): If not configured with --enable-frame-pointer,
5917         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
5918         optimizing for size), -fasynchronous-unwind-tables and
5919         -maccumulate-outgoing-args by default.
5920
5921 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
5922
5923         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
5924
5925         PR middle-end/45262
5926         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
5927         -a overflows.  Normalize the range.
5928
5929 2010-08-12  Richard Guenther  <rguenther@suse.de>
5930
5931         PR tree-optimization/45232
5932         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
5933         for types with undefined overflow.
5934         (reassociate_bb): Allow re-associating of bit and min/max
5935         operations for types with undefined overflow.
5936         * tree-ssa-forwprop.c (associate_plusminus): New function.
5937         (tree_ssa_forward_propagate_single_use_vars): Call it.
5938
5939 2010-08-12  Richard Guenther  <rguenther@suse.de>
5940
5941         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
5942         * tree-ssa-alias.c (get_ptr_info): Move ...
5943         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
5944         align and misalign fields conservatively.
5945         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
5946         derive alignment information.
5947         (evaluate_stmt): Derive alignment information from memory
5948         allocation functions.
5949         * tree.h (get_pointer_alignment): Make unsigned.
5950         * builtins.c (get_object_alignment): Use alignment information we
5951         have computed for pointers.
5952         (get_pointer_alignment): Likewise.  Make conservative, return
5953         and unsigned value.
5954         (expand_builtin_strlen): Adjust.
5955         (expand_builtin_memcmp): Likewise.
5956         (expand_builtin_strcmp): Likewise.
5957         (expand_builtin_strncmp): Likewise.
5958         (get_builtin_sync_mem): Use at least mode alignment.
5959         (fold_builtin_memset): Adjust.
5960         (fold_builtin_memory_op): Likewise.
5961         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
5962         information also dump pointer alignment knowledge.
5963         (dump_gimple_stmt): Likewise.
5964
5965 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
5966
5967         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
5968         (EMPTY_FIELD_BOUNDARY): Remove.
5969         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
5970
5971 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
5972
5973         PR debug/45259
5974         * caller-save.c (save_call_clobbered_regs): Only swap notes with
5975         DEBUG_INSNs if n_regs_saved.
5976
5977 2010-08-12  Wei Guozhi  <carrot@google.com>
5978
5979         PR target/44999
5980         * config/arm/arm.md (andsi3): Change to zero extension if possible.
5981         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
5982
5983 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
5984
5985         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
5986
5987         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
5988
5989 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5990
5991         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
5992         the case removed in the previous patch, when the only phi argument
5993         is defined in the same loop as the phi node itself.  Handle it
5994         separately from the invariant case by both propagating it outside
5995         the region and replacing the phi node with an assign.
5996
5997 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5998
5999         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
6000         constant phi nodes with one argument are is_gimple_min_invariant
6001         and SSA_NAME_IS_DEFAULT_DEF.
6002
6003 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6004
6005         * graphite-cloog-util.c (oppose_constraint):
6006         Extend loop counter's value range (CLOOG_ORG).
6007         (cloog_matrix_to_ppl_constraint): Same.
6008         (new_Constraint_System_from_Cloog_matrix): Same.
6009         * graphite-cloog-compat.h (matrix_num_type): New.
6010
6011 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6012
6013         * graphite.c (graphite_initialize): Do not initialize
6014         CLooG and initialize the Parma Polyhedra Library
6015         manually when using CLOOG_ORG.
6016         (graphite_finalize): Do not finalize CLooG and finalize
6017         the Parma Polyhedra Library manually when using CLOOG_ORG.
6018         * graphite-cloog-compat.h (cloog_initialize): Hide function
6019         when using CLOOG_ORG.
6020         (cloog_finalize): Same.
6021
6022 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6023
6024         * graphite-clast-to-gimple.c (free_scattering): Change
6025         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
6026         (CLOOG_ORG).
6027         (build_cloog_prog): Same.
6028         * graphite-cloog-compat.h (cloog_domain): Removed.
6029         (cloog_scattering): New.
6030         (cloog_set_domain): Removed.
6031         (cloog_set_scattering): New.
6032         (cloog_next_domain): Removed.
6033         (cloog_next_scattering): New.
6034         (cloog_set_next_domain): Removed.
6035         (cloog_set_next_scattering): New.
6036         (CloogScatteringList): New.
6037         (CloogScattering): New.
6038         (cloog_scattering_free): New.
6039         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
6040         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
6041         New.
6042
6043 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6044
6045         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
6046         CloogState.
6047         (set_cloog_options): Same.
6048         (print_clast_stmt): Same.
6049         (scop_to_clast): Same.
6050         (print_generated_program): Same.
6051         (gloog): Same.
6052         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
6053         (scop_to_clast): Extend with CloogState.
6054         * graphite-cloog-util.c: Include graphite-cloog-compat.h
6055         (new_Cloog_Domain_from_ppl_Polyhedron):
6056         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
6057         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
6058         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6059         * graphite-cloog-util.h (build_cloog_prog): Same.
6060         * graphite-cloog-copat.h (build_cloog_prog): New.
6061         (CloogState): New.
6062         (cloog_state_malloc): New.
6063         (cloog_state_free): New.
6064         (cloog_loop_malloc): New.
6065         (cloog_options_malloc): New.
6066         (cloog_statement_alloc): New.
6067         (cloog_domain_from_cloog_matrix): New.
6068         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
6069         (new_Cloog_Domain_from_ppl_Polyhedron): New.
6070
6071 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6072
6073         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
6074         type of NAME now depends on used CLooG version.
6075         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
6076         (gcc_type_for_clast_expr): Same.
6077         (print_clast_stmt): Replace pprint with clast_pprint.
6078         * graphite-cloog-compat.h: Provide compatibility macros for
6079         CLooG Legacy.
6080         (clast_name_p): New.
6081         (clast_expr_term): New.
6082         (clast_expr_red): New.
6083         (clast_expr_bin): New.
6084         (clast_pprint): New.
6085
6086 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6087
6088         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
6089         compatible to newer CLooG releases (CLOOG_ORG).
6090         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
6091         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
6092         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
6093         (build_cloog_prog) : New.
6094         (cloog_program_extract_scalars): New.
6095         (cloog_program_scatter): New.
6096
6097 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6098
6099         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
6100         conditionally (CLOOG_ORG).
6101         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
6102         (cloog_statement_usr): New.
6103         (cloog_domain): Same.
6104         (cloog_set_domain): Same.
6105         (cloog_next_domain): Same.
6106         (cloog_set_next_domain): Same.
6107         (cloog_program_nb_scattdims): Same.
6108         (cloog_program_set_nb_scattdims): Same.
6109         (cloog_program_names): Same.
6110         (cloog_program_set_names): Same.
6111         (cloog_program_set_context): Same.
6112         (cloog_program_set_loop): Same.
6113         (cloog_program_blocklist): Same.
6114         (cloog_program_set_blocklist): Same.
6115         (cloog_program_scaldims): Same.
6116         (cloog_program_set_scaldims): Same.
6117         (cloog_names_nb_parameters): Same.
6118         (cloog_names_set_nb_parameters): Same.
6119         (cloog_names_parameters): Same.
6120         (cloog_names_set_parameters): Same.
6121         (cloog_names_set_nb_iterators): Same.
6122         (cloog_names_set_iterators): Same.
6123         (cloog_names_set_nb_scattering): Same.
6124         (cloog_names_set_scattering): Same.
6125         (cloog_statement_set_usr): Same.
6126         (cloog_loop_set_next): Same.
6127         (cloog_loop_set_domain): Same.
6128         (cloog_loop_set_block): Same.
6129         (cloog_block_list_next): Same.
6130         (cloog_block_list_set_next):
6131         (cloog_block_list_set_block): Same.
6132
6133 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6134
6135         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
6136         a bool.
6137         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
6138         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
6139         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
6140         when something has been changed.
6141         (rewrite_commutative_reductions_out_of_ssa): Same.
6142
6143 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6144
6145         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
6146         handle the case when def is in the sese region.
6147         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
6148         for invariant expressions.
6149         (rewrite_cross_bb_phi_deps): Removed.
6150         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
6151         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
6152         rewrite_cross_bb_phi_deps.
6153
6154 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6155
6156         * graphite-sese-to-poly.c
6157         (rewrite_commutative_reductions_out_of_ssa_loop): Call
6158         scev_analyzable_p only on is_gimple_reg
6159
6160 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6161
6162         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
6163         (rewrite_close_phi_out_of_ssa): Propagate constant values or
6164         parametric expressions outside the scop region.
6165         (rewrite_cross_bb_scalar_deps): Same.
6166         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
6167
6168 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6169
6170         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
6171         SSA_NAME_DEF_STMT only on SSA_NAMEs.
6172
6173 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6174
6175         * tree-scalar-evolution.c (instantiate_scev_name): Do not
6176         instantiate default definitions.
6177
6178 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
6179             Sebastian Pop  <sebastian.pop@amd.com>
6180
6181         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
6182         (loop_exits_from_bb_p): New.
6183         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
6184         (loop_exits_from_bb_p): Declared.
6185         * graphite-scop-detection.c (scopdet_basic_block_info): Call
6186         loop_exits_to_bb_p.
6187
6188 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6189
6190         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
6191         extra parameter for the region.  Call scev_analyzable_p.
6192         (rewrite_reductions_out_of_ssa): Update call to
6193         rewrite_close_phi_out_of_ssa.
6194         (rewrite_cross_bb_phi_deps): Same.
6195         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
6196         parameter for the region.  Call scev_analyzable_p.
6197         (rewrite_commutative_reductions_out_of_ssa): Update call to
6198         rewrite_commutative_reductions_out_of_ssa_loop.
6199
6200 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6201
6202         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
6203
6204 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6205
6206         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
6207         SSA scalar phi nodes that can be scev_analyzable_p.
6208
6209 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6210
6211         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
6212         handle SSA_NAME_IS_DEFAULT_DEF.
6213
6214 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6215
6216         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
6217
6218 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6219
6220         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
6221         case non close-phi nodes with one argument.
6222
6223 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6224
6225         * sese.h (scev_analyzable_p): Scevs could be expressions without
6226         chrecs and still be scev_analyzable_p.
6227
6228 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6229
6230         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6231
6232 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6233
6234         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
6235         * cfgloop.h (struct loop): Remove single_iv field.
6236         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
6237         (scop_canonicalize_loops): Removed.
6238         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
6239         over all the loop phi nodes in loop->header.
6240         (build_poly_scop): Remove use of scop_canonicalize_loops.
6241
6242 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6243
6244         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
6245         handle GIMPLE_CALL.
6246
6247 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6248
6249         * tree-chrec.c (chrec_apply): Should only apply to the specified
6250         variable.  Also handle multivariate chains of recurrences that
6251         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
6252
6253 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6254
6255         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
6256         (debug_clast_name_indexes_1): Removed.
6257         (debug_clast_name_indexes): Removed.
6258         (pbb_to_depth_to_oldiv): Removed.
6259         (build_iv_mapping): Replace the use of rename_map with iv_map.
6260         (translate_clast_user): Remove uses of rename_map.  Allocate and
6261         free iv_map.
6262         (translate_clast_for_loop): Remove uses of rename_map.
6263         (translate_clast_for): Same.
6264         (translate_clast_guard): Same.
6265         (translate_clast): Same.
6266         (gloog): Same.
6267         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
6268         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
6269         * sese.c (set_rename): Now static.
6270         (rename_variables_in_stmt): Removed.
6271         (rename_uses): New.
6272         (is_parameter): Removed.
6273         (is_iv): Removed.
6274         (expand_scalar_variables_call): Removed.
6275         (expand_scalar_variables_ssa_name): Removed.
6276         (expand_scalar_variables_expr): Removed.
6277         (expand_scalar_variables_stmt): Removed.
6278         (expand_scalar_variables): Removed.
6279         (rename_variables): Removed.
6280         (remove_condition): Removed.
6281         (get_true_edge_from_guard_bb): Removed.
6282         (get_false_edge_from_guard_bb): Removed.
6283         (struct igp): Removed.
6284         (default_before_guard): Removed.
6285         (convert_for_phi_arg): Removed.
6286         (add_guard_exit_phis): Removed.
6287         (insert_guard_phis): Removed.
6288         (graphite_copy_stmts_from_block): Now also uses iv_map and a
6289         region.  Do not copy conditions.  Do not copy induction variables.
6290         Call rename_uses.
6291         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
6292         the translated statement.  Use the iv_map for the induction
6293         variable renaming.
6294         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
6295         (set_rename): Removed declaration.
6296         (scev_analyzable_p): ...here.
6297         * tree-chrec.c (chrec_apply_map): New.
6298         * tree-chrec.h (chrec_apply_map): Declared.
6299
6300 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6301
6302         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
6303         insert_loop_close_phis.
6304         * sese.c (name_defined_in_loop_p): Removed.
6305         (expr_defined_in_loop_p): Removed.
6306         (alive_after_loop): Removed.
6307         (close_phi_not_yet_inserted_p): Removed.
6308         (struct alep): Removed.
6309         (add_loop_exit_phis): Removed.
6310         (insert_loop_close_phis): Removed.
6311
6312 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6313
6314         * graphite-cloog-util.c
6315         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
6316         * graphite-poly.c
6317         (psct_scattering_dim_for_loop_depth): Same.
6318
6319 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6320
6321         * graphite-cloog-util.h: Added cloog.h.
6322         * graphite-blocking.c: Removed cloog.h.
6323         * graphite-dependences.c: Same.
6324         * graphite-interchange.c: Same.
6325         * graphite-poly.c: Same.
6326         * graphite-ppl.c: Same.
6327         * graphite-scop-detection.c: Same.
6328         * graphite-sese-to-poly.c:
6329         Removed cloog.h.
6330         Removed graphite-clast-to-gimple.h.
6331         (check_poly_representation): Removed (unused).
6332         * graphite-sese-to-poly.h
6333         (check_poly_representation): Removed (unused).
6334
6335 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6336
6337         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
6338         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
6339         (graphite-cloog-util.o): New.
6340         (graphite-ppl.o): Added graphite-cloog-util.h.
6341         * graphite-clast-to-gimple.c:
6342         Added graphite-cloog-util.h to include statements.
6343         * graphite-cloog-util.c: New.
6344         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
6345         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6346         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6347         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6348         (insert_constraint_into_matrix): Same.
6349         (ppl_Constrain_System_number_of_constraints): Same.
6350         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6351         (oppose_constraint): Same.
6352         (cloog_matrix_to_ppl_constraint): Same.
6353         (new_Constraint_System_from_Cloog_Matrix): Same.
6354         * graphite-cloog-util.h: New.
6355         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
6356         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6357         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6358         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6359         (insert_constraint_into_matrix): Same.
6360         * graphite-ppl.c:
6361         Added graphite-cloog-util.h to include statements.
6362         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
6363         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6364         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6365         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6366         (insert_constraint_into_matrix): Same.
6367         (ppl_Constrain_System_number_of_constraints): Same.
6368         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6369         (oppose_constraint): Same.
6370         (cloog_matrix_to_ppl_constraint): Same.
6371         (new_Constraint_System_from_Cloog_Matrix): Same.
6372         * graphite-ppl.h:
6373         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
6374         graphite-cloog-util.h.
6375         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6376         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6377         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6378         (insert_constraint_into_matrix): Same.
6379
6380 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6381
6382         * graphite-clast-to-gimple.c
6383         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
6384         (precision_for_interval): Same.
6385         (gcc_type_for_interval): Same.
6386         (compute_type_for_level): Same.
6387         * graphite-interchange.c
6388         (lst_interchange_profitable_p): Same.
6389         * graphite-poly.c
6390         (psct_scattering_dim_for_loop_depth): Same.
6391         * graphite-ppl.c
6392         (ppl_max_for_le_pointset): Same.
6393         (ppl_min_for_le_pointset): Same.
6394
6395 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6396
6397         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
6398         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
6399
6400 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6401
6402         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
6403         rewrite_close_phi_out_of_ssa.
6404
6405 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6406
6407         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
6408
6409 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6410
6411         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
6412         rename_map.
6413         * sese.c (debug_rename_map): Same.
6414         (get_rename): Same.
6415         (set_rename): Same.
6416         (rename_variables_in_stmt): Same.
6417         (expand_scalar_variables_call): Same.
6418         (expand_scalar_variables_ssa_name): Same.
6419         (expand_scalar_variables_expr): Same.
6420         (expand_scalar_variables_stmt): Same.
6421         (expand_scalar_variables): Same.
6422         (rename_variables): Same.
6423         (graphite_copy_stmts_from_block): Same.
6424         (copy_bb_and_scalar_dependences): Same.
6425
6426 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6427
6428         * graphite-clast-to-gimple.c (copy_renames): Removed.
6429         (translate_clast_for): Do not call copy_renames.
6430         (translate_clast_guard): Same.
6431
6432 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6433
6434         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
6435         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
6436         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
6437         before rewrite_cross_bb_scalar_deps.
6438
6439 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6440
6441         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
6442         Early return in when flag_associative_math is not set.
6443
6444 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6445
6446         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
6447         of SSA copies on edges except for loop->latch.
6448
6449 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6450
6451         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
6452         Split out of rewrite_reductions_out_of_ssa.
6453         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
6454         Declared.
6455         * graphite.c (graphite_transform_loops): Call it.
6456
6457 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6458
6459         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
6460
6461 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
6462
6463         * dbgcnt.def (graphite_scop): New counter.
6464         * graphite.c: Include dbgcnt.h.
6465         (graphite_transform_loops): Use new counter to limit transformations.
6466         * Makefile.in (graphite.o): Depend on DBGCNT_H.
6467
6468 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6469
6470         * passes.c (init_optimization_passes): Add pass_graphite.
6471         Schedule a pass_copy_prop before pass_graphite_transforms.
6472         * timevar.def (TV_GRAPHITE): Declared.
6473         * tree-pass.h (pass_graphite): Declared.
6474         * tree-ssa-loop.c (pass_graphite): New.
6475
6476 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6477
6478         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
6479         Remove calls to rename_nb_iterations and rename_sese_parameters.
6480         * graphite-clast-to-gimple.h (gloog): Update declaration.
6481         * graphite.c (graphite_transform_loops): Update call to gloog.
6482         * sese.c (rename_variables_in_expr): Removed.
6483         (rename_nb_iterations): Removed.
6484         (rename_sese_parameters): Removed.
6485         * sese.h (rename_nb_iterations): Removed.
6486         (rename_sese_parameters): Removed.
6487
6488 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6489
6490         * graphite-clast-to-gimple.c (gloog): Remove call to
6491         sese_adjust_liveout_phis.
6492         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
6493         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
6494         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
6495         rewrite_phi_out_of_ssa.
6496         * sese.c (get_vdef_before_sese): Removed.
6497         (sese_adjust_vphi): Removed.
6498         (sese_adjust_liveout_phis): Removed.
6499         * sese.h (sese_adjust_liveout_phis): Removed.
6500
6501 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6502
6503         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
6504         argument for the place after which to insert the out of SSA copy.
6505         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
6506         (rewrite_phi_out_of_ssa): Same.
6507         (rewrite_cross_bb_scalar_deps): Same.
6508         (insert_copyout): Removed.
6509         (insert_copyin): Removed.
6510         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
6511         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
6512         insert_copyin.
6513
6514 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6515
6516         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
6517         (rewrite_reductions_out_of_ssa): Same.
6518         (rewrite_commutative_reductions_out_of_ssa): Same.
6519         (build_poly_scop): Do not call these functions.
6520         * graphite-sese-to-poly.h (build_poly_scop): Declared.
6521         (rewrite_reductions_out_of_ssa): Declared.
6522         (rewrite_commutative_reductions_out_of_ssa): Declared.
6523         * graphite.c (graphite_transform_loops): Call on every scop
6524         rewrite_commutative_reductions_out_of_ssa before calling
6525         rewrite_reductions_out_of_ssa and build_scop_bbs.
6526
6527 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6528
6529         * graphite-dependences.c (dot_deps): Make system call to dotty run
6530         in background.
6531         (dot_deps_stmt): Same.
6532         * graphite-poly.c (dot_lst): Same.
6533
6534 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6535
6536         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
6537         phi_arg_in_outermost_loop.
6538         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
6539         (remove_invariant_phi): Same.
6540
6541 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
6542
6543         * target.def (output_addr_const_extra): New hook.
6544         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
6545         * doc/tm.texi: Regenerate.
6546         * targhooks.c (default_asm_output_addr_const_extra): New function.
6547         * targhooks.h (default_asm_output_addr_const_extra): Declare.
6548         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
6549         target hook.
6550
6551         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6552         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
6553         * config/i386/i386.h (output_addr_const_extra): Rename to...
6554         (i386_asm_output_addr_const_extra): ...this. Make static.
6555         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6556
6557 2010-08-11  Richard Henderson  <rth@redhat.com>
6558
6559         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
6560
6561 2010-08-11  Nick Clifton  <nickc@redhat.com>
6562
6563         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
6564         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
6565         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
6566         stormy16-lib2-cmpsi.c.
6567
6568         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
6569         -O2.
6570
6571 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
6572
6573         * opts.h (struct cl_option_handler_func): Make handler take
6574         cl_decoded_option structure as parameter, not individual elements.
6575         (struct cl_option_handlers): Make callbacks take cl_decoded_option
6576         structure as parameter, not individual elements.
6577         (handle_option): Take cl_decoded_option structure as parameter,
6578         not individual elements.
6579         (handle_generated_option): Declare.
6580         * opts-common.c (handle_option): Take cl_decoded_option structure
6581         as parameter, not individual elements.  Update calls to callback
6582         and handler functions.
6583         (handle_generated_option): New.
6584         (read_cmdline_option): Update calls to callback functions and
6585         handle_option.
6586         * opts.c (common_handle_option, complain_wrong_lang,
6587         unknown_option_callback, post_handling_callback,
6588         lang_handle_option, target_handle_option): Take cl_decoded_option
6589         structure as parameter, not individual elements.
6590         (lang_handle_option, target_handle_option, common_handle_option):
6591         Assert option has at most one argument.
6592         (enable_warning_as_error): Call handle_generated_option instead of
6593         handle_option.  Do not pass -Werror argument as argument of
6594         generated option.
6595
6596 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6597
6598         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6599         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6600         (SUBWORD_BOOL_CAS): Likewise.
6601         (SUBWORD_SYNC_OP): Likewise.
6602         (SUBWORD_TEST_AND_SET): Likewise.
6603         (FETCH_AND_OP_WORD): Parenthesise INF_OP
6604         (SUBWORD_SYNC_OP): Likewise.
6605         (OP_AND_FETCH_WORD): Likewise.
6606
6607 2010-08-10  Xinliang David Li  <davidxl@google.com>
6608
6609         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
6610         compute max/min offset in address.
6611
6612 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
6613
6614         * ira-live.c: Include sbitmap.h.
6615         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
6616         Compress live ranges even more.
6617
6618 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6619
6620         * coverage.c (ctr_labels): Delete.
6621
6622 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
6623
6624         PR bootstrap/45177
6625         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
6626         test here from arm_gen_load_multiple_1.
6627         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
6628         multiple_operation_profitable_p.
6629
6630 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6631
6632         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
6633         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
6634
6635 2010-08-10  Richard Henderson  <rth@redhat.com>
6636
6637         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
6638         after saving registers.  Assert that SSE registers are only saved
6639         with a sufficiently aligned frame.
6640         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
6641         remove stack_realign_fp handling.
6642         (ix86_expand_prologue): Save int registers before stack_realign_fp,
6643         and do not mark the stack alignment as frame related.
6644         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
6645
6646         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
6647         saves when re-aligning the stack.
6648
6649 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6650
6651         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
6652         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
6653         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
6654
6655 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6656
6657         * dwarf2out.c (struct die_struct): Move die_tag to the end.
6658
6659 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
6660
6661         * config/arm/iterators.md: New file.
6662         * config/arm/arm.md: Include iterators.md.
6663         (QHSI): Move to new file.
6664         (LTUGEU, cnb, optab, ior_xor): Likewise.
6665         * config/arm/iwmmxt.md (VMMX): Move to new file.
6666         (VSHFT, MMX_char): Likewise.
6667         * config/arm/neon.md (VD): Move to new file.
6668         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
6669         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
6670         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
6671         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
6672         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
6673         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
6674         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
6675         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
6676         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
6677         (Is_d_reg, V_mode_nunits): Likewise.
6678         * config/arm/vec-common.md (VALL): Move to new file.
6679         (VALLW, VINT, VINTW): Likewise.
6680
6681 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
6682
6683         PR middle-end/45182
6684         * combine.c (make_compound_operation): Don't try to convert
6685         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
6686
6687 2010-08-10  Richard Guenther  <rguenther@suse.de>
6688
6689         * tree.h (get_object_alignment): Adjust prototype.
6690         * builtins.c (get_object_alignment): Return unsigned int,
6691         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
6692         and TARGET_MEM_REF properly.
6693         (get_pointer_alignment): Adjust.
6694         * emit-rtl.c (get_mem_align_offset): Adjust comment.
6695         (set_mem_attributes_minus_bitpos): Adjust.
6696         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
6697
6698 2010-08-10  Richard Guenther  <rguenther@suse.de>
6699
6700         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
6701         (copy_prop_visit_assignment): Simplify.
6702         (copy_prop_visit_stmt): Also visit assignments from
6703         constants.
6704         (copy_prop_visit_phi_node): Use operand_equal_p.
6705
6706 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6707
6708         * ipa-split.c (find_split_points): Free stack.
6709
6710 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6711
6712         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
6713         * tree.c (tree_node_kind): Delete corresponding entries.
6714
6715 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
6716
6717         * alias.c (may_alias_p): Remove unused ret.
6718
6719 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
6720
6721         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
6722         alias_sets_conflict_p.
6723         (walk_mems_1): Moved from alias.c.
6724         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
6725         in alias.c.
6726         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
6727         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
6728         * alias.c (walk_mems_2): Moved to ddg.c.
6729         (walk_mems_1): Ditto.
6730         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
6731         to ddg.c.
6732         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
6733         disambiguation.
6734         *(may_alias_p): New function to check whether two memory expression
6735         may alias or not. Currently used in buidling inter-iteration memory
6736         dependence.
6737         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
6738         (insn_alias_sets_conflict_p): Removed
6739         *rtl.h (may_alias_p): New function prototype.
6740
6741 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6742
6743         * tree.c (nreverse): Assert that we don't have a BLOCK.
6744
6745 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6746
6747         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
6748         * config/arm/arm.c (arm_get_pcs_model): Likewise.
6749         * config/avr/avr.c (init_cumulative_args): Likewise.
6750         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6751         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6752         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
6753         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
6754         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
6755         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6756         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
6757         * dwarf2out.c (gen_subprogram_die): Likewise.
6758         * function.c (allocate_struct_function): Likewise.
6759         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
6760         (deserves_ellipsis): Delete.
6761
6762 2010-08-09  Richard Guenther  <rguenther@suse.de>
6763
6764         * tree-ssa-copy.c (cached_last_copy_of): Remove.
6765         (valueize_val): New function.
6766         (get_last_copy_of): Remove.
6767         (set_copy_of_val): Simplify.
6768         (dump_copy_of): Likewise.
6769         (copy_prop_visit_cond_stmt): Use valueize_val.
6770         (copy_prop_visit_phi_node): Properly handle unvisited names.
6771         Drop code managing copy-of chains.
6772         (init_copy_prop): Adjust.
6773         (fini_copy_prop): Likewise.
6774         (execute_copy_prop): Remove obsolete comment.
6775
6776 2010-08-09  Richard Guenther  <rguenther@suse.de>
6777
6778         PR middle-end/44632
6779         * function.c (gimplify_parameters): Do not clear addressable
6780         bit of the original parameter.
6781
6782 2010-08-09  Richard Guenther  <rguenther@suse.de>
6783
6784         PR middle-end/45212
6785         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
6786         alignment from MEM_REF offset only if we took it from the
6787         base object.
6788
6789 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
6790
6791         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
6792
6793 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6794
6795         * c-tree.h (build_arg_info): Declare.
6796         * c-decl.c (build_arg_info): Define.
6797         (get_parm_info): Call it.  Delete initialization code.
6798         * c-parser.c (c_parser_parms_declarator): Likewise.
6799         (c_parser_parms_list_declaractor): Likewise.
6800
6801 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6802
6803         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
6804         (struct c_arg_info): Change type of tags field.
6805         * c-decl.c (grokdeclarator): Update for changed type of tags field.
6806         (get_parm_info): Likewise.
6807         (store_parm_decls_newstyle): Likewise.
6808
6809 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6810
6811         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
6812         (branch_island_list): Delete.
6813         (branch_islands): Declare.
6814         (add_compiler_branch_island): Adjust for branch_islands instead of
6815         branch_island_list.
6816         (macho_branch_islands): Likewise.
6817         (no_previous_def): Likewise.
6818         (get_prev_label): Likewise.
6819
6820 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6821
6822         PR boehm-gc/34544
6823         * gthr-posix.h (__gthread_start): Delete.
6824         (__gthread_active_init): Use pthread_default_stacksize_np instead of
6825         pthread_create to determine if hpux pthreads are active.
6826         * gthr-posix95.h (__gthread_start): Delete.
6827         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
6828
6829 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
6830
6831         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
6832         _WIN64 not expanded.
6833
6834 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
6835             H.J. Lu  <hongjiu.lu@intel.com>
6836
6837         PR target/45213
6838         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
6839         to output 32bit SFmode immediate as 8 byte sign extended value.
6840
6841 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6842
6843         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6844         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6845         (SUBWORD_BOOL_CAS): Likewise.
6846         (SUBWORD_SYNC_OP): Likewise.
6847         (SUBWORD_TEST_AND_SET): Likewise.
6848         (FETCH_AND_OP_WORD): Parenthesise INF_OP
6849         (SUBWORD_SYNC_OP): Likewise.
6850         (OP_AND_FETCH_WORD): Likewise.
6851
6852 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6853
6854         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
6855         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
6856         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
6857         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
6858         generic part.
6859         (cortex_a9_sched_adjust_cost): New function.
6860         (xscale_sched_adjust_cost): New function.
6861         * config/arm/arm-protos.h (struct tune_params): New field
6862         sched_adjust_cost.
6863         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
6864
6865 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
6866
6867         PR target/44942
6868         * config/sparc/sparc.c (function_arg_advance): Always take into account
6869         the padding, if any.
6870
6871 2010-08-06  Richard Guenther  <rguenther@suse.de>
6872
6873         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
6874         (dump_lattice_value): Dump it.
6875         (get_default_value): Adjust.
6876         (get_constant_value): Likewise.
6877         (set_value_varying): Likewise.
6878         (set_lattice_value): Make sure to not go up the lattice
6879         with bitwise constant values.
6880         (get_value_for_expr): Handle ADDR_EXPRs.
6881         (value_to_double_int): New function.
6882         (get_value_from_alignment): Likewise.
6883         (do_dbg_cnt): Adjust.
6884         (ccp_lattice_meet): Handle partially constant values.
6885         (bit_value_unop_1): New function.
6886         (bit_value_binop_1): Likewise.
6887         (bit_value_unop): Likewise.
6888         (bit_value_binop): Likewise.
6889         (evaluate_stmt): Track partially constant values if
6890         flag_tree_bit_ccp is set.
6891         (ccp_fold_stmt): Dump if we folded a predicate.
6892         (ccp_visit_stmt): Adjust.
6893         * common.opt (ftree-bit-ccp): New flag.
6894         * doc/invoke.texi (ftree-bit-ccp): Document.
6895         * opts.c (decode_options): Enable bit-CCP at -O1.
6896
6897 2010-08-06  Alan Modra  <amodra@gmail.com>
6898
6899         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
6900         and -mrelocatable-lib description.
6901
6902 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
6903
6904         From Martin Thuresson  <martint@google.com>
6905         * postreload.c (reload_cse_simplify_operands): Use
6906         SET_REGNO_RAW instead of SET_REGNO.
6907         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
6908         SET_REGNO.
6909         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
6910         instead of SET_REGNO.
6911         * rtl.h (SET_REGNO_RAW): New macro.
6912
6913 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
6914
6915         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
6916         computations.  Fix formatting issues.
6917         (num_sign_bit_copies1): Likewise.
6918         (canonicalize_condition): Likewise.
6919
6920 2010-08-05  Richard Henderson  <rth@redhat.com>
6921
6922         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
6923         (floor_log2): Use clz_hwi.
6924         (exact_log2): Use ctz_hwi.
6925         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
6926         * builtins.c (fold_builtin_bitop): Use them.
6927         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6928         * combine.c (get_pos_from_mask): Use ctz_hwi.
6929         * double-int.c (double_int_ctz): Likewise.
6930         * explow.c (force_reg): Likewise.
6931         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
6932
6933 2010-08-05  Richard Henderson  <rth@redhat.com>
6934
6935         PR target/45189
6936         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
6937         the alignment constant is properly sign-extended.
6938
6939 2010-08-05  Richard Guenther  <rguenther@suse.de>
6940
6941         * expr.c (store_expr): Use emit_block_move only if both
6942         source and target are MEMs.  Use store_bit_field if only
6943         the target is a MEM.
6944
6945 2010-08-05  Richard Henderson  <rth@redhat.com>
6946
6947         PR debug/45188
6948         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
6949         (INCOMING_RETURN_ADDR_RTX): Likewise.
6950         (dwarf2out_do_frame): Remove conditional compilation.
6951         (dwarf2out_frame_init): Likewise.
6952
6953 2010-08-05  Nicolas Setton  <setton@adacore.com>
6954
6955         * gcov.c (flag_display_progress): New static variable.
6956         (main): Display progress info on standard output if requested.
6957         (options): Add -d/--display-progress.
6958         (print_usage): Print them.
6959         (process_args): Handle them.
6960         * doc/gcov.texi: Document them.
6961
6962 2010-08-05  Martin Jambor  <mjambor@suse.cz>
6963
6964         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
6965         (ipcp_insert_stage): Redirect only edges not flagged with
6966         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
6967         discovered constants.
6968
6969 2010-08-05  Martin Jambor  <mjambor@suse.cz>
6970
6971         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
6972         (struct ipa_param_descriptor): New fields types and
6973         cannot_devirtualize.
6974         (ipa_param_cannot_devirtualize_p): New function.
6975         (ipa_param_types_vec_empty): Likewise.
6976         (ipa_make_edge_direct_to_target): Declare.
6977         * ipa-cp.c: Fixed first stage driver name in initial comment,
6978         described devirtualization there too.
6979         (ipcp_analyze_node): Call ipa_analyze_params_uses.
6980         (ipcp_print_all_lattices): Print devirtualization info.
6981         (ipa_set_param_cannot_devirtualize): New function.
6982         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
6983         lattice to BOTTOM.
6984         (ipcp_init_stage): Merged into...
6985         (ipcp_generate_summary): ...its caller.
6986         (ipcp_change_tops_to_bottom): Also process type lists.
6987         (ipcp_add_param_type): New function.
6988         (ipcp_copy_types): Likewise.
6989         (ipcp_propagate_types): Likewise.
6990         (ipcp_propagate_stage): Also propagate types.
6991         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
6992         Also return true if propagated types require it.
6993         (ipcp_update_callgraph): Dump redirection info.
6994         (ipcp_process_devirtualization_opportunities): New function.
6995         (ipcp_const_param_count): Include known type information.
6996         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
6997         on new node.  Fixed formatting.
6998         * ipa-prop.c (make_edge_direct_to_target): Renamed to
6999         ipa_make_edge_direct_to_target and changed all callers.  Made
7000         externally visible.
7001         (ipa_node_duplication_hook): Duplicate types vector.
7002         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
7003         redirect outgoing calls for which we can't get a decl from the
7004         statement.  Check that we can get a decl from the call statement.
7005         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
7006         ipa_analyze_params_uses only when ipa-cp is disabled.
7007         * tree-inline.c (get_indirect_callee_fndecl): Removed.
7008         (expand_call_inline): Do not call get_indirect_callee_fndecl.
7009         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
7010         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
7011
7012 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
7013
7014         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
7015         temporary. Emit move from temporary to accum, so REG_EQUAL note will
7016         be attached to this insn in correct mode.
7017
7018 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
7019
7020         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
7021         using REGNO of base_reg directly.
7022
7023 2010-08-05  Jie Zhang  <jie@codesourcery.com>
7024
7025         PR tree-optimization/45144
7026         * tree-sra.c (type_consists_of_records_p): Return false
7027         if the record contains bit-field.
7028
7029 2010-08-04  Richard Henderson  <rth@redhat.com>
7030
7031         * config/i386/i386.c (struct ix86_frame): Remove padding and
7032         to_allocate members.
7033         (ix86_compute_frame_layout): Don't store them.
7034         (ix86_can_use_return_insn_p): Use a more direct and more obviously
7035         correct condition for the position of the stack pointer.
7036         (ix86_expand_prologue): Compute remaining stack allocation based
7037         on the ultimate stack pointer offset.
7038         (ix86_expand_epilogue): Use more obvious expressions testing for
7039         the stack pointer already pointing to the saved registers.
7040
7041         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
7042         duplication deconstructing the frame pointer.  Simplify
7043         deallocation of the local stack frame.
7044
7045         * reg-notes.def (CFA_EXPRESSION): New.
7046         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7047         (dwarf2out_frame_debug_cfa_expression): New.
7048         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
7049
7050         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
7051         * config/i386/i386.c (ix86_expand_prologue): Set it.
7052         (ix86_expand_epilogue): Clear it.
7053         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
7054         context, add REG_CFA_EXPRESSION notes.
7055
7056         * config/i386/i386.h (struct machine_frame_state): Rename from
7057         machine_cfa_state.  Add members tracking SP and FP regardless
7058         of the current CFA register.
7059         (ix86_cfa_state): Remove.
7060         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
7061         and sse_reg_save_offset members.
7062         (ix86_compute_frame_layout): Set them.
7063         (gen_push): Increment sp_offset too.
7064         (choose_baseaddr_len, choose_baseaddr): New.
7065         (ix86_emit_save_reg_using_mov): New.
7066         (ix86_emit_save_regs_using_mov): Use it.
7067         (ix86_emit_save_sse_regs_using_mov): Likewise.
7068         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
7069         compare vs the saved red_zone_offset.
7070         (pro_epilogue_adjust_stack): Adjust sp_offset.
7071         (ix86_adjust_stack_and_probe): Likewise.
7072         (ix86_expand_prologue): Set up, use, and validate the new
7073         frame_state_info members.  Use gen_frame_mem.
7074         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
7075         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
7076         new frame_state_info members.
7077         (ix86_emit_leave): Likewise.
7078         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
7079         out-of-range stack pointer offsets here.
7080         (ix86_emit_restore_sse_regs_using_mov): Likewise.
7081         (ix86_expand_epilogue): Use and validate the new frame_state_info
7082         members.  Break up and simplify the logic selecting the
7083         restore_regs_via_mov code path.  Ensure that there will be no
7084         out-of-range stack pointer offsets.
7085
7086         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
7087
7088         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
7089         argument name to reflect the expected tree; fix indentation.
7090         (ix86_asm_output_function_label): Output the entire 32-bit
7091         ms_hook here as bytes ...
7092         (ix86_expand_prologue): ... not here as insns.  Attach the
7093         unwind info for the ms_hook to a blockage insn.
7094         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
7095         (ix86_ms_bitfield_layout_p): Fix indentation.
7096         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
7097
7098         * config/i386/i386.c (ix86_using_red_zone): New.
7099         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
7100         ix86_expand_prologue, ix86_force_to_memory): Use it.
7101
7102         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
7103         saving the int registers.
7104
7105         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
7106         and DWARF2_UNWIND_INFO conditional compilation.
7107
7108 2010-08-04  Richard Henderson  <rth@redhat.com>
7109
7110         PR debug/45171
7111         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
7112         an is_naming_typedef_decl.
7113
7114 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
7115
7116         PR rtl-optimization/45162
7117         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
7118         * dce.c (word_dce_process_block): Likewise.
7119
7120 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
7121
7122         PR target/44583
7123         * config/ia64/constraints.md (Z): New.
7124         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
7125         (xfreg_or_signed_fp01_operand): New.
7126         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
7127         with fr_reg_or_signed_fp01_operand and constraint G with Z.
7128         (subsf3): Ditto.
7129         (*maddsf4): Ditto.
7130         (*msubsf4): Ditto.
7131         (adddf3): Ditto.
7132         (adddf3_trunc): Ditto.
7133         (subdf3): Ditto.
7134         (*subdf3_trunc): Ditto.
7135         (*madddf4): Ditto.
7136         (*madddf4_trunc): Ditto.
7137         (*msubdf4): Ditto.
7138         (*msubdf4_trunc): Ditto.
7139         (addxf3): Replace xfreg_or_fp01_operand with
7140         xfreg_or_signed_fp01_operand and constraint G with Z.
7141         (*addxf3_truncsf): Ditto.
7142         (*addxf3_truncdf): Ditto.
7143         (subxf3): Ditto.
7144         (*subxf3_truncsf): Ditto.
7145         (*subxf3_truncdf): Ditto.
7146         (*maddxf4): Ditto.
7147         (*maddxf4_truncsf): Ditto.
7148         (*maddxf4_truncdf): Ditto.
7149         (*msubxf4): Ditto.
7150         (*msubxf4_truncsf): Ditto.
7151         (*msubxf4_truncdf): Ditto.
7152
7153 2010-08-04  Richard Guenther  <rguenther@suse.de>
7154
7155         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
7156         if either alias-set is zero.
7157
7158 2010-08-04  Richard Guenther  <rguenther@suse.de>
7159
7160         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
7161         * tree-ssa-ccp.c: ... here.
7162         * tree-ssa-copy.c: ... and here.
7163         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
7164         value_range_t): Move ...
7165         * tree-vrp.c: ... here.
7166         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
7167         (substitute_and_fold): Adjust prototype.
7168         * tree-ssa-propagate.c (replace_uses_in): Adjust.
7169         (replace_phi_args_in): Likewise.
7170         (substitute_and_fold): Take callback to query lattice instead
7171         of pointer to lattice.  Replace SSA name defs with lattice
7172         values first.
7173         * tree-ssa-ccp.c (ccp_finalize): Adjust.
7174         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
7175         (get_value): New function.
7176         (fini_copy_prop): Adjust.
7177         * tree-vrp.c (vrp_finalize): Adjust.
7178
7179 2010-08-04  Richard Guenther  <rguenther@suse.de>
7180
7181         PR middle-end/45176
7182         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
7183         points-to set for original MEM_REF.
7184
7185 2010-08-04  Richard Guenther  <rguenther@suse.de>
7186
7187         * tree-ssa-ccp.c (get_constant_value): New function.
7188         (get_rhs_assign_op_for_ccp): Remove.
7189         (valueize_op): New function.
7190         (ccp_fold): Use get_constant_value and valueize_op.
7191         (fold_const_aggregate_ref): Likewise.
7192         (ccp_fold_stmt): Likewise.
7193         (visit_assignment): Simplify.
7194
7195 2010-08-04  Richard Guenther  <rguenther@suse.de>
7196
7197         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
7198         * double-int.h (double_int_ctz): Declare.
7199         * double-int.c (double_int_ctz): New function.
7200
7201 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
7202
7203         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
7204         Define.
7205         picochip_expand_movmemhi : Expand movmem pattern.
7206         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
7207         Declare.
7208         * config/picochip/picochip.md (movmemhi) : New pattern.
7209
7210 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
7211
7212         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
7213
7214 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
7215
7216         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
7217         NEG as operand of a MULT by merging it with the other operand.
7218         * combine.c (make_compound_operation): Use trunc_int_for_mode when
7219         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
7220         MULT.
7221         * config/arm/constraints.md (M): Examine only 32 bits of a
7222         HOST_WIDE_INT.
7223         * config/arm/predicates.md (power_of_two_operand): Likewise.
7224
7225 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7226
7227         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
7228         non-NOTE insns.
7229
7230 2010-08-03  Jan Hubicka  <jh@suse.cz>
7231
7232         * ipa-split.c (struct split_point): Add split_part_set_retval.
7233         (find_retval): Forward declare.
7234         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
7235         (consider_split): Compute current->split_part_set_retval.
7236         (visit_bb): Do not look into return value.
7237         (split_function): Handle !split_part_set_retval
7238
7239 2010-08-03  Martin Jambor  <mjambor@suse.cz>
7240
7241         * tree-sra.c (completely_scalarize_record): New parameter REF, create
7242         its own access->expr intead of using build_ref_for_offset.
7243
7244 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
7245
7246         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
7247         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
7248         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
7249         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
7250         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
7251         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
7252         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
7253         DEFAULT_SWITCH_TAKES_ARG.
7254         * config/rx/rx.opt (-patch=): Remove option.
7255         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
7256         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
7257         * doc/invoke.texi (RX Options): Remove -patch=.
7258         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
7259         (option_map): Remove --profile-blocks, --quiet and --silent.
7260
7261 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
7262
7263         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
7264         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
7265         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
7266         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7267         Update calls to ix86_expand_compare and ix86_expand_branch.
7268         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
7269         ix86_expand_compare.
7270         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
7271         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7272         Make static.
7273         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
7274         and ix86_compare_op1.  Update calls to ix86_expand_compare.
7275         (ix86_expand_int_movcc): Ditto.
7276         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
7277         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
7278         (ix86_expand_setcc): Ditto.
7279         (ix86_expand_compare): Remove prototype.
7280         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
7281         ix86_compare_op0 and ix86_compare_op1.  Update calls
7282         to ix86_expand_branch to directly pass operands[1] and operands[2].
7283         (cbranchxf4): Ditto.
7284         (cbranch<MODEF:mode>4): Ditto.
7285         (cbranchcc4): Ditto.
7286         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
7287         Update calls to ix86_expand_setcc to directly pass operands[2] and
7288         operands[3].
7289         (cstorexf4): Ditto.
7290         (cstore<MODEF:mode>4): Ditto.
7291         (cstorecc4): Ditto.
7292
7293 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
7294
7295         PR target/45063
7296         * caller-save.c (save_call_clobbered_regs): Remove regs from
7297         hard_regs_saved when they are set.
7298
7299 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
7300
7301         PR target/41089
7302         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
7303         as volatile.
7304
7305 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
7306
7307         * common.opt (ftree-loop-distribute-patterns): New.
7308         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
7309         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
7310         at -O3.
7311         * tree-data-ref.c (stores_zero_from_loop): New.
7312         * tree-data-ref.h (stores_zero_from_loop): Declared.
7313         * tree-loop-distribution.c (tree_loop_distribution): Call
7314         stores_zero_from_loop.
7315         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
7316
7317 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
7318
7319         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
7320         into account.
7321
7322         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
7323         * config/arm/arm.c (thumb1_code): New variable.
7324         (arm_override_options): Set it.
7325         (thumb1_final_prescan_insn): Keep track of condition code status.
7326         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
7327         jumps that depend on them.
7328         * config/arm/arm.h (thumb1_code): Declare variable.
7329         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
7330         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
7331         thumb1_cc_mode.
7332         (CC_STATUS_INIT): New macro.
7333         * config/arm/constraints.md (Pd): New constraint.
7334         * config/arm/predicates.md (noov_comparison_operator): New predicate.
7335         * config/arm/arm.md (is_thumb1): New define_attr.
7336         (conds): Set default to "clob" when generating Thumb1 code.
7337         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
7338         code are set.  Use two-operand assembly syntax.
7339         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
7340         pattern.
7341         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
7342         codes are set.  Use two-operand assembly syntax.
7343         (zero_extendhisi splitter): Remove constraints.
7344         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
7345         thumb1_movsf_insn): Set conds attribute as appropriate.
7346         (cbranchsi4_insn): Use condition code status from struct
7347         machine_function to determine whether the comparison can be eliminated.
7348         Discourage the alternative using high registers.
7349         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
7350         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
7351         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
7352         subsi3_cbranch): Delete.
7353         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
7354         one subtract and one cbranch insn.
7355
7356         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
7357         thumb2_movdf_soft_insn): Delete patterns.
7358         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
7359         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
7360         (pool_range, neg_pool_range): Use them to define defaults.
7361         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
7362         and allow for TARGET_32BIT.
7363
7364         PR target/40457
7365         * config/arm/arm.h (arm_regs_in_sequence): Declare.
7366         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
7367         load_multiple_sequence, store_multiple_sequence): Delete
7368         declarations.
7369         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
7370         declarations.
7371         * config/arm/ldmstm.md: New file.
7372         * config/arm/arm.c (arm_regs_in_sequence): New array.
7373         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
7374         CHECK_REGS.  All callers changed.
7375         If SAVED_ORDER is nonnull, copy the computed order into it.
7376         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
7377         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
7378         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
7379         If SAVED_ORDER is nonnull, copy the computed order into it.
7380         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
7381         like REGS.  Handle Thumb mode.
7382         (arm_gen_load_multiple_1): New function, broken out of
7383         arm_gen_load_multiple.
7384         (arm_gen_store_multiple_1): New function, broken out of
7385         arm_gen_store_multiple.
7386         (arm_gen_multiple_op): New function, with code from
7387         arm_gen_load_multiple and arm_gen_store_multiple moved here.
7388         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
7389         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
7390         changed.
7391         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
7392         * config/arm/predicates.md (commutative_binary_operator): New.
7393         (load_multiple_operation, store_multiple_operation): Handle more
7394         variants of these patterns with different starting offsets.  Handle
7395         Thumb-1.
7396         * config/arm/arm.md: Include "ldmstm.md".
7397         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
7398         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
7399         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
7400         peepholes): Delete.
7401         * config/arm/ldmstm.md: New file.
7402         * config/arm/arm-ldmstm.ml: New file.
7403
7404         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
7405         if statement which adds extra costs to frame-related expressions.
7406
7407 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7408
7409         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
7410
7411 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
7412
7413         PR target/45142
7414         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
7415         alternative 2.
7416         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
7417         split V4SI operands.
7418
7419 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
7420
7421         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7422         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
7423         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
7424         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
7425
7426 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
7427
7428         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
7429         LOCAL_INCLUDE_DIR.
7430
7431 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
7432
7433         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
7434         used in the call to optab_for_tree_code.  Fix the second
7435         is_widening_mult_p call.  Check that both unwidened operands
7436         have the same sign.
7437
7438 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
7439
7440         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
7441
7442 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
7443
7444         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7445
7446 2010-07-30  DJ Delorie  <dj@redhat.com>
7447
7448         * config/rx/predicates.md (rx_constshift_operand): New.
7449         * config/rx/rx.md (zs_cond): New.
7450         (cbranchsi4): Remove mode.
7451         (*cbranchsi4_<code>): Likewise.
7452         (*tstbranchsi4_<code>): New.
7453         (*tstbranchsi4r_<code>): New.
7454         (*tstbranchsi4m_eq): New.
7455         (*tstbranchsi4m_ne): New.
7456         (cbranchsf4): Remove mode.
7457         (*cbranchsf4_<code>): Likewise.
7458
7459 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
7460
7461         * rtlanal.c (simplify_subreg_regno): Don't treat
7462         HARD_FRAME_POINTER_REGNUM specially.
7463
7464 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
7465
7466         * common.opt (-G): Don't define option here.
7467         * config/g.opt: New.
7468         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
7469         rs6000/powerpc and score targets.
7470         * opts.c (common_handle_option): Don't handle -G here.
7471         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
7472         * config/frv/frv.c (frv_handle_option): Handle -G.
7473         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
7474         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
7475         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
7476         * config/mips/mips.c (mips_handle_option): Handle -G.
7477         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
7478         * config/score/score.c (score_handle_option): Handle -G.
7479
7480 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
7481
7482         * config/mmix/mmix.c: Include basic-block.h.
7483
7484 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
7485
7486         PR debug/45055
7487         PR rtl-optimization/45137
7488         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
7489         prototypes.
7490         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
7491         New functions.
7492         * combine.c (next_nonnote_nondebug_insn): Removed.
7493         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
7494         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
7495         * sched-deps.c (sched_analyze_insn): Likewise.
7496         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
7497         * rtlanal.c (canonicalize_condition): Likewise.
7498         * postreload.c (reload_combine_recognize_pattern): Likewise.
7499         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
7500
7501 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
7502
7503         * config/i386/i386.md (int_cond): Remove code iterator.
7504         (fp_cond): Ditto.
7505         (cbranch<mode>4): Use ordered_comparison_operator predicate
7506         for operator0.
7507         (cstore<mode>4): Ditto for operator1.
7508         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
7509         (add<mode>cc): ditto.
7510
7511 2010-07-30  Richard Guenther  <rguenther@suse.de>
7512
7513         PR middle-end/45141
7514         * expr.c (expand_expr_real_1): Check for not handled base address.
7515
7516 2010-07-30  Richard Guenther  <rguenther@suse.de>
7517
7518         * ipa-prop.c (ipa_modify_formal_parameters): Use
7519         build_distinct_type_copy.
7520
7521 2010-07-30  Anthony Green  <green@moxielogic.com>
7522
7523         * config/moxie/rtems.h: New file.
7524         * config.gcc: Add moxie-rtems support.
7525
7526 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7527
7528         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
7529         df flags as in run_fast_df_dce.
7530
7531 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7532
7533         Revert:
7534         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7535
7536         * rtl.def (NOTE): Swap operands 4 and 5.
7537         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
7538         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
7539         Adjust accordingly.
7540         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
7541
7542 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7543
7544         PR debug/45110
7545         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
7546         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
7547         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
7548         formal parameters.
7549         (gen_decl_die): Change return type to dw_die_ref, return what
7550         gen_formal_parameter_die returned.
7551
7552 2010-07-29  Martin Jambor  <mjambor@suse.cz>
7553
7554         * dbgcnt.def (eipa_sra): New counter.
7555         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
7556
7557 2010-07-29  Xinliang David Li  <davidxl@google.com>
7558
7559         PR bootstrap/45119
7560         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
7561         in revision 162652.
7562
7563 2010-07-29  Richard Guenther  <rguenther@suse.de>
7564
7565         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
7566         (TV_TREE_STORE_CCP): Likewise.
7567         (TV_TREE_REDPHI): Likewise.
7568
7569 2010-07-29  Richard Guenther  <rguenther@suse.de>
7570
7571         * double-int.h (double_int_and_not): New function.
7572         * combine.c (try_combine): Use it.
7573         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
7574
7575 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7576
7577         PR rtl-optimization/42575
7578         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
7579         Argument AU removed.  All callers changed.  Ignore artificial refs.
7580         Use return value of df_word_lr_simulate_defs to decide whether an insn
7581         is necessary.
7582         (fast_dce): Rename arg to WORD_LEVEL.
7583         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
7584         static.
7585         (pass_fast_rtl_byte_dce): Delete.
7586         * dce.h (run_word_dce): Declare.
7587         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
7588         All callers changed.  Simplify code to only deal with two-word regs.
7589         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
7590         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
7591         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
7592         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
7593         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
7594         (df_word_lr_mark_ref): Declare.
7595         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
7596         df_word_lr_simulate_uses): Declare or rename from byte variants.
7597         (df_byte_lr_simulate_artificial_refs_at_top,
7598         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7599         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
7600         declarations.
7601         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
7602         (enum df_mm): Delete.
7603         * df-byte-scan.c: Delete file.
7604         * df-problems.c (df_word_lr_problem_data): Renamed from
7605         df_byte_lr_problem_data, all members deleted except for
7606         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
7607         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
7608         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7609         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
7610         df_byte_lr_confluence_0): Delete functions.
7611         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
7612         callers changed.
7613         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
7614         Don't initialize members that were deleted, don't try to discover data
7615         about registers.  Ignore hard regs.
7616         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
7617         (df_word_lr_mark_ref): New function.
7618         (df_word_lr_bb_local_compute): Renamed from
7619         df_byte_bb_lr_local_compute; all callers changed.  Use
7620         df_word_lr_mark_ref.  Assert that artificial refs don't include
7621         pseudos.  Ignore hard registers.
7622         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
7623         Assert that exit block uses don't contain pseudos.
7624         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
7625         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
7626         callers changed.  Ignore hard regs.
7627         (df_word_lr_transfer_function): Renamed from
7628         df_byte_lr_transfer_function; all callers changed.
7629         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
7630         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
7631         changed.
7632         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
7633         callers changed.
7634         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
7635         confluence operator 0 set to NULL.
7636         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
7637         callers changed.
7638         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
7639         Return bool, true if bitmap changed or insn otherwise necessary.
7640         All callers changed.  Simplify using df_word_lr_mark_ref.
7641         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
7642         all callers changed.  Simplify using df_word_lr_mark_ref.
7643         * lower-subreg.c: Include "dce.h"
7644         (decompose_multiword_subregs): Call run_word_dce if df available.
7645         * Makefile.in (lower-subreg.o): Adjust dependencies.
7646         (df-byte-scan.o): Delete.
7647         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
7648
7649 2010-07-29  Richard Guenther  <rguenther@suse.de>
7650
7651         * tree.c (build_vector): Assert that the vector constant
7652         has enough elements.
7653         (build_vector_from_ctor): Pad with trailing zeros.
7654
7655 2010-07-29  Richard Guenther  <rguenther@suse.de>
7656
7657         PR tree-optimization/45120
7658         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7659         Handle offset in DEREFs properly.
7660         (get_constraint_for_1): Handle MEM_REF offset properly.
7661
7662 2010-07-29  Richard Guenther  <rguenther@suse.de>
7663
7664         PR middle-end/45034
7665         * convert.c (convert_to_integer): Always use an unsigned
7666         type for narrowed negate and bitwise not.
7667
7668 2010-07-29  Ira Rosen  <irar@il.ibm.com>
7669
7670         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
7671         to outer loop when creating reduction epilogue for double reduction,
7672         and switch back to the inner loop when updating the phi nodes.
7673         Update uses of outer loop exit phi nodes in double reduction (instead
7674         of uses of reduction).
7675
7676 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
7677
7678         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
7679         popcount on power7 and parity on power6 systems.
7680         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
7681         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
7682         instructions.
7683
7684         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
7685         (UNSPEC_PARITY): Ditto.
7686         (SFDF): New iterator for SF/DF.
7687         (rreg2): New mode attribute for floating register constraint.
7688         (TARGET_FLOAT): New mode attribute for whether single/double float
7689         is supported.
7690         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
7691         pattern.
7692         (parity<mode>2_cmpb): New insn for parity on power6 and newer
7693         machines.
7694         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
7695         pattern.  Add support for fcpsgn instruction added in power6.
7696         (copysignsf3): Delete.
7697         (copysigndf3): Delete.
7698         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
7699         instead of if_then_else in RTL to avoid problems with -0.
7700
7701         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
7702         of if_then_else to mirror scalar code.
7703         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
7704         rs6000.md.
7705
7706         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
7707         instead of if_then_else.
7708
7709 2010-07-28  Xinliang David Li  <davidxl@google.com>
7710
7711         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
7712         (dump_cand): Dump var_before/after.
7713         (htab_inv_expr_eq): New function.
7714         (htab_inv_expr_hash): New function.
7715         (tree_ssa_iv_optimize_init): Support pseudo invariants.
7716         (add_candidate_1): consider base type precision.
7717         (set_use_iv_cost): New parameter.
7718         (adjust_setup_cost): Use profile information.
7719         (get_address_cost): Do not hard code width in computing address
7720         offset limits.
7721         (compare_aff_trees): New function.
7722         (get_loop_invariant_expr_id): New function.
7723         (get_computation_cost_at): New parameter and use profile information.
7724         (get_computation_cost): New parameter.
7725         (determine_use_iv_cost_generic): Pass new parameter.
7726         (determine_use_iv_cost_address): Ditto.
7727         (determine_use_iv_cost_condition): Ditto.
7728         (autoinc_possible_for_pair): Ditto.
7729         (determine_use_iv_costs): More dumps.
7730         (iv_ca_get_num_inv_exprs): New function.
7731         (iv_ca_recount_cost): Consider loop invariants in register pressure
7732         cost.
7733         (iv_ca_add_use): New parameter.
7734         (iv_ca_dump): Better dumping.
7735         (iv_ca_extend): New parameter.
7736         (try_add_cand_for): Attempt to get better partial solution.
7737         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
7738         (create_new-ivs): More dumps.
7739         (rewrite_use_compare): Ditto.
7740         (free_loop_data): More cleanup.
7741         (treee_ssa_iv_optimize_finalize): Ditto.
7742
7743 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
7744
7745         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
7746         * config/i386/i386.c (ix86_profile_before_prologue): New.
7747         (override_options): Add special handling for -mfentry.
7748         (ix86_function_regparm): Likewise.
7749         (ix86_function_sseregparm): Likewise.
7750         (ix86_frame_pointer_required): Likewise.
7751         (ix86_expand_prologue): Check for ms_hook_prologue.
7752         (x86_function_profiler): Adjust mcount output.
7753         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
7754         * config/i386/i386.opt (mfentry): New.
7755         * doc/invoke.texi (mfentry): Add documentation.
7756         * doc/tm.texi: Regenerated..
7757         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
7758         * final.c (final_start_function): Replace macro
7759         PROFILE_BEFORE_PROLOGUE by target hook.
7760         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7761         * target.def (profile_before_prologue): New hook.
7762         * targhooks.c (default_profile_before_prologue): New.
7763         * targhooks.h (default_profile_before_prologue): New.
7764
7765 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
7766
7767         PR debug/45105
7768         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
7769
7770         PR debug/45103
7771         * dwarf2out.c (dwarf2out_var_location): Always consider
7772         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
7773
7774 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
7775
7776         PR rtl-optimization/45107
7777         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
7778
7779 2010-07-28  Richard Guenther  <rguenther@suse.de>
7780
7781         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
7782         (set_lattice_value): Do not query an old default value.
7783         (get_value_for_expr): New function.  Properly canonicalize
7784         float values.
7785         (ccp_visit_phi_node): Use it.
7786
7787 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
7788
7789         * config/arm/arm.c (arm_pcs_default): Remove static.
7790         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
7791         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
7792         (arm_pcs_default): Declare.
7793
7794 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
7795
7796         * config/rs6000/rs6000.c (rs6000_override_options):
7797         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
7798         ... to darwin_rs6000_override_options.
7799         (rs6000_return_in_memory): Update preceding comment for darwin
7800         64 bit ABI.  Use TARGET_MACHO inline.
7801         (rs6000_darwin64_struct_check_p): New.
7802         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
7803         (function_arg): Likewise.
7804         (rs6000_arg_partial_bytes): Likewise.
7805         (rs6000_function_value): Likewise.
7806
7807 2010-07-28  Andi Kleen  <ak@linux.intel.com>
7808
7809         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
7810
7811 2010-07-28  Richard Guenther  <rguenther@suse.de>
7812
7813         PR middle-end/44903
7814         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
7815         targets try harder to not generate unaligned accesses.
7816
7817 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
7818
7819         PR rtl-optimization/45101
7820         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
7821         for gcse-las.
7822
7823 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
7824
7825         PR tree-optimization/44885
7826         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
7827         with non-aliased component.
7828
7829 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
7830
7831         * config/darwin-driver.c (SWITCH_TAKES_ARG,
7832         WORD_SWITCH_TAKES_ARG): Remove.
7833         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7834         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
7835         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
7836         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
7837         definitions from gcc.c.
7838         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
7839         defaults.h.
7840         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
7841         Move to defaults.h.
7842         * opts-common.c: Include tm.h.
7843         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
7844         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
7845         Handle more than one argument.  Set canonical_option_num_elements.
7846         (decode_cmdline_options_to_array): Set
7847         canonical_option_num_elements and trailing elements of
7848         canonical_option.
7849         * opts.h (struct cl_decoded_option): Allow four elements in
7850         canonical_option.  Add field canonical_option_num_elements.
7851         * Makefile.in (opts-common.o): Update dependencies.
7852
7853 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
7854
7855         PR middle-end/44790
7856         PR middle-end/44993
7857         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
7858         sure the base has address_mode before adding the offset.
7859
7860 2010-07-27  Xinliang David Li  <davidxl@google.com>
7861
7862         * tree-flow.h (create_mem_ref): Add one new parameter.
7863         * tree-ssa-address.c (create_mem_ref): New parameter.
7864         (addr_to_parts): Ditto.
7865         (move_variant_to_index): New function.
7866         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
7867
7868 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7869
7870         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
7871         4 and 5.
7872         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
7873         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
7874         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
7875         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
7876         CODE_LABELs and NOTEs.
7877         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
7878         * combine.c (try_combine): Likewise.
7879         * ira.c (setup_prohibited_mode_move_regs): Likewise.
7880         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
7881
7882 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
7883
7884         * coretypes.h (struct cl_option_handlers): Declare.
7885         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
7886         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
7887         * langhooks-def.h (lhd_handle_option): Declare.
7888         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
7889         * langhooks.c (lhd_handle_option): New.
7890         * langhooks.h (struct lang_hooks): Update prototype and return
7891         value type of handle_option hook.
7892         * optc-gen.awk: Generate target_flags_explicit definition for the
7893         driver.
7894         * opts-common.c: Include diagnostic.h.
7895         (handle_option): Move from opts.c.  Update prototype and return
7896         value type.  Use handlers structure.
7897         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
7898         handlers structure.
7899         (set_option): Move from opts.c.
7900         * opts.c (common_handle_option): Update prototype and return value
7901         type.  Update calls to handle_option and enable_warning_as_error.
7902         (unknown_option_callback, post_handling_callback,
7903         lang_handle_option, target_handle_option): New.
7904         (handle_option, read_cmdline_option): Move to opts-common.c.
7905         (read_cmdline_options): Update prototype.  Update call to
7906         read_cmdline_option.
7907         (decode_options): Initialize and use handlers structure.
7908         (set_option): Move to opts-common.c.
7909         (enable_warning_as_error): Update prototype.  Update call to
7910         handle_option.
7911         * opts.h (struct cl_option_handler_func, struct
7912         cl_option_handlers): New.
7913         (handle_option, enable_warning_as_error): Update prototypes.
7914         (read_cmdline_option): Declare.
7915         * Makefile.in (opts-common.o): Update dependencies.
7916
7917 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7918
7919         * config/arm/arm.c (params.h): Include.
7920         (arm_override_options): Tune gcse-unrestricted-cost.
7921         * config/arm/t-arm (arm.o): Define dependencies.
7922
7923 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7924
7925         PR target/42495
7926         PR middle-end/42574
7927         * basic-block.h (get_dominated_to_depth): Declare.
7928         * dominance.c (get_dominated_to_depth): New function, use
7929         get_all_dominated_blocks as a base.
7930         (get_all_dominated_blocks): Use get_dominated_to_depth.
7931
7932         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
7933         (hoist_exprs): Remove.
7934         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
7935         (compute_code_hoist_vbeinout): Add debug print outs.
7936         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
7937
7938         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
7939         quadratic behavior.
7940         * params.h (MAX_HOIST_DEPTH): New macro.
7941         * doc/invoke.texi (max-hoist-depth): Document.
7942
7943 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7944
7945         PR rtl-optimization/40956
7946         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
7947         constants.
7948
7949 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7950
7951         PR target/42495
7952         PR middle-end/42574
7953         * config/arm/arm.c (legitimize_pic_address): Use
7954         gen_calculate_pic_address pattern to emit calculation of PIC address.
7955         (will_be_in_index_register): New function.
7956         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
7957         (thumb1_legitimate_address_p): Use it provided !strict_p.
7958         * config/arm/arm.md (calculate_pic_address): New expand and split.
7959
7960 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7961
7962         PR target/42495
7963         PR middle-end/42574
7964         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
7965         * config/arm/arm.md (define_split "J", define_split "K"): Make
7966         IRA/reload friendly.
7967
7968 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7969
7970         * gcse.c (insert_insn_end_basic_block): Update signature, remove
7971         unused checks.
7972         (pre_edge_insert, hoist_code): Update.
7973
7974 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7975
7976         PR target/42495
7977         PR middle-end/42574
7978         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
7979
7980 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7981
7982         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
7983
7984 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7985
7986         PR rtl-optimization/40956
7987         PR target/42495
7988         PR middle-end/42574
7989         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
7990         for hoisting.
7991         (hoist_code): Count occurences in current block too.
7992
7993 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7994
7995         * gcse.c (struct expr:max_distance): New field.
7996         (doing_code_hoisting_p): New static variable.
7997         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
7998         simple expressions, don't change behavior for PRE.  Set max_distance.
7999         (insert_expr_in_table): Set new max_distance field.
8000         (hash_scan_set): Update.
8001         (hoist_expr_reaches_here_p): Stop search after max_distance
8002         instructions.
8003         (find_occr_in_bb): New static function.  Use it in ...
8004         (hoist_code): Calculate sizes of basic block before any changes are
8005         done.  Pass max_distance to hoist_expr_reaches_here_p.
8006         (one_code_hoisting_pass): Set doing_code_hoisting_p.
8007
8008         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
8009         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
8010         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
8011         macros.
8012         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
8013         Document.
8014
8015 2010-07-27  Jeff Law  <law@redhat.com>
8016             Maxim Kuvyrkov  <maxim@codesourcery.com>
8017
8018         * gcse.c (compute_transpout, transpout): Remove, move logic
8019         to prune_expressions.
8020         (compute_pre_data): Move pruning of trapping expressions ...
8021         (prune_expressions): ... here.  New static function.
8022         (compute_code_hoist_data): Use it.
8023         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
8024
8025 2010-07-27  Xinliang David Li  <davidxl@google.com>
8026
8027         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
8028         (rewrite_use_address): Adjust iv update position when needed.
8029
8030 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8031
8032         * dbgcnt.def (hoist_insn): New debug counter.
8033         * gcse.c (hoist_code): Use it.
8034
8035 2010-07-27  Xinliang David Li  <davidxl@google.com>
8036
8037         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
8038         (niter_for_single_dom_exit): Passes additional parameter.
8039         (iv_period): Fix comments.
8040         (may_eliminate_iv): Handles multiple exit loops properly.
8041         (free_tree_niter_desc): New function.
8042         (free_loop_data): Frees up loop iteration descriptors.
8043
8044 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
8045
8046         PR target/44542
8047         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
8048         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
8049         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
8050         (expand_one_var): Don't consider DECL_ALIGN for variables for
8051         which expand_one_stack_var_at has been already called.
8052
8053         PR testsuite/44701
8054         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
8055         constraints on IA-64.
8056
8057 2010-07-27  Jie Zhang  <jie@codesourcery.com>
8058
8059         PR target/44290
8060         Revert:
8061         2010-07-23  Jie Zhang  <jie@codesourcery.com>
8062
8063         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8064         false if ! tree_versionable_function_p.
8065
8066 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
8067
8068         * dwarf2out.c (add_data_member_location_attribute): Use
8069         add_AT_unsigned instead of add_AT_int if offset is non-negative.
8070
8071 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
8072
8073         * postreload.c (try_replace_in_use): New static function.
8074         (reload_combine_recognize_const_pattern): Use it here.  Allow
8075         substituting into a final add insn, and substituting into a memory
8076         reference in an insn that sets the reg.
8077
8078 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8079
8080         * common.opt (o): Add MissingArgError.
8081         * doc/options.texi (MissingArgError): Document.
8082         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
8083         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
8084         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
8085         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
8086         * langhooks.h (struct lang_hooks): Remove missing_argument.
8087         * optc-gen.awk: Handle MissingArgError and output new structure
8088         field initializers.
8089         * opts.c (read_cmdline_option): Use missing_argument_error field
8090         instead of missing_argument langhook.
8091         * opts.h (struct cl_option): Add missing_argument_error field.
8092         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
8093
8094 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
8095
8096         PR target/29090
8097         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
8098         Darwin64 ABI, for zero-sized objects.
8099
8100 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
8101
8102         PR target/35491
8103         PR target/29090
8104
8105         Merge from Apple local 4.2.1.
8106         2005-05-11  Stan Shebs  <shebs@apple.com>
8107         Fix 64-bit varargs for Darwin (Radar 4028089).
8108         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
8109         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
8110         Add argument, add case for 8-byte register half-filled with a float.
8111         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
8112         single-precision floats specially.
8113
8114 2010-07-27  Ira Rosen  <irar@il.ibm.com>
8115
8116         PR tree-optimization/44152
8117         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
8118         complex numbers for further check.
8119         (vect_supported_load_permutation_p): Check nodes with
8120         complex numbers.
8121
8122 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8123
8124         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
8125         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
8126         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
8127         (LANG_HOOKS_INITIALIZER): Add new hooks.
8128         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
8129         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
8130         and complain_wrong_lang_p.  Update init_options prototype.
8131         * c-objc-common.c (c_initialize_diagnostics): First call
8132         c_common_initialize_diagnostics.
8133         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
8134         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
8135         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
8136         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
8137         (hook_uint_void_0): New.
8138         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
8139         (hook_uint_void_0): New.
8140         * opts-common.c (decode_cmdline_option,
8141         decode_cmdline_options_to_array): Also fill in canonical_option field.
8142         * opts.c (complain_wrong_lang): Use langhook to determine whether
8143         to complain instead of special-casing LTO.
8144         (decode_options): Separate lang_mask determination with
8145         option_lang_mask hook from call of init_options hook.
8146         * opts.h (struct cl_decoded_option): Add canonical_option.
8147
8148 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
8149
8150         PR tree-optimization/45083
8151         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
8152
8153 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
8154
8155         * postreload.c (reload_combine_recognize_const_pattern): Move test
8156         for limiting the insn movement to the right scope.
8157
8158         PR rtl-optimization/45051
8159         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
8160         than reg_mentioned_p.
8161
8162 2010-07-26  Richard Henderson  <rth@redhat.com>
8163
8164         PR target/44132
8165         * tree-emutls.c: New file.
8166         * Makefile.in (OBJS-common): Add it.
8167         * tree-pass.h (pass_ipa_lower_emutls): Declare.
8168         * passes.c (init_optimization_passes): Add it.
8169
8170         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
8171         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
8172         * expr.c (emutls_var_address): Delete.
8173         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
8174         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
8175         (emutls_finish): Delete.
8176         * toplev.c (compile_file): Don't call it.
8177         * tree.h (emutls_decl): Delete.
8178         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
8179         (emutls_finish, emutls_finalize_control_var): Delete.
8180         (emutls_object_type): Move to tree-emutls.c.
8181         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
8182         default_emutls_var_fields, get_emutls_object_type,
8183         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
8184         default_emutls_var_init): Likewise.
8185         (get_variable_section): Don't special case emutls.
8186         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
8187         default_elf_select_section, default_unique_section,
8188         default_encode_section_info): Likewise.
8189         * varpool.c (decide_is_variable_needed): Likewise.
8190         * gimple-iterator.c (update_call_edge_frequencies): New
8191         (gsi_insert_on_edge_immediate): Use it.
8192         (gsi_insert_seq_on_edge_immediate): Likewise.
8193         (gsi_commit_one_edge_insert): Likewise.
8194
8195         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
8196         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
8197         (x86_64_elf_unique_section): Likewise.
8198
8199 2010-07-26  Jan Hubicka  <jh@suse.cz>
8200
8201         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
8202         GTY((skip)).
8203
8204 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
8205
8206         * target.def (output_source_filename): New hook.
8207         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
8208         * doc/tm.texi: Regenerate.
8209         * toplev.c (output_file_directive) Remove function.
8210         * toplev.h (output_file_directive) Remove.
8211         * output.h (default_asm_output_source_filename,
8212         output_file_directive): Declare.
8213         * varasm.h (default_asm_output_source_filename,
8214         output_file_directive): New functions.
8215
8216         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
8217         * config/mips/mips-protos.h (mips_output_filename): Remove.
8218         * config/mips/mips.c (mips_output_filename): Make Static.
8219         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
8220
8221 2010-07-26  Richard Guenther  <rguenther@suse.de>
8222
8223         PR tree-optimization/43784
8224         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
8225         if the destination is used by the call.
8226
8227 2010-07-26  Richard Guenther  <rguenther@suse.de>
8228
8229         PR middle-end/45073
8230         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
8231         SSA updating on being in SSA form.
8232
8233 2010-07-26  Richard Guenther  <rguenther@suse.de>
8234
8235         PR middle-end/45056
8236         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
8237
8238 2010-07-26  Richard Guenther  <rguenther@suse.de>
8239
8240         PR tree-optimization/45071
8241         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
8242         adjust op->opcode.
8243
8244 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
8245
8246         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
8247         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
8248         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
8249         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
8250         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
8251         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
8252         save_r31, return_r31, save_interrupt, return_interrupt,
8253         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
8254         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
8255         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
8256         new ABI requirements.
8257         (save_r6_r9, L_callt_save_r6_r9): Remove.
8258         * config/v850/predicates.md (even_reg_operand, disp23_operand,
8259         const_float_1_operand const_float_0_operand): New Predicates.
8260         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
8261         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
8262         * config/v850/t-v850: Update multilibs for new target variants.
8263         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
8264         * config/v850/t-v850e: Likewise.
8265         * config/v850/v850.c (v850_issue_rate): New.
8266         (v850_strict_argument_naming): New.
8267         (function_arg): Modify to generate a different ABI.
8268         (print_operand): Update case 'z' to support float modes.
8269         (output_move_single): Modify to generate appropriate and better
8270         assembly.
8271         (v850_float_z_comparison_operator, v850_select_cc_mode,
8272         v850_float_nz_comparison_operator,  v850_gen_float_compare,
8273         v850_gen_compare): New functions to support comparison of float values.
8274         (ep_memory_offset): Add support for V850E2 targets.
8275         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
8276         (INTERRUPT_REGPARM_NUM): Remove.
8277         (compute_register_save_size): Add extra case to save/restore long call.
8278         (use_prolog_function): New function to support prologue.
8279         (expand_prologue): Add support for V850E2 targets and modified
8280         as per the current ABI requirements.
8281         (expand_epilogue): Likewise.
8282         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
8283         (construct_save_jarl): Likewise.
8284         (construct_dispose_instruction): Update as per the current ABI
8285         requirements.
8286         (construct_prepare_instruction): Likewise.
8287         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
8288         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
8289         (CPP_SPEC): Updated to support v850e2 targets.
8290         (STRICT_ALIGNMENT): Modified.
8291         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
8292         (FIXED_REGISTERS): Likewise.
8293         (CALL_USED_REGISTERS): Likewise.
8294         (CONDITIONAL_REGISTER_USAGE): Updated.
8295         (HARD_REGNO_MODE_OK): Updated.
8296         (reg_class): Updated to add even registers.
8297         (REG_CLASS_NAMES): Likewise.
8298         (REG_CLASS_CONTENTS): Likewise.
8299         (REGNO_REG_CLASS): Updated for CC registers.
8300         (REG_CLASS_FROM_LETTER): Added support for even registers.
8301         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
8302         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
8303         ARG_POINTER_REGNUM): Updated.
8304         (FUNCTION_ARG_ADVANCE): Define.
8305         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
8306         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
8307         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
8308         (GO_IF_LEGITIMATE_ADDRESS): Updated.
8309         (SELECT_CC_MODE): Define.
8310         (REGISTER_NAMES): Updated to add psw and fcc registers.
8311         (ADDITIONAL_REGISTER_NAMES): Updated.
8312         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
8313         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
8314         * config/v850/v850.md (define_constants): Define new constants.
8315         (type): Update store,bit1,macc,div,fpu and single attributes.
8316         (cpu): New attribute.
8317         (cc): Add set_z attribute.
8318         (unsign23byte_load, sign23byte_load, unsign23hword_load,
8319         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
8320         23word_store): New instructions for 23-bit displacement load and store.
8321         (movqi_internal, movhi_internal): Update the attributes.
8322         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
8323         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
8324         the attributes.
8325         (v850_tst1): Modified using CC_REGNUM.
8326         (tstsi): Remove.
8327         (cmpsi): Modified as define_expand from define_insn.
8328         (cmpsi_insn, cmpsf, cmpdf): New instructions.
8329         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
8330         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
8331         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
8332         one_cmplsi2): Clobber the CC_REGNUM register.
8333         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
8334         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
8335         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
8336         (setf_insn, set_z_insn, set_nz_insn): New instructions for
8337         v850e2v3 target.
8338         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
8339         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
8340         targets.
8341         (sasf_1, sasf_2): Remove.
8342         (sasf): New instruction.
8343         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
8344         targets. CC_REGNUM register is clobbered and attributes are
8345         updated.
8346         (branch_z_normal, branch_z_invert, branch_nz_normal,
8347         branch_nz_invert): New branch related instructions.
8348         (jump): Updated the attributes.
8349         (switch): Update to support new targets. CC_REGNUM register is
8350         clobbered and attributes are updated.
8351         (call_internal_short, call_internal_long, call_value_internal_short,
8352         call_value_internal_long): Updated the attributes.
8353         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
8354         clobbered and attributes are updated.
8355         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
8356         Update to support new targets. CC_REGNUM register is clobbered.
8357         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
8358         instructions.
8359         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
8360         are updated.
8361         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
8362         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
8363         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
8364         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
8365         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
8366         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
8367         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
8368         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
8369         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
8370         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
8371         point instructions defined for V850e2v3 target.
8372         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
8373         Add support for V850E2 targets and CC_REGNUM register is clobbered.
8374         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
8375         support for new targets.
8376         * config/v850/v850-modes.def: New file.
8377         * config/v850/v850.opt(mstrict-align): Remove.
8378         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
8379         mv850e2v3): New command line options for V850.
8380         * config.gcc: Update the newly added files.
8381         * doc/invoke.texi: Update the newly added command line options for
8382         V850 target.
8383
8384 2010-07-26  Richard Guenther  <rguenther@suse.de>
8385
8386         PR tree-optimization/45052
8387         * ipa-pure-const.c (check_stmt): Check volatileness.
8388
8389 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8390
8391         PR target/44707
8392         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
8393         * config/sparc/sparc.c: Include reload.h.
8394         (legitimize_tls_address): Rename into...
8395         (sparc_legitimize_tls_address): ...this.
8396         (legitimize_pic_address): Rename into...
8397         (sparc_legitimize_pic_address): ...this.
8398         (sparc_expand_move): Adjust to above renaming.
8399         (sparc_tls_referenced_p): Likewise.
8400         (sparc_legitimize_tls_address): Likewise.
8401         (sparc_legitimize_pic_address): Likewise.
8402         (sparc_legitimize_address): Likewise.
8403         (sparc_output_mi_thunk): Likewise.
8404         (sparc_legitimize_reload_address): New global function.  Recognize
8405         (lo_sum (high ...) ...) patterns generated by earlier passes.
8406         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
8407
8408 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8409
8410         PR target/44484
8411         * config/sparc/predicates.md (memory_reg_operand): Delete.
8412         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
8413         (*sync_compare_and_swap): Encode the address form in the pattern.
8414         (*sync_compare_and_swapdi_v8plus): Likewise.
8415
8416 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
8417
8418         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
8419         Streamline paragraph on compatibility with the system compiler.
8420
8421 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
8422
8423         PR middle-end/45035
8424         * alias.c (true_dependence_1): Fix thinko in merge of old
8425         true_dependence and canon_true_dependence.
8426
8427 2010-07-23  Jan Hubicka  <jh@suse.cz>
8428
8429         * lto-streamer-out.c (write_symbol): Fix visibilities of external
8430         references.
8431
8432 2010-07-23  Le-Chun Wu  <lcwu@google.com>
8433
8434         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
8435         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
8436         and an unnecessary assignment.
8437         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
8438         self-assign warning.
8439         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
8440         unnecessary self-init.
8441
8442 2010-07-23  Richard Guenther  <rguenther@suse.de>
8443
8444         PR lto/43071
8445         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
8446         for -flto and -fwhopr.
8447
8448 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
8449
8450         PR target/41943
8451         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
8452         (stmp-int-hdrs): Prefix/postfix headers by include_next.
8453         * config.gcc (user_headers_inc_next_pre): New.
8454         (user_headers_inc_next_post): Likewise.
8455         (*-w64-mingw*): Use for float.h post-fixing, and for
8456         stddef.h/stdarg.h pre-fixing by include_next.
8457         * configure.ac (user_headers_inc_next_post): New.
8458         (user_headers_inc_next_pre): New.
8459         * configure: Regenerated.
8460
8461 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8462
8463         * configure.ac: Don't disable TLS on Solaris 8/9 by default
8464         Set tga_func for Solaris 2/x86 resp. SPARC.
8465         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
8466         (LIB_THREAD_LDFLAGS_SPEC): Define.
8467         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
8468         * configure: Regenerate.
8469         * config.in: Regenerate.
8470         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
8471         -pthread, -threads, LIB_TLS_SPEC with -pthread.
8472         * doc/install.texi (Specific, *-*-solaris2*): Document use of
8473         alternate thread libraries on Solaris 8.
8474         Document TLS patch requirements.
8475         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
8476         Document tls.
8477
8478         PR target/18788
8479         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
8480         -shared.
8481
8482 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
8483
8484         * tree.h (struct tree_base): Add nameless_flag bitfield.
8485         (TYPE_NAMELESS, DECL_NAMELESS): Define.
8486         * omp-low.c (create_omp_child_function, scan_omp_parallel,
8487         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
8488         DECL_ARTIFICIAL where needed.
8489         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
8490         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
8491         has DECL_NAMELESS set.
8492
8493 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8494
8495         PR tree-optimization/44915
8496         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
8497         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
8498         (analyze_function): Likewise.
8499
8500 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8501
8502         PR tree-optimization/44914
8503         * tree-sra.c (sra_modify_function_body): Return true if CFG was
8504         changed, add purging dead eh edges.
8505         (ipa_sra_modify_function_body): Return true if CFG was changed,
8506         simplify purging dead eh edges.
8507         (modify_function): Return true if CFG was changed.
8508         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
8509         was changed.
8510         (ipa_early_sra): Likewise.
8511
8512 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8513
8514         PR target/44290
8515         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
8516         if "naked".
8517         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8518         false if ! tree_versionable_function_p.
8519
8520 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
8521
8522         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
8523         * ipa-pure-const.c (special_builtlin_state): Remove
8524         BUILT_IN_ARGS_INFO case.
8525         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8526         * builtins.c (expand_builtin): Likewise.
8527         (expand_builtin_args_info): Remove.
8528         * doc/tm.texi (__builtin_args_info): Remove.
8529         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
8530         * doc/tm.text.in: Likewise.
8531
8532 2010-07-23  Richard Guenther  <rguenther@suse.de>
8533
8534         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
8535         (lto_symtab_merge_decls_2): Likewise.
8536         * tree-ssa.c (useless_type_conversion_p): Likewise.
8537         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8538         * gimple.c (gtc_visited2, gtc_ob2): Remove.
8539         (struct type_pair_d): Make same_p an array indexed by mode.
8540         Update comment.
8541         (lookup_type_pair): Update initialization.
8542         (struct sccs): Adjust same_p type.
8543         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
8544         Adjust.
8545         (print_gimple_types_stats): Likewise.
8546         * gimple.h (enum gtc_mode): New.
8547         (gimple_types_compatible_p): Adjust prototype.
8548
8549 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
8550
8551         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
8552         again after processing insn.
8553
8554 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8555
8556         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
8557         proper words when !tree_versionable_function_p.
8558
8559 2010-07-23  Richard Guenther  <rguenther@suse.de>
8560
8561         PR tree-optimization/45037
8562         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
8563
8564 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8565
8566         * doc/extend.texi: Remove IP2K from the description of naked attribute.
8567         Add MCORE instead.
8568
8569 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8570
8571         PR lto/44992
8572         * lto-opts.c (lto_write_options): Add NULL file_data argument to
8573         lto_get_section_name.
8574         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
8575         * lto-streamer-out.c (produce_asm): Likewise.
8576         (copy_function): Likewise.
8577         (produce_symtab): Likewise.
8578         (produce_asm_for_decls): Likewise.
8579         * lto-streamer.c (lto_get_section_name): Add file_data argument.
8580         Rewrite to add random postfix to LTO sections.
8581         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
8582         (lto_get_section_name): Add file_data argument to prototype.
8583
8584 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8585
8586         * lto-section-in.c (lto_section_name): Synchronize names
8587         with lto_get_section_name.
8588
8589 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8590
8591         * lto-opts.c (lto_read_file_options): Check for missing section.
8592
8593 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8594
8595         * ira.c (check_allocation): Correctly handle the case where an allocno
8596         with two objects was allocated to a single reg.
8597
8598 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
8599
8600         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
8601         (is_widening_mult_p): Likewise.
8602         (convert_to_widen): Use them.
8603         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
8604         well as integer ones.
8605
8606 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
8607
8608         * alias.c (true_dependence_1): New function, merged version of
8609         true_dependence and canon_true_dependence.
8610         (true_dependence): Simplify.
8611         (canon_true_dependence): Simplify.
8612
8613 2010-07-22  Richard Henderson  <rth@redhat.com>
8614
8615         PR target/45027
8616         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
8617         of V4SFmode for the SSE saves; increase stack alignment if needed.
8618         (ix86_gimplify_va_arg): Don't increase stack alignment here.
8619
8620 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
8621
8622         PR bootstrap/45028
8623         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
8624         call cprop_find_used_regs again via note_uses.
8625
8626 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
8627
8628         * alias.c (get_alias_set): Fix formatting issues.
8629
8630 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
8631
8632         PR middle-end/44878
8633         * stmt.c (expand_value_return):  Call promote_function_mode with
8634         a for_return argument of 2 when returning by reference.
8635
8636 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
8637
8638         PR debug/45024
8639         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
8640         unit DIE if we can find the scope DIE.
8641
8642 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8643
8644         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
8645         changed.  Initialize OBJECT_SUBWORD.
8646         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
8647         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
8648         all callers changed.
8649         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
8650         (finish_allocno): Likewise.
8651         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
8652         (remove_low_level_allocnos): Likewise.
8653         (update_bad_spill_attribute): Likewise.
8654         (setup_min_max_allocno_live_range_point): Likewise.
8655         (sort_conflict_id_map): Likewise.
8656         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
8657         (ior_hard_reg_conflicts): New function.
8658         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
8659         (compress_conflict_vecs): Iterate over objects, not allocnos.
8660         (ira_add_live_range_to_object): New function.
8661         (object_range_compare_func): Renamed from allocno_range_compare_func.
8662         All callers changed.
8663         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
8664         subobjects, widen the min/max range of the lowest-order object to
8665         potentially include all other such low-order objects.
8666         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
8667         (check_allocation): Likewise.  Use more fine-grained tests for register
8668         conflicts.
8669         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
8670         allocno subobjects.
8671         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
8672         choices about which bits to set in each set.  Don't use
8673         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
8674         using the multiple sets we computed.
8675         (push_allocno_to_stack): Iterate over allocno subobjects.
8676         (all_conflicting_hard_regs_coalesced): New static function.
8677         (setup_allocno_available_regs_num): Use it.
8678         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
8679         subobjects.
8680         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
8681         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8682         by ALLOCNO_NUM_OBJECTS.
8683         (calculate_spill_cost): Likewise.
8684         (color_pass): Express if statement in a more normal way.
8685         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
8686         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
8687         (setup_slot_coalesced_allocno_live_ranges): Likewise.
8688         (allocno_reload_assign): Likewise.
8689         (ira_reassign_pseudos): Likewise.
8690         (fast_allocation): Likewise.
8691         * ira-conflicts.c (build_conflict_bit_table): Likewise.
8692         (print_allocno_conflicts): Likewise.
8693         (ira_build_conflicts): Likewise.
8694         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
8695         callers changed.  Test subword 0 of each allocno for conflicts.
8696         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
8697         callers changed.  Iterate over allocno subobjects.
8698         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
8699         * ira-int.h (struct ira_allocno): New member: num_objects.
8700         Rename object to objects and change it into an array.
8701         (ALLOCNO_OBJECT): Add new argument N.
8702         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
8703         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
8704         (ior_hard_reg_conflicts): Declare.
8705         (ira_add_live_range_to_object): Declare.
8706         (ira_allocno_object_iterator): New.
8707         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
8708         (FOR_EACH_ALLOCNO_OBJECT): New macro.
8709         * ira-lives.c (objects_live): Renamed from allocnos_live; all
8710         uses changed.
8711         (allocnos_processed): New sparseset.
8712         (make_object_born): Renamed from make_allocno_born; take an
8713         ira_object_t argument.  All callers changed.
8714         (make_object_dead): Renamed from make_allocno_dead; take an
8715         ira_object_t argument.  All callers changed.
8716         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
8717         All callers changed.
8718         (mark_pseudo_regno_live): Iterate over allocno subobjects.
8719         (mark_pseudo_regno_dead): Likewise.
8720         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
8721         functions.
8722         (mark_ref_live): Detect subword accesses and call
8723         mark_pseudo_regno_subword_live as appropriate.
8724         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
8725         (process_bb_nodes_live): Deal with object-related updates first; set
8726         and test bits in allocnos_processed to avoid computing allocno
8727         statistics more than once.
8728         (create_start_finish_chains): Iterate over objects, not allocnos.
8729         (print_object_live_ranges): New function.
8730         (print_allocno_live_ranges): Use it.
8731         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
8732         and objects_live.
8733
8734 2010-07-22  Richard Guenther  <rguenther@suse.de>
8735
8736         PR lto/42451
8737         * gimple.c (gtc_next_dfs_num): New global.
8738         (struct sccs): Make value a union, add integer same_p member.
8739         (gtc_visit): New function.
8740         (gimple_types_compatible_p_1): New function, split out from ...
8741         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
8742         (iterative_hash_gimple_type): Adjust for sccs change.
8743
8744 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8745
8746         PR tree-optimization/44891
8747         * tree-sra.c: Include gimple-pretty-print.h.
8748         (replace_uses_with_default_def_ssa_name): Renamed to
8749         get_repl_default_def_ssa_name, return the new SSA name instead of
8750         replacing the old one.
8751         (sra_modify_assign): Dump a message when removing a load, if the LHS
8752         is an SSA_NAME, do not do any propagation, just set the RHS to a
8753         default definition SSA NAME, type convert if necessary.
8754         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
8755
8756 2010-07-22  Richard Guenther  <rguenther@suse.de>
8757
8758         PR tree-optimization/45017
8759         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
8760         TYPE_PRECISION of integral types in addition to size.
8761
8762 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
8763
8764         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
8765         when no C library is specified.
8766
8767 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8768
8769         * ipa-prop.h (struct ipa_node_params): Updated comment.
8770         (struct ipa_edge_args): Likewise.
8771         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
8772
8773 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8774
8775         * cgraphunit.c (verify_edge_count_and_frequency): New function.
8776         (verify_cgraph_node): Verify frequencies of indirect edges.
8777         * tree-inline.c (tree_function_versioning): Update frequencies of
8778         indirect edges.
8779
8780 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8781
8782         PR target/43698
8783         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
8784         Set *arm_rev to be predicable.
8785
8786 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
8787
8788         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
8789         (LINK_COMMAND_SPEC_A): New.
8790         (DSYMUTIL): New.
8791         (DSYMUTIL_SPEC): New.
8792         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
8793         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
8794
8795 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
8796
8797         * calls.c (load_register_parameters): Move check for zero
8798         sized items so that only the call to
8799         mem_overlaps_already_clobbered_arg_p () is protected.
8800
8801 2010-07-22  Jan Hubicka  <jh@suse.cz>
8802
8803         * ipa-pure-const.c (varying_state): Break out from ...
8804         (get_function_state): ... here; always return varying_state
8805         when state would be NULL otherwise.
8806         (remove_node_data): Do not free varying state.
8807
8808 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8809
8810         PR bootstrap/44970
8811         PR middle-end/45009
8812         * postreload.c: Include "target.h".
8813         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
8814         into account.
8815         (fixup_debug_insns): Don't copy the rtx.
8816         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
8817         Don't copy when replacing.  Call fixup_debug_insns in the case where
8818         we merged one add with another.
8819         (reload_combine_recognize_pattern): Fail if there aren't any uses.
8820         Try harder to determine whether we're picking a valid index register.
8821         Don't set store_ruid for an insn we're going to scan in the
8822         next iteration.
8823         (reload_combine): Remove unused code.
8824         (reload_combine_note_use): When updating use information for
8825         an old insn, ignore a use that occurs after store_ruid.
8826         * Makefile.in (postreload.o): Update dependencies.
8827
8828         * function.c (record_hard_reg_sets): Restrict the previous change
8829         to cases where the incoming nominal mode is the same as the
8830         incoming promoted mode and everything happens in MODE_INT.
8831
8832 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
8833
8834         PR debug/45015
8835         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
8836         ASM_OPERANDS_OUTPUT_IDX.
8837         (adjust_insn): For inline asm with multiple sets ensure first
8838         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
8839         the insn.
8840
8841 2010-07-21  Richard Henderson  <rth@redhat.com>
8842
8843         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
8844         comparison for avoiding xmm register saves.  Emit the xmm register
8845         saves explicitly.
8846         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
8847         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
8848         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
8849         Remove patterns and the associated splitters.
8850
8851 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
8852
8853         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
8854         and imagine parts of a complex, so that they can have the same
8855         base and fall into the same group.
8856
8857 2010-07-21  Richard Guenther  <rguenther@suse.de>
8858
8859         PR lto/45018
8860         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
8861         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
8862         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
8863
8864 2010-07-21  Martin Jambor  <mjambor@suse.cz>
8865
8866         PR tree-optimization/44900
8867         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
8868         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
8869
8870 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
8871
8872         PR middle-end/44738
8873         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
8874
8875 2010-07-21  Richard Guenther  <rguenther@suse.de>
8876
8877         PR middle-end/45013
8878         * tree-ssa.c (useless_type_conversion_p): Dispatch to
8879         gimple_types_compatible_p only when in lto.
8880         * gimple.c (gimple_types_compatible_p): Use canonical types
8881         to speed up comparison.
8882
8883 2010-07-21  Richard Guenther  <rguenther@suse.de>
8884
8885         * tree-flow.h (referenced_var): Move define ...
8886         * tree-flow-inline.h (referenced_var): ... here as an inline
8887         function.  Assert here ...
8888         * tree-dfa.c (referenced_var_lookup): ... instead of here.
8889         * tree-ssa.c (maybe_optimize_var): Check if the variable
8890         is in referenced vars.
8891         (execute_update_addresses_taken): Remove old broken check.
8892         * gimple-pretty-print.c (pp_points_to_solution): Use
8893         referenced_var_lookup.
8894         * tree-into-ssa.c (dump_decl_set): Likewise.
8895
8896 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
8897
8898         PR debug/45003
8899         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
8900         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
8901         ZERO_EXTEND here.
8902
8903 2010-07-20  Richard Henderson  <rth@redhat.com>
8904
8905         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
8906
8907 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
8908
8909         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
8910         computing the sum of the stack pointer and a large constant.
8911         * config/arm/constraints.md (M): Remove superfluous parentheses.
8912         (Pc): New constraint.
8913
8914 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
8915
8916         PR debug/45006
8917         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
8918         operand's type if exp is tcc_unary class tree.
8919
8920 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
8921
8922         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
8923         Reverse sense of if_then_else condition.
8924
8925 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
8926
8927         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
8928         * config/rs6000/rs6000.c (rs6000_override_options): Set
8929         rs6000_block_move_inline_limit appropriately.
8930         (expand_block_move): Use rs6000_block_move_inline_limit.
8931         * doc/invoke.texi (mblock-move-inline-limit): Document.
8932
8933 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
8934
8935         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
8936         FROM and TO.  All callers changed.  Don't look for tracked uses,
8937         just scan the RTL for DEBUG_INSNs and substitute.
8938         (reload_combine_recognize_pattern): Call fixup_debug_insns.
8939         (reload_combine): Ignore DEBUG_INSNs.
8940
8941 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
8942
8943         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
8944         depth to 8 from 5.
8945
8946         PR debug/45003
8947         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
8948         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
8949         instead of the result's type.
8950
8951 2010-07-20  Richard Guenther  <rguenther@suse.de>
8952
8953         PR tree-optimization/44977
8954         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
8955         SSA form.
8956
8957 2010-07-20  Richard Guenther  <rguenther@suse.de>
8958
8959         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
8960         (lto_symtab_merge_decls_2): Likewise.
8961         * gimple.h (gimple_types_compatible_p): Declare.
8962         * gimple.c (gimple_queue_type_fixup): Remove.
8963         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
8964         (gimple_compatible_complete_and_incomplete_type_p): New function.
8965         (gimple_types_compatible_p): Adjust.
8966         (gimple_register_type): Remove type fixup code.
8967         (print_gimple_types_stats): Adjust.
8968         (free_gimple_type_tables): Likewise.
8969         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
8970         * tree-ssa.c (useless_type_conversion_p): Likewise.
8971
8972 2010-07-20  Richard Guenther  <rguenther@suse.de>
8973
8974         PR middle-end/44971
8975         PR middle-end/44988
8976         * tree-ssa.c (maybe_optimize_var): New function split out from ...
8977         (execute_update_addresses_taken): ... here.
8978         (non_rewritable_mem_ref_base): Likewise.
8979         (execute_update_addresses_taken): Do not iterate over all referenced
8980         vars but just all local decls and parms.
8981         Properly check call and asm arguments and rewrite call arguments.
8982
8983 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
8984
8985         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
8986         to top level.
8987         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
8988         definitions ...
8989         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
8990         New macro.
8991         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
8992
8993 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8994
8995         * gengtype.c (start_root_entry): New function, split out from
8996         write_root.  Check whether V is null and raise an error if so.
8997         (write_field_root): Check for V being null.  Don't raise an error here;
8998         set V to null instead.
8999         (write_root): Update comment above function.  Use start_root_entry.
9000
9001 2010-07-19  Xinliang David Li  <davidxl@google.com>
9002
9003         PR testsuite/44932
9004         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
9005         def edges.
9006         (find_uninit_use): Add dump.
9007         (is_use_properly_guarded): Ditto.
9008         (warn_uninitialized_phi): Ditto.
9009         (execute_late_warn_uninitialized): Ditto.
9010
9011 2010-07-19  Richard Guenther  <rguenther@suse.de>
9012
9013         PR middle-end/44941
9014         * expr.c (emit_block_move_hints): Move zero size check first.
9015         Move asserts to more useful places.
9016         * calls.c (load_register_parameters): Check for zero size.
9017
9018 2010-07-19  Richard Henderson  <rth@redhat.com>
9019
9020         * tree-optimize.c (execute_all_early_local_passes): New.  Change
9021         cgraph_state here ...
9022         (execute_early_local_optimizations): ... not here.  Remove.
9023         (pass_early_local_passes, pass_all_early_optimizations): Update.
9024
9025 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
9026
9027         * postreload.c (reload_combine_closest_single_use): Ignore the
9028         number of uses for DEBUG_INSNs.
9029         (fixup_debug_insns): New static function.
9030         (reload_combine_recognize_const_pattern): Use it.  Don't let the
9031         main loop be affected by DEBUG_INSNs.
9032         Really disallow moving adds past a jump insn.
9033         (reload_combine_recognize_pattern): Don't update use_ruid here.
9034         (reload_combine_note_use): Do it here.
9035         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
9036
9037 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
9038
9039         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
9040         of a loop.
9041         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
9042
9043 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
9044
9045         * config/i386/darwin.h: Define darwin_emit_branch_islands.
9046         (TARGET_MACHO_BRANCH_ISLANDS): New.
9047         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
9048         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
9049         default value.
9050         * config/i386/i386.c (output_pic_addr_const): Do not emit
9051         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
9052         (x86_output_mi_thunk): Adjust symbol creation.
9053         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
9054         Remove out of date comment.
9055         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
9056         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9057         (DARWIN_GENERATE_ISLANDS): Ditto.
9058         (output_call):  Do not emit branch islands unless
9059         darwin_emit_branch_islands is set.
9060         * config/darwin.c: Declare darwin_emit_branch_islands.
9061         (machopic_indirect_data_reference): Do not emit unless
9062         darwin_emit_branch_islands is set.
9063         (darwin_override_options): Set darwin_emit_branch_islands
9064         where it is needed.
9065         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9066
9067 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9068
9069         * doc/sourcebuild.texi (Effective-Target Keywords): Document
9070         sse_runtime, sse2_runtime.
9071
9072 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
9073
9074         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
9075         low half of a single-register SCmode return value before ORing
9076         it with the high half.
9077         * config/mips/mips16.S (MERGE_GPRf): Likewise.
9078
9079 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9080
9081         PR target/44805
9082         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
9083         on all targets.
9084
9085 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
9086
9087         PR target/42235
9088         * postreload.c (reload_cse_move2add): Return bool, true if anything.
9089         changed.  All callers changed.
9090         (move2add_use_add2_insn): Likewise.
9091         (move2add_use_add3_insn): Likewise.
9092         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
9093         reload_combine.
9094         (RELOAD_COMBINE_MAX_USES): Bump to 16.
9095         (last_jump_ruid): New static variable.
9096         (struct reg_use): New members CONTAINING_MEM and RUID.
9097         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
9098         (reload_combine_split_one_ruid, reload_combine_split_ruids,
9099         reload_combine_purge_insn_uses, reload_combine_closest_single_use
9100         reload_combine_purge_reg_uses_after_ruid,
9101         reload_combine_recognize_const_pattern): New static functions.
9102         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
9103         is true for our reg and that we have available index regs.
9104         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
9105         callers changed.  Use them to initialize fields in struct reg_use.
9106         (reload_combine): Initialize last_jump_ruid.  Be careful when to
9107         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
9108         Call reload_combine_recognize_const_pattern.
9109         (reload_combine_note_store): Update REAL_STORE_RUID field.
9110
9111 2010-07-16  Jason Merrill  <jason@redhat.com>
9112
9113         * Makefile.in (opts-common.o): Depend on options.h.
9114
9115 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
9116
9117         * tree.c (build_common_builtin_nodes): Use build_function_type_list
9118         instead of build_function_type.
9119         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
9120         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9121
9122 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
9123
9124         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
9125         do all the work.
9126         (rs6000_emit_int_cmove): Use function pointers for insn generation.
9127         Don't force values into registers unnecessarily.
9128         (output_isel): Assert that we're not given conditions we can't handle.
9129         Delete corresponding code.
9130         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
9131         scc_comparison_operator constraint.  Permit 0 for the consequent
9132         operand.  Permit any GPR for the alternative operand.
9133         (isel_unsigned_<mode>): Likewise.
9134
9135 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
9136
9137         PR target/44942
9138         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
9139         argument to const_tree.
9140         * config/i386/i386.c (function_arg_advance): If padding needs to be
9141         inserted before argument, increment cum->words by number of padding
9142         words as well.
9143         (contains_aligned_value_p): Change argument to const_tree.
9144         (ix86_function_arg_boundary): Change second argument to const_tree.
9145
9146 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
9147
9148         PR target/42235
9149         * function.c (record_hard_reg_sets): New static function.
9150         (assign_parm_setup_reg): If an optab for extending exists and the
9151         generated code clobbbers no hard regs, emit the insn directly and
9152         create a REG_EQUIV note.
9153
9154 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9155
9156         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
9157         TREE_CHAIN.
9158         * c-typeck.c (push_init_level): Likewise.
9159         (process_init_element): Likewise.
9160
9161 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
9162
9163         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
9164         (integer_three_node): Add.
9165         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
9166         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
9167         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
9168         of call build_int_cst.
9169         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
9170         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
9171         (find_interesting_uses_address): Ditto.
9172         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
9173         * tree-eh.c (lower_eh_constructs_2): Ditto.
9174         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
9175         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
9176         * expmed.c (expand_divmod): Ditto.
9177         * tree-mudflap.c (mx_register_decls): Ditto.
9178         * varasm.c (array_size_for_constructor): Ditto.
9179         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
9180         * c-parser.c (c_parser_postfix_expression): Ditto.
9181
9182 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
9183
9184         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
9185         New static variables.
9186         (reload_combine_recognize_pattern): New static function, broken out
9187         of reload_combine.
9188         (reload_combine): Use it.  Only initialize first_index_reg and
9189         last_index_reg once.
9190
9191 2010-07-15  Richard Henderson  <rth@redhat.com>
9192
9193         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
9194         when done.
9195
9196 2010-07-15  Jan Hubicka  <jh@suse.cz>
9197
9198         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
9199         comdats for broken gold.
9200         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
9201
9202 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9203
9204         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
9205
9206 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9207
9208         * tree.h (DECL_CHAIN): Define.
9209         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
9210         * c-decl.c: Likewise.
9211         * c-parser.c: Likewise.
9212         * c-typeck.c: Likewise.
9213         * cfgexpand.c: Likewise.
9214         * cgraph.c: Likewise.
9215         * cgraphunit.c: Likewise.
9216         * combine.c: Likewise.
9217         * config/alpha/alpha.c: Likewise.
9218         * config/arm/arm.c: Likewise.
9219         * config/frv/frv.c: Likewise.
9220         * config/i386/i386.c: Likewise.
9221         * config/i386/winnt-cxx.c: Likewise.
9222         * config/ia64/ia64.c: Likewise.
9223         * config/iq2000/iq2000.c: Likewise.
9224         * config/mep/mep.c: Likewise.
9225         * config/mips/mips.c: Likewise.
9226         * config/pa/som.h: Likewise.
9227         * config/rs6000/rs6000.c: Likewise.
9228         * config/s390/s390.c: Likewise.
9229         * config/sh/sh.c: Likewise.
9230         * config/sh/symbian-cxx.c: Likewise.
9231         * config/sparc/sparc.c: Likewise.
9232         * config/spu/spu.c: Likewise.
9233         * config/stormy16/stormy16.c: Likewise.
9234         * config/vxworks.c: Likewise.
9235         * config/xtensa/xtensa.c: Likewise.
9236         * coverage.c: Likewise.
9237         * dbxout.c: Likewise.
9238         * dwarf2out.c: Likewise.
9239         * emit-rtl.c: Likewise.
9240         * expr.c: Likewise.
9241         * function.c: Likewise.
9242         * gimple-low.c: Likewise.
9243         * gimple-pretty-print.c: Likewise.
9244         * gimplify.c: Likewise.
9245         * integrate.c: Likewise.
9246         * ipa-inline.c: Likewise.
9247         * ipa-prop.c: Likewise.
9248         * ipa-split.c: Likewise.
9249         * ipa-struct-reorg.c: Likewise.
9250         * ipa-type-escape.c: Likewise.
9251         * langhooks.c: Likewise.
9252         * lto-cgraph.c: Likewise.
9253         * omp-low.c: Likewise.
9254         * stor-layout.c: Likewise.
9255         * tree-cfg.c: Likewise.
9256         * tree-complex.c: Likewise.
9257         * tree-dfa.c: Likewise.
9258         * tree-dump.c: Likewise.
9259         * tree-inline.c: Likewise.
9260         * tree-mudflap.c: Likewise.
9261         * tree-nested.c: Likewise.
9262         * tree-object-size.c: Likewise.
9263         * tree-pretty-print.c: Likewise.
9264         * tree-sra.c: Likewise.
9265         * tree-ssa-live.c: Likewise.
9266         * tree-ssa-loop-niter.c: Likewise.
9267         * tree-ssa-math-opts.c: Likewise.
9268         * tree-ssa-reassoc.c: Likewise.
9269         * tree-ssa-sccvn.c: Likewise.
9270         * tree-ssa-structalias.c: Likewise.
9271         * tree-tailcall.c: Likewise.
9272         * tree-vrp.c: Likewise.
9273         * tree.c: Likewise.
9274         * var-tracking.c: Likewise.
9275         * varasm.c: Likewise.
9276
9277 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9278
9279         PR target/44877
9280         * config/spu/spu.c (spu_expand_builtin_1): Allow references
9281         (as well as pointers) as argument to mask_for_load builtins.
9282
9283 2010-07-15  Richard Guenther  <rguenther@suse.de>
9284
9285         PR tree-optimization/44946
9286         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
9287         with accessing only padding properly.
9288
9289 2010-07-15  Jan Hubicka  <jh@suse.cz>
9290
9291         * ipa.c (function_and_variable_visibility): Variables marked as used
9292         should not be localized.
9293
9294 2010-07-15  Jan Hubicka  <jh@suse.cz>
9295
9296         * cgraph.c: Include lto-streamer.h
9297         (change_decl_assembler_name): Work when assembler name hash is at place.
9298         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
9299         be sure to rename it to avoid name clash.
9300         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
9301         Localize hidden symbols only when locally defined.
9302
9303 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
9304
9305         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
9306
9307 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
9308             Kevin F. Quinn  <kevquinn@gentoo.org>
9309
9310         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
9311         * common.opt: Add -Wtrampolines.
9312         * doc/invoke.texi: Add -Wtrampolines.
9313
9314 2010-07-15  Jie Zhang  <jie@codesourcery.com>
9315
9316         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
9317         cortex_a8_issue_ls.
9318
9319 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
9320
9321         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
9322         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
9323
9324 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9325
9326         * config/spu/spu.c (reg_names): Remove prototype.
9327         (call_used_regs): Likewise.
9328
9329 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
9330
9331         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
9332         "unused" with attribute "used".
9333         (__JCR_END__): Likewise.
9334         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
9335         "used" attribute.
9336         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
9337
9338 2010-07-14  Richard Guenther  <rguenther@suse.de>
9339
9340         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
9341         (maybe_fixup_decls): Likewise.
9342         (input_gimple_stmt): Do not fixup anything.
9343         * lto-streamer-out.c (output_gimple_stmt): Make sure all
9344         non-automatic variable uses are wrapped inside a MEM_REF.
9345
9346 2010-07-14  Richard Henderson  <rth@redhat.com>
9347
9348         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
9349         for functions.
9350         * varasm.c (assemble_variable): Remove early exit for functions;
9351         assert that we're given a variable.
9352
9353 2010-07-14  Jie Zhang  <jie@codesourcery.com>
9354
9355         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
9356         cortex_a8_default when neon_type is not none.
9357
9358 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9359
9360         * lower-subreg.c (subreg_context): New static bitmap.
9361         (decompose_multiword_subregs): Allocate and free it.
9362         (find_decomposable_subregs): Set a bit in it for a register that
9363         occurs in a subreg that changes mode but not size.
9364         (can_decompose_p): Test it instead of non_decomposable_context.
9365
9366 2010-07-14  Richard Guenther  <rguenther@suse.de>
9367
9368         PR tree-optimization/44824
9369         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
9370         is_gimple_mem_ref_addr.
9371         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
9372         non-decl_address_invariant_p addresses.
9373
9374 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9375
9376         * reload.c (find_reloads): Revert code to penalize small register
9377         classes that was brought in with the IRA merge.
9378
9379 2010-07-14  Richard Guenther  <rguenther@suse.de>
9380
9381         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
9382         as base of ARRAY_REFs.
9383
9384 2010-07-14  Richard Guenther  <rguenther@suse.de>
9385
9386         PR middle-end/44930
9387         * tree-pretty-print.c (do_niy): Do not print a newline.
9388
9389 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9390
9391         * ira-int.h (struct ira_object): New.
9392         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
9393         (struct ira_allocno): Remove members min, max,
9394         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
9395         conflict_allocnos_num and conflict_vec_p.  Add new member object.
9396         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
9397         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
9398         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
9399         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
9400         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
9401         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
9402         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
9403         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
9404         an ira_object_t rather than ira_allocno_t.  All uses changed.
9405         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9406         contains a vector of ira_object_t; all uses changed.
9407         (ira_objects_num): Declare variable.
9408         (ira_create_allocno_object): Declare function.
9409         (ira_conflict_vector_profitable_p): Adjust prototype.
9410         (ira_allocate_conflict_vec): Renamed from
9411         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
9412         (ira_allocate_object_conflicts): Renamed from
9413         ira_allocate_allocno_conflicts; first arg now ira_object_t.
9414         (struct ira_object_iterator): New.
9415         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
9416         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
9417         to conflict_vec_p.  All uses changed.
9418         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
9419         Changed to take into account that conflicts are now tracked for
9420         objects.
9421         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
9422         Args changed to accept ira_object_t.  All uses changed.
9423         (allocnos_conflict_p): New static function.
9424         (collected_conflict_objects): Renamed from collected_allocno_objects;
9425         now a vector of ira_object_t.  All uses changed.
9426         (build_conflict_bit_table): Changed to take into account that
9427         conflicts are now tracked for objects.
9428         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
9429         (print_allocno_conflicts, ira_build_conflicts): Likewise.
9430         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
9431         setup_allocno_left_conflicts_size, allocno_reload_assign,
9432         fast_allocation): Likewise.
9433         * ira-lives.c (make_hard_regno_born, make_allocno_born)
9434         process_single_reg_class_operands, process_bb_node_lives): Likewise.
9435         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
9436         Likewise.
9437         * ira-build.c (ira_objects_num): New variable.
9438         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9439         contains a vector of ira_object_t; all uses changed.
9440         (ira_object_id_map_vec): Corresponding change.
9441         (object_pool): New static variable.
9442         (initiate_allocnos): Initialize it.
9443         (finish_allocnos): Free it.
9444         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
9445         New functions.
9446         (ira_create_allocno): Don't set members that were removed.
9447         (ira_set_allocno_cover_class): Don't change conflict hard regs.
9448         (merge_hard_reg_conflicts): Changed to take into account that
9449         conflicts are now tracked for objects.
9450         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
9451         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
9452         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
9453         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
9454         setup_min_max_conflict_allocno_ids, ):  Likewise.
9455         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
9456         to ira_object_t; all callers changed.
9457         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
9458         to ira_object_t, all callers changed.
9459         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
9460         to ira_object_t, all callers changed.
9461         (conflict_check, curr_conflict_check_tick): Renamed from
9462         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
9463         changed.
9464         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
9465         arg changed to ira_object_t, all callers changed.
9466         (create_cap_allocno): Call ira_create_allocno_object.
9467         (finish_allocno): Free the corresponding object.
9468         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
9469         callers changed.  Adjusted for dealing with objects.
9470         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
9471         dealing with objects.
9472         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
9473
9474         * ira-int.h (struct live_range): Rename allocno member to object
9475         and change type to ira_object_t.
9476         (struct ira_object): New member live_ranges.
9477         (struct ira_allocno): Remove member live_ranges.
9478         (ALLOCNO_LIVE_RANGES): Remove.
9479         (OBJECT_LIVE_RANGES): New macro.
9480         (ira_create_live_range, ira_copy_live_range_list,
9481         ira_merge_live_range_list, ira_live_ranges_intersect_p,
9482         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
9483         * ira-build.c (ira_create_object): Initialize live ranges here.
9484         (ira_create_allocno): Not here.
9485         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
9486         changed to ira_object_t, all callers changed.
9487         (copy_live_range): Rename from copy_allocno_live_range, all callers
9488         changed.
9489         (ira_copy_live_range_list): Rename from
9490         ira_copy_allocno_live_range_list, all callers changed.
9491         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
9492         all callers changed.
9493         (ira_live_ranges_intersect_p): Rename from
9494         ira_allocno_live_ranges_intersect_p, all callers changed.
9495         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
9496         callers changed.
9497         (ira_finish_live_range_list): Rename from
9498         ira_finish_allocno_live_range_list, all callers changed.
9499         (change_object_in_range_list): Rename from change_allocno_in_range_list,
9500         last arg changed to ira_object_t, all callers changed.
9501         (finish_allocno): Changed to expect live ranges in the allocno's object.
9502         (move_allocno_live_ranges, copy_allocno_live_ranges,
9503         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
9504         ira_flattening, ira_build): Likewise.
9505         * ira-color.c (allocnos_have_intersected_live_ranges_p,
9506         slot_coalesced_allocno_live_ranges_intersect,
9507         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
9508         * ira-conflicts.c (build_conflict_bit_table): Likewise.
9509         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
9510         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
9511         make_allocno_dead, create_start_finish_chains,
9512         remove_some_program_points_and_update_live_ranges,
9513         ira_debug_live_range_list): Likewise.
9514
9515         * ira-int.h (ira_object_conflict_iterator): Rename from
9516         ira_allocno_conflict_iterator.
9517         (ira_object_conflict_iter_init): Rename from
9518         ira_allocno_conflict_iter_init, second arg changed to
9519         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
9520         FOR_EACH_ALLOCNO_CONFLICT.
9521         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
9522         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
9523         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
9524         * ira-conflicts.c (print_allocno_conflicts): Likewise.
9525
9526 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
9527
9528         PR other/44874
9529         * tree-dump.c (dump_options): Add enumerate_locals entry.
9530         Add TDF_NOID exclusion to all entry.
9531         * tree-dump.h (dump_enumerated_decls): Declare.
9532         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
9533         Don't display type uid.
9534         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
9535         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
9536         * tree-ssa-live.c: Include gimple.h.
9537         (numbered_tree_d): New struct.
9538         (numbered_tree): New typedef.
9539         (DEF_VEC_O (numbered_tree): New.
9540         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
9541         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
9542         (dump_enumerated_decls): Likewise.
9543         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
9544         debug info and flag_dump_final_insns, call dump_enumerated_decls.
9545         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
9546         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
9547
9548 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
9549
9550         * expmed.h (MAX_BITS_PER_WORD): Move to...
9551         * defaults.h (MAX_BITS_PER_WORD): ...here.
9552
9553 2010-07-13  DJ Delorie  <dj@redhat.com>
9554
9555         * config/h8300/h8300.c (h8300_init_once): Default to
9556         -fstrict_volatile_bitfields.
9557
9558         * config/sh/sh.c (sh_override_options): Default to
9559         -fstrict_volatile_bitfields.
9560
9561         * config/rx/rx.c (rx_option_override): New.
9562
9563         * config/m32c/m32c.c (m32c_override_options): Default to
9564         -fstrict_volatile_bitfields.
9565
9566 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
9567
9568         * tree.h (build_function_call_expr): Delete.
9569         (build_call_expr_loc_array): New function.
9570         (build_call_expr_loc_vec): New function.
9571         * tree-flow.h (struct omp_region): Change type of ws_args field
9572         to a VEC.
9573         * builtins.c (build_function_call_expr): Delete.
9574         (build_call_expr_loc_array): New function.
9575         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
9576         (build_call_expr): Likewise.
9577         (build_call_expr_loc_vec): New function.
9578         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
9579         build_function_call_expr.
9580         * expr.c (emutls_var_address): Likewise.
9581         * varasm.c (emutls_common_1): Likewise.
9582         * omp-low.c (expand_omp_atomic_mutex): Likewise.
9583         (expand_omp_taskreg): Adjust for new type of region->ws_args.
9584         (get_ws_args_for): Return a VEC instead of a tree.
9585         (expand_parallel_call): Call build_call_expr_loc_vec instead of
9586         build_function_call_expr.
9587         * stor-layout.c (self_referential_size): Likewise.
9588
9589 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
9590
9591         PR testsuite/44701
9592         * recog.c (constrain_operands): Allow side-effects in memory
9593         operands if either < or > constraint is used, rather than if
9594         both < and > is used.
9595
9596 2010-07-13  Richard Guenther  <rguenther@suse.de>
9597
9598         PR middle-end/44911
9599         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
9600         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
9601         without name.
9602
9603 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
9604
9605         PR target/44761
9606         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
9607         to variable emited.
9608         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
9609         * config/sh/sh.md (symGOT_load): Likewise.
9610         (symDTPOFF2reg): Likewise.
9611         (symTPOFF2reg): Likewise.
9612
9613 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9614
9615         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
9616         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
9617
9618 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9619
9620         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
9621         explanation.
9622         Find ucontext_t * on Solaris 11.
9623         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
9624         Handle new Solaris 11 __sighndlr patterns.
9625
9626 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
9627
9628         PR debug/44901
9629         * vec.h (VEC_block_remove): Fix comment.
9630         * tree-ssa-live.c (remove_unused_locals): Don't use
9631         VEC_unordered_remove on local_decls, instead replace a single
9632         vector element in each iteration if at least one element had
9633         to be removed and VEC_truncate at the end.
9634         * omp-low.c (expand_omp_taskreg): Likewise.
9635
9636 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9637
9638         * c-decl.c (finish_function): Fix typo in comment.
9639
9640 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
9641
9642         PR bootstrap/44921
9643         * postreload.c (move2add_use_add3_insn): Silence gcc warning
9644         on min_regno.
9645
9646 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
9647
9648         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
9649         (simplify_stmt_using_ranges): Use it.
9650
9651 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9652
9653         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
9654         member.  Do not mark as GTY(()).
9655         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
9656         (spu_builtin_decls): New static variable.
9657         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
9658         (spu_init_builtins): Likewise.
9659         (spu_builtin_mul_widen_even): Likewise.
9660         (spu_builtin_mul_widen_odd): Likewise.
9661         (spu_builtin_mask_for_load): Likewise.
9662         (spu_builtin_vec_perm): Likewise.
9663         * config/spu/spu-c.c: Include "target.h".
9664         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
9665         of using spu_builtins[].fndecl.
9666
9667 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9668
9669         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
9670         imply -minterlink-mips16.
9671
9672 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9673
9674         * config/mips/mips.h (mips16_globals): Declare.
9675         (SWITCHABLE_TARGET): Define.
9676         * config/mips/mips.c: Include target-globals.h.
9677         (mips16_globals): New variable.
9678         (mips_set_mips16_mode): Use save_target_globals and
9679         restore_target_globals instead of target_reinit.
9680
9681 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9682
9683         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
9684         to say that the function can be called more than once.
9685         * target-globals.c (save_target_globals): Call init_reg_sets.
9686
9687 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9688
9689         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
9690         * bb-reorder.h: New file.
9691         * bb-reorder.c (default_target_bb_reorder): New variable.
9692         (this_target_bb_reorder): New conditional variable.
9693         (uncond_jump_length): Redefine as a macro.
9694         * target-globals.h (this_target_bb_reorder): Declare.
9695         (target_globals): Add a bb_reorder field.
9696         (restore_target_globals): Copy the bb_reorder field to
9697         this_target_bb-reorder.
9698         * target-globals.c: Include bb-reorder.h.
9699         (default_target_globals): Initialize the bb_reorder field.
9700         (save_target_globals): Likewise.
9701
9702 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9703
9704         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
9705         * gcse.h: New file.
9706         * gcse.c: Include gcse.h.
9707         (default_target_gcse): New variable.
9708         (this_target_gcse): New conditional variable.
9709         (can_copy): Redefine as a macro.
9710         (can_copy_init_p): New macro.
9711         (can_copy_p): Remove can_copy_init_p.
9712         * target-globals.h (this_target_gcse): Declare.
9713         (target_globals): Add a gcse field.
9714         (restore_target_globals): Copy the gcse field to this_target_gcse.
9715         * target-globals.c: Include gcse.h.
9716         (default_target_globals): Initialize the gcse field.
9717         (save_target_globals): Likewise.
9718
9719 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9720
9721         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
9722         and x_ira_prohibited_mode_move_regs_initialized_p.
9723         (ira_prohibited_mode_move_regs): Redefine as a macro.
9724         * ira.c (ira_prohibited_mode_move_regs): Delete.
9725         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
9726
9727 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9728
9729         * reload.h (target_reload): Add x_cached_reg_save_code and
9730         x_cached_reg_restore_code.
9731         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
9732         Redefine as macros.
9733
9734 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9735
9736         * Makefile.in (target-globals.o): Depend on builtins.h.
9737         * builtins.h: New file.
9738         * builtins.c: Include builtins.h.
9739         (default_target_builtins): New variable.
9740         (this_target_builtins): New conditional variable.
9741         (apply_args_mode, apply_result_mode): Redefine as macros.
9742         * target-globals.h (this_target_builtins): Declare.
9743         (target_globals): Add a builtins field.
9744         (restore_target_globals): Copy the builtins field to
9745         this_target_builtins.
9746         * target-globals.c: Include builtins.h.
9747         (default_target_globals): Initialize the builtins field.
9748         (save_target_globals): Likewise.
9749
9750 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9751
9752         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
9753         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
9754         from expmed.c.
9755         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
9756         (alg_hash, alg_hash_used_p): New macros.
9757         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
9758         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
9759         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
9760
9761 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9762
9763         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
9764         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
9765         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
9766         (this_op_costs, costs_classes): Redefine as macros.
9767         (record_reg_classes): Don't take op_costs as a parameter.
9768         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
9769         (scan_one_insn): Update call to record_operand_costs.
9770
9771 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9772
9773         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
9774         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
9775         (target_ira_int): New structure.
9776         (default_target_ira_int): Declare.
9777         (this_target_ira_int): Declare as a variable or define as a macro.
9778         (ira_reg_mode_hard_regset, ira_register_move_cost)
9779         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
9780         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
9781         (prohibited_class_mode_regs, ira_important_classes_num)
9782         (ira_important_classes, ira_reg_class_intersect)
9783         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
9784         (ira_reg_class_union): Redefine as macros.
9785         * ira.h (target_ira): New structure.
9786         (default_target_ira): Declare.
9787         (this_target_ira): Declare as a variable or define as a macro.
9788         (ira_available_class_regs, ira_hard_regno_cover_class)
9789         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
9790         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
9791         (ira_class_hard_regs_num): Redefine as macros.
9792         * ira.c (default_target_ira, default_target_ira_int): New variables.
9793         (this_target_ira, this_target_ira_int): New conditional variables.
9794         (ira_reg_mode_hard_regset, ira_memory_move_cost)
9795         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
9796         (ira_class_subset_p): Delete.
9797         (no_unit_alloc_regs): Redefine as a macro.
9798         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
9799         (ira_class_hard_regs_num, ira_class_hard_reg_index)
9800         (ira_available_class_regs): Delete.
9801         (alloc_reg_class_subclasses): Redefine as a macro.
9802         (ira_reg_class_cover_size, ira_reg_class_cover)
9803         (ira_important_classes_num, ira_important_classes)
9804         (ira_important_class_nums, ira_class_translate): Delete.
9805         (cover_class_order): Document the variable's lifetime.
9806         (reorder_important_classes): Don't set ira_important_class_nums.
9807         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
9808         (ira_reg_class_super_classes, ira_reg_class_union)
9809         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
9810         Delete.
9811         (setup_reg_class_nregs): Don't set ira_max_regs.
9812         (prohibited_class_mode_regs): Delete.
9813         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
9814         (target_globals): Add ira and ira_int fields.
9815         (restore_target_globals): Copy the ira field to this_target_ira
9816         and the ira_int field to this_target_ira_int.
9817         * target-globals.c: Include ira-int.h.
9818         (default_target_globals): Initialize the ira and ira_int fields.
9819         (save_target_globals): Likewise.
9820
9821 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9822
9823         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
9824         * cfgloop.h (target_cfgloop): New structure.
9825         (default_target_cfgloop): Declare.
9826         (this_target_cfgloop): Declare as a variable or define as a macro.
9827         (target_avail_regs, target_clobbered_regs, target_res_regs)
9828         (target_reg_cost, target_spill_cost): Redefine as macros.
9829         * cfgloopanal.c (default_target_cfgloop): New variable.
9830         (this_target_cfgloop): New conditional variable.
9831         (target_avail_regs, target_clobbered_regs, target_res_regs)
9832         (target_reg_cost, target_spill_cost): Delete.
9833         * target-globals.h (this_target_cfgloop): Declare.
9834         (target_globals): Add a cfgloop field.
9835         (restore_target_globals): Copy the cfgloop field to
9836         this_target_cfgloop.
9837         * target-globals.c: Include cfgloop.h.
9838         (default_target_globals): Initialize the cfgloop field.
9839         (save_target_globals): Likewise.
9840
9841 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9842
9843         * regs.h (target_regs): Add x_direct_load, x_direct_store and
9844         x_float_extend_from_mem.
9845         (direct_load, direct_store, float_extend_from_mem): New macros.
9846         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
9847
9848 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9849
9850         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
9851         (target-globals.o): Depend on $(LIBFUNCS_H).
9852         * libfuncs.h: Include hashtab.h.
9853         (libfunc_entry): Moved from optabs.c.
9854         (target_libfuncs): New structure.
9855         (default_target_libfuncs): Declare.
9856         (this_target_libfuncs): Declare as a variable or define as a macro.
9857         (libfunc_table): Redefine as a macro.
9858         * optabs.c (default_target_libfuncs): New variable.
9859         (this_target_libfuncs): New conditional variable.
9860         (libfunc_table): Delete.
9861         (libfunc_entry): Moved to optabs.h.
9862         (libfunc_hash): Redefine as a macro.
9863         (hash_libfunc, eq_libfunc): Fix comments.
9864         (init_optabs): Use libfunc_hash to detect cases where the function
9865         has already been called.  Clear the hash table instead of
9866         recreating it.
9867         * target-globals.h (this_target_libfuncs): Declare.
9868         (target_globals): Add a libfuncs field.
9869         (restore_target_globals): Copy the libfuncs field to
9870         this_target_libfuncs.
9871         * target-globals.c: Include libfuncs.h.
9872         (default_target_globals): Initialize the libfuncs field.
9873         (save_target_globals): Likewise.
9874
9875 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9876
9877         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
9878         in all dependency lists.
9879
9880 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9881
9882         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
9883         * optabs.h (target_optabs): New structure.
9884         (default_target_optabs): Declare.
9885         (this_target_optabs): Declare as a variable or define as a macro.
9886         (optab_table, convert_optab_table, direct_optab_table): Redefine
9887         as macros.
9888         * optabs.c (default_target_optabs): New variable.
9889         (this_target_optabs): New conditional variable.
9890         (optab_table, convert_optab_table, direct_optab_table): Delete.
9891         * target-globals.h (this_target_optabs): Declare.
9892         (target_globals): Add a optabs field.
9893         (restore_target_globals): Copy the optabs field to
9894         this_target_optabs.
9895         * target-globals.c: Include expr.h and optabs.h.
9896         (default_target_globals): Initialize the optabs field.
9897         (save_target_globals): Likewise.
9898
9899 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9900
9901         * flags.h (target_flagstate): Add x_flag_excess_precision.
9902         (flag_excess_precision): Redefine as a macro.
9903         * toplev.c (flag_excess_precision): Delete.
9904
9905 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9906
9907         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
9908         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
9909         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
9910         (no_caller_save_reg_set): Redefine as a macro.
9911         * reload.h (target_reload): Add x_caller_save_initialized_p and
9912         x_regno_save_mode.
9913         (caller_save_initialized_p): Redefine as a macro.
9914         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
9915         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
9916         (regno_save_mode): Redefine as a macro.
9917
9918 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9919
9920         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
9921         * expmed.h: New file.
9922         * expmed.c (default_target_costs): New variable.
9923         (this_target_costs): New conditional variable.
9924         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
9925         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
9926         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
9927         * target-globals.h (this_target_expmed): Declare.
9928         (target_globals): Add a expmed field.
9929         (restore_target_globals): Copy the expmed field to
9930         this_target_expmed.
9931         * target-globals.c: Include expmed.h.
9932         (default_target_globals): Initialize the expmed field.
9933         (save_target_globals): Likewise.
9934
9935 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9936
9937         * Makefile.in (target-globals.o): Depend on reload.h.
9938         * reload.h (target_reload): New structure.
9939         (default_target_reload): Declare.
9940         (this_target_reload): Declare as a variable or define as a macro.
9941         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
9942         * reload1.c (default_target_reload): New variable
9943         (this_target_reload): New conditional variable.
9944         (indirect_symref_ok, double_reg_address_ok): Delete.
9945         (spill_indirect_levels): Redefine as a macro.
9946         * target-globals.h (this_target_reload): Declare.
9947         (target_globals): Add a reload field.
9948         (restore_target_globals): Copy the reload field to
9949         this_target_reload.
9950         * target-globals.c: Include hard-reg-set.h.
9951         (default_target_globals): Initialize the reload field.
9952         (save_target_globals): Likewise.
9953
9954 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9955
9956         * rtl.h (target_rtl): Add x_static_reg_base_value.
9957         * alias.c (static_reg_base_value): Redefine as a macro.
9958
9959 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9960
9961         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
9962         (GTFILES): Remove reginfo.c.
9963         * rtl.h (target_rtl): Add x_top_of_stack.
9964         (top_of_stack): New macro.
9965         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
9966         (top_of_stack): Delete.
9967
9968 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9969
9970         * regs.h (target_regs): Add x_hard_regs_of_mode,
9971         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
9972         x_may_move_out_cost and x_last_mode_for_init_move_cost.
9973         (have_regs_of_mode, contains_reg_of_mode, move_cost)
9974         (may_move_in_cost, may_move_out_cost): Redefine as macros.
9975         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
9976         (may_move_in_cost, may_move_out_cost): Delete.
9977         (last_mode_for_init_move_cost): Redefine as a macro.
9978
9979 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9980
9981         * hard-reg-set.h (target_hard_regs): New structure.
9982         (default_target_hard_regs): Declare.
9983         (this_target_hard_regs): Declare as a variable or define as a macro.
9984         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
9985         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
9986         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
9987         (reg_class_size, reg_class_subclasses, reg_class_subunion)
9988         (reg_class_superunion, reg_names): Redefine as macros.
9989         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
9990         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
9991         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
9992         (reg_class_contents, reg_class_size, reg_class_subclasses)
9993         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
9994         (default_target_hard_regs): New variable
9995         (this_target_hard_regs, initial_call_really_used_regs)
9996         (initial_reg_alloc_order): New conditional variables.
9997         (initial_reg_names): New variable.
9998         (init_reg_sets): Assert that initial_call_really_used_regs,
9999         initial_reg_alloc_order and initial_reg_names
10000         are all the same size as their variable counterparts.  Use them to
10001         initialize those counterparts.
10002         * target-globals.h (this_target_hard_regs): Declare.
10003         (target_globals): Add a hard_regs field.
10004         (restore_target_globals): Copy the hard_regs field to
10005         this_target_hard_regs.
10006         * target-globals.c: Include hard-reg-set.h.
10007         (default_target_globals): Initialize the hard_regs field.
10008         (save_target_globals): Likewise.
10009
10010 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10011
10012         * Makefile.in (target-globals.o): Depend on $(RTL_H).
10013         * rtl.h (target_rtl): New structure.
10014         (default_target_rtl): Declare.
10015         (this_target_rtl): Declare as a variable or define as a macro.
10016         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
10017         Redefine as macros.
10018         * emit-rtl.c (default_target_rtl): New variable.
10019         (this_target_rtl): New conditional variable.
10020         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
10021         (return_address_pointer_rtx): Delete.
10022         (initial_regno_reg_rtx): New macro.
10023         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
10024         (init_emit_regs): Likewise.
10025         * target-globals.h (this_target_rtl): Declare.
10026         (target_globals): Add a rtl field.
10027         (restore_target_globals): Copy the rtl field to this_target_rtl.
10028         * target-globals.c: Include rtl.h.
10029         (default_target_globals): Initialize the rtl field.
10030         (save_target_globals): Likewise.
10031
10032 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10033
10034         * Makefile.in (target-globals.o): Depend on $(REGS_H).
10035         * regs.h (target_reg_modes): New structure.
10036         (default_target_reg_modes): Declare.
10037         (this_target_reg_modes): Declare as a variable or define as a macro.
10038         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
10039         * reginfo.c (default_target_reg_modes): New variable.
10040         (this_target_reg_modes): New conditional variable.
10041         (hard_regno_nregs, reg_raw_mode): Delete.
10042         * target-globals.h (this_target_regs): Declare.
10043         (target_globals): Add a regs field.
10044         (restore_target_globals): Copy the regs field to this_target_regs.
10045         * target-globals.c: Include regs.h.
10046         (default_target_globals): Initialize the regs field.
10047         (save_target_globals): Likewise.
10048
10049 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10050
10051         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
10052         * doc/tm.texi: Regenerate.
10053         * Makefile.in (OBJS-common): Add target-globals.o.
10054         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
10055         and target-globals.h.
10056         (target-globals.o): New rule.
10057         (GTFILES): Include $(srcdir)/target-globals.h.
10058         * defaults.h (SWITCHABLE_TARGET): Define.
10059         * gengtype.c (open_base_files): Add target-globals.h to the
10060         list of includes.
10061         * target-globals.h: New file.
10062         * target-globals.c: Likewise.
10063
10064         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
10065         * flags.h (target_flag_state): New structure.
10066         (default_target_flag_state): Declare.
10067         (this_target_flag_state): Declare as a variable or define as a macro.
10068         (align_loops_log): Redefine as a macro.
10069         (align_loops_max_skip, align_jumps_log): Likewise.
10070         (align_jumps_max_skip, align_labels_log): Likewise.
10071         (align_labels_max_skip, align_functions_log): Likewise.
10072         * toplev.c (default_target_flag_state): New variable.
10073         (this_target_flag_state): New conditional variable.
10074         (align_loops_log): Delete.
10075         (align_loops_max_skip, align_jumps_log): Likewise.
10076         (align_jumps_max_skip, align_labels_log): Likewise.
10077         (align_labels_max_skip, align_functions_log): Likewise.
10078         * target-globals.h (this_target_flag_state): Declare.
10079         (target_globals): Add a flag_state field.
10080         (restore_target_globals): Copy the flag_state field to
10081         this_target_flag_state.
10082         * target-globals.c: Include flags.h.
10083         (default_target_globals): Initialize the flag_state field.
10084         (save_target_globals): Likewise.
10085
10086 2010-07-12  Jie Zhang  <jie@codesourcery.com>
10087
10088         * postreload.c (reg_symbol_ref[]): New.
10089         (move2add_use_add2_insn): New.
10090         (move2add_use_add3_insn): New.
10091         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
10092         (move2add_note_store): Likewise.
10093
10094 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
10095
10096         PR rtl-optimization/44752
10097         * genautomata.c (main): Don't emit an empty file even if there
10098         is no automaton.
10099
10100 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10101
10102         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
10103         ix86_solaris_return_in_memory.
10104         * config/i386-protos.h: Reflect this.
10105         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
10106         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
10107         Move ...
10108         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
10109
10110 2010-07-12  Jie Zhang  <jie@codesourcery.com>
10111
10112         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
10113         align the stack when it's going to be saved.
10114
10115 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10116
10117         PR pch/14940
10118         * config/host-solaris.c (mmap_fixed): New function.
10119         (sol_gt_pch_get_address): Use it.
10120         (sol_gt_pch_use_address): Likewise.
10121
10122 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10123
10124         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
10125         pentiumpro on Solaris 8 and 9/x86.
10126         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
10127         Document SSE/SSE2 support.
10128         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
10129
10130 2010-07-12  Andi Kleen  <ak@linux.intel.com>
10131
10132         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
10133         instead of gcc_assert to print better error message for multiple
10134         prevailing defs.
10135
10136 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
10137
10138         * config/i386/i386.c (ix86_asm_output_function_label): Change format
10139         string placeholder from 0x%x to %#x.
10140         (ix86_code_end): Use putc to output '\n'.
10141         (ix86_print_operand) <case ';'>: Use putc to output ';'.
10142
10143 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
10144
10145         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
10146         in directive -export.
10147
10148 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
10149
10150         * reginfo.h (reg_classes_intersect_p): Change arguments type to
10151         reg_class_t.
10152         * rtl.h (reg_classes_intersect_p): Adjust prototype.
10153
10154         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10155         Remove macros.
10156         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
10157         rs6000_memory_move_cost): Remove
10158         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
10159         TARGET_MEMORY_MOVE_COST): Define.
10160         (rs6000_register_move_cost): Make static. Change arguments type from
10161         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
10162         (rs6000_memory_move_cost): Make static. Change arguments type from
10163         'enum reg_class' to reg_class_t.
10164
10165 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
10166
10167         PR middle-end/42505
10168         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
10169         lookup code into....
10170         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
10171         new functions.
10172         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
10173         * cfgloopanal.c (target_clobbered_regs): Define.
10174         (init_set_costs): Initialize target_clobbered_regs.
10175         (estimate_reg_pressure_cost): Add call_p argument.  When true,
10176         adjust the number of available registers to exclude the
10177         call-clobbered registers.
10178         * cfgloop.h (target_clobbered_regs): Declare.
10179         (estimate_reg_pressure_cost): Adjust declaration.
10180         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
10181         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
10182         (determine_set_costs): Dump target_clobbered_regs.
10183         (loop_body_includes_call): New function.
10184         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
10185         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
10186         call_p flag through.
10187         (best_gain_for_invariant): Likewise.
10188         (find_invariants_to_move): Likewise.
10189         (move_single_loop_invariants): Likewise, using already-computed
10190         has_call field.
10191
10192 2010-07-10  Richard Guenther  <rguenther@suse.de>
10193             Joern Rennecke  <joern.rennecke@embecosm.com>
10194
10195         PR debug/44832
10196         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
10197         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
10198         unless they have DECL_IGNORED_P set.
10199
10200 2010-07-10  Richard Guenther  <rguenther@suse.de>
10201
10202         PR lto/44889
10203         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
10204         helper function.
10205         (gimple_types_compatible_p): Similar to pointed-to
10206         types allow and merge a mix of complete and incomplete aggregate.
10207         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
10208         (iterative_hash_gimple_type): Adjust for that.
10209
10210 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
10211
10212         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
10213
10214 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
10215
10216         PR objc/44140
10217         * config/darwin.c (output_objc_section_asm_op): Save and restore
10218         section when outputting ObjC section list.
10219
10220 2010-07-09  Jan Hubicka  <jh@suse.cz>
10221
10222         * lto-streamer-out.c (produce_symtab): Do not write alias
10223         cgraph/varpool nodes.
10224
10225 2010-07-09  Jan Hubicka  <jh@suse.cz>
10226
10227         * tree-inline.c (declare_return_variable): Fix ICE while
10228         inlining DECL_BY_VALUE function not in SSA form
10229
10230 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
10231
10232         PR tree-optimization/44576
10233         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
10234         New.  Pull out from is_loop_prefetching_profitable to implement
10235         the trip count to ahead ratio heuristic.
10236         (mem_ref_count_reasonable_p): New.  Pull out from
10237         is_loop_prefetching_profitable to implement the instruction to
10238         memory reference ratio heuristic.  Also consider not reasonable if
10239         the memory reference count is above a threshold (to avoid
10240         explosive compilation time.
10241         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
10242         is_loop_prefetching_profitable to implement the instruction to
10243         prefetch ratio heuristic.
10244         (is_loop_prefetching_profitable): Removed.
10245         (loop_prefetch_arrays): Distribute the cost analysis across the
10246         function to allow early exit of the prefetch analysis.
10247         is_loop_prefetching_profitable is splitted into three functions,
10248         with each one called as early as possible.
10249         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
10250         number of memory references in a loop is considered too many.
10251
10252 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
10253
10254         * reload.c (find_reloads): Don't clear badop if we have a winreg
10255         alternative, but not win, and the class only has fixed regs.
10256         * hard-reg-set.h (class_only_fixed_regs): Declare.
10257         * reginfo.c (class_only_fixed_regs): New array.
10258         (init_reg_sets_1): Initialize it.
10259         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
10260         discourage alternatives using the stack pointer.
10261
10262         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
10263
10264         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
10265
10266         * config/arm/arm.md (cbranchqi4): Fix array size.
10267         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
10268         calculating length.
10269
10270 2010-07-09  Richard Guenther  <rguenther@suse.de>
10271
10272         * gimple.c (struct type_fixup_s): New struct and VEC type.
10273         (gimple_register_type_fixups): New static global.
10274         (gimple_queue_type_fixup): New function.
10275         (gimple_types_compatible_p): Queue type fixups instead of
10276         applying them here.
10277         (gimple_register_type): Apply queued fixups for the
10278         canonical type.  Empty the type fixup queue.
10279
10280 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10281
10282         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
10283         * configure: Regenerate.
10284         * config.in: Ditto.
10285
10286 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
10287             Denys Vlasenko  <dvlasenk@redhat.com>
10288             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10289
10290         PR tree-optimization/28632
10291         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
10292         (extract_range_from_binary_expr): Further optimize
10293         BIT_AND_EXPR and BIT_IOR_EXPR.
10294
10295 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
10296
10297         * tree-if-conv.c (fold_or_predicates): New.
10298         (add_to_predicate_list): Call it.
10299
10300 2010-07-09  Richard Guenther  <rguenther@suse.de>
10301
10302         PR middle-end/44890
10303         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
10304         if base is a pointer.
10305         * tree-cfg.c (verify_expr): Update MEM_REF checking.
10306
10307 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10308
10309         PR target/44877
10310         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
10311         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
10312         builtin mask for load/store builtins.
10313
10314 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10315
10316         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
10317         for "lock addl".
10318         * configure: Regenerate.
10319         * config/i386/i386.c (ix86_print_operand) <case ';'>:
10320         Remove TARGET_MACHO.
10321
10322 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
10323
10324         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
10325         default ISA flags.
10326         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
10327
10328 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
10329
10330         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
10331
10332 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10333
10334         * config/picochip/picochip.md (commsTestPort): Emit more
10335         efficient sequence for tstport instruction.
10336
10337 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10338
10339         * config/i386/i386.c (ix86_veclib_handler): Make static.
10340
10341 2010-07-09  Richard Guenther  <rguenther@suse.de>
10342
10343         PR tree-optimization/44852
10344         * tree-ssa-alias.c: Include toplev.h for exact_log2.
10345         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
10346         in MEM_REF.
10347         (indirect_refs_may_alias_p): Likewise.
10348         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
10349
10350 2010-07-09  Richard Guenther  <rguenther@suse.de>
10351
10352         PR tree-optimization/44882
10353         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
10354         sets do conflict.
10355         (vectorizable_load): Likewise.
10356
10357 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
10358
10359         PR target/40657
10360         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
10361         All callers changed.
10362         Handle the case when we're called for the epilogue.
10363         (thumb_unexpanded_epilogue): Use it.
10364         (thumb1_expand_epilogue): Likewise.
10365
10366 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
10367
10368         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
10369         both ranges are range_int_cst_p with non-negative minimum,
10370         try harder to derive smaller range.
10371
10372 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10373
10374         * genrecog.c: Include diagnostic-core.h before toplev.h.
10375         * genoutput.c: Likewise.
10376         * genextract.c: Likewise.
10377         * genautomata.c: Likewise.
10378         * genemit.c: Likewise.
10379         * genpeep.c: Likewise.
10380         * genattrtab.c: Likewise.
10381         * genconditions.c: Likewise.
10382         * genpreds.c: Likewise.
10383
10384 2010-07-08  Andi Kleen  <ak@linux.intel.com>
10385
10386         * lto-section-in.c (lto_section_name): Add missing comma.
10387
10388 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
10389
10390         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
10391         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
10392         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
10393         (ia64_override_options): Rename to...
10394         (ia64_option_override): ... this one. Make static.
10395
10396 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10397
10398         PR middle-end/44843
10399         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
10400         pointed-to type of the offset in a MEM_REF to compute the alignment.
10401
10402 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
10403
10404         * final.c (final_scan_insn): Replace
10405         TARGET_UNWIND_INFO macro check by unwind_emit
10406         hook NULL check.
10407         * targhooks.c (default_unwind_emit): Removed.
10408         * targhooks.h (default_unwind_emit): Likewise.
10409         * target.def (unwind_emit): Set default value to NULL.
10410
10411         * config/i386/i386-protos.h (ix86_asm_output_function_label):
10412         New prototype.
10413         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
10414         for NULL fntype argument and allow 64-bit targets.
10415         (ix86_asm_output_function_label): New function.
10416         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
10417         (ix86_handle_fndecl_attribute): Likewise.
10418         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
10419         * doc/doc/tm.texi: Regenerated.
10420         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
10421         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
10422         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
10423         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
10424         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10425         * config/elfos.h: Likewise.
10426         * config/i386/cygming.h: Likewise.
10427         * config/netbsd-aout.h: Likewise.
10428         * config/openbsd.h: Likewise.
10429         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
10430         by ix86_asm_output_function_label function call.
10431         * varasm.c (assemble_start_function): Use
10432         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10433
10434 2010-07-08  Jan Hubicka  <jh@suse.cz>
10435
10436         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
10437         New function.
10438         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
10439         Declare.
10440         * ipa-cp.c (ipcp_estimate_growth): Use it.
10441         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
10442         Likewise.
10443
10444 2010-07-08  Jan Hubicka  <jh@suse.cz>
10445
10446         * tree-inline.c (declare_return_variable): Allocate annotation for new
10447         temporary.
10448
10449 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10450
10451         PR tree-optimization/44710
10452         * tree-if-conv.c (parse_predicate): New.
10453         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
10454         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
10455
10456 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10457
10458         * common.opt (ftree-loop-if-convert): New flag.
10459         * doc/invoke.texi (ftree-loop-if-convert): Documented.
10460         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
10461         when flag_tree_loop_if_convert is set.
10462
10463 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
10464
10465         * config/i386/i386.c: Use short syntax for function calls
10466         through function pointers.
10467         * config/i386/i386.md: Ditto.
10468
10469 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10470
10471         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
10472
10473 2010-07-08  Richard Guenther  <rguenther@suse.de>
10474
10475         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
10476         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
10477
10478 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
10479
10480         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
10481         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
10482         (loc_list_from_tree): Likewise.
10483         (output_loc_operands): Handle outputting DW_OP_const[48]u
10484         with loc->dtprel set.
10485         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
10486
10487 2010-07-08  Jan Hubicka  <jh@suse.cz>
10488
10489         * ipa.c: Include pointer-set.h
10490         (cgraph_externally_visible_p): New attribute ALIASED;
10491         when in LTO, hidden symbols are local unless they are aliased.
10492         (function_and_variable_visibility): Compute aliased nodes;
10493         handle LTO and hidden symbol on functions and vars.
10494         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
10495         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
10496
10497 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10498
10499         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
10500         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10501         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10502         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10503         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10504         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
10505         (ix86_gen_probe_stack_range): Likewise.
10506         (override_options): Set them.
10507         (ix86_target_stack_probe): New function.
10508         (ix86_compute_frame_layout): Force use of push instructions to
10509         save registers if stack checking with probes is enabled.
10510         (get_scratch_register_on_entry): New function.
10511         (release_scratch_register_on_entry): Likewise.
10512         (ix86_adjust_stack_and_probe): Likewise.
10513         (output_adjust_stack_and_probe): Likewise.
10514         (ix86_emit_probe_stack_range): Likewise.
10515         (output_probe_stack_range): Likewise.
10516         (ix86_expand_prologue): Emit stack checking code if static built-in
10517         stack checking is enabled.
10518         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
10519         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
10520         (output_adjust_stack_and_probe): Likewise.
10521         (output_probe_stack_range): Likewise.
10522         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
10523         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
10524         TARGET_STACK_PROBE.
10525         (allocate_stack_worker_64): Likewise.
10526         (allocate_stack): Likewise.
10527         (adjust_stack_and_probe): New insn.
10528         (probe_stack_range): Likewise.
10529
10530 2010-07-08  Richard Guenther  <rguenther@suse.de>
10531
10532         PR tree-optimization/44831
10533         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
10534         a MEM_REF preserving TBAA info of the original dereference.
10535         Dereference the original pointer if the address is not invariant.
10536         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
10537         at least one invariant address that we are going to dereference.
10538
10539 2010-07-08  Richard Guenther  <rguenther@suse.de>
10540
10541         PR tree-optimization/44861
10542         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
10543         information when building MEM_REFs.
10544         (vectorizable_load): Likewise.
10545         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
10546
10547 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10548
10549         * config/sol2-c.c: Do not include diagnostic-core.h.
10550
10551 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10552
10553         PR bootstrap/44768
10554         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
10555         with respect to current_function_decl. Pass decl of the function.
10556         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
10557         * ipa-inline.c (compute_inline_parameters): Pass decl to
10558         estimated_stack_frame_size.
10559
10560 2010-07-08  Richard Guenther  <rguenther@suse.de>
10561
10562         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
10563         New function.
10564         (valueize_refs): Call it.
10565
10566 2010-07-08  Richard Guenther  <rguenther@suse.de>
10567
10568         PR rtl-optimization/44838
10569         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
10570         SSA form do not use pointer equivalence.
10571
10572 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10573
10574         * dwarf2out.c (AT_linkage_name): Delete.
10575         (add_linkage_attr): New function.
10576         (add_linkage_name): Call it to emit the linkage attribute.
10577         (dwarf2out_finish): Likewise.
10578         (move_linkage_attr): Explicitly accept both attribute variants.
10579
10580 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10581
10582         * toplev.h: Do not include diagnostic-core.h.
10583         Include diagnostic-core.h in every file that includes toplev.h.
10584         * c-tree.h: Do not include toplev.h.
10585         * pretty-print.h: Update comment.
10586         * Makefile.in: Update dependencies.
10587         * alias.c: Include diagnostic-core.h in every file that includes
10588         toplev.h.
10589         * attribs.c: Likewise.
10590         * auto-inc-dec.c: Likewise.
10591         * bb-reorder.c: Likewise.
10592         * bt-load.c: Likewise.
10593         * caller-save.c: Likewise.
10594         * calls.c: Likewise.
10595         * cfg.c: Likewise.
10596         * cfganal.c: Likewise.
10597         * cfgbuild.c: Likewise.
10598         * cfgcleanup.c: Likewise.
10599         * cfghooks.c: Likewise.
10600         * cfgloop.c: Likewise.
10601         * combine.c: Likewise.
10602         * config/alpha/alpha.c: Likewise.
10603         * config/arc/arc.c: Likewise.
10604         * config/arm/arm.c: Likewise.
10605         * config/arm/pe.c: Likewise.
10606         * config/avr/avr.c: Likewise.
10607         * config/bfin/bfin.c: Likewise.
10608         * config/cris/cris.c: Likewise.
10609         * config/crx/crx.c: Likewise.
10610         * config/darwin-c.c: Likewise.
10611         * config/darwin.c: Likewise.
10612         * config/fr30/fr30.c: Likewise.
10613         * config/frv/frv.c: Likewise.
10614         * config/h8300/h8300.c: Likewise.
10615         * config/host-darwin.c: Likewise.
10616         * config/i386/i386.c: Likewise.
10617         * config/i386/netware.c: Likewise.
10618         * config/i386/nwld.c: Likewise.
10619         * config/i386/winnt-cxx.c: Likewise.
10620         * config/i386/winnt-stubs.c: Likewise.
10621         * config/i386/winnt.c: Likewise.
10622         * config/ia64/ia64-c.c: Likewise.
10623         * config/ia64/ia64.c: Likewise.
10624         * config/iq2000/iq2000.c: Likewise.
10625         * config/lm32/lm32.c: Likewise.
10626         * config/m32c/m32c-pragma.c: Likewise.
10627         * config/m32c/m32c.c: Likewise.
10628         * config/m32r/m32r.c: Likewise.
10629         * config/m68hc11/m68hc11.c: Likewise.
10630         * config/m68k/m68k.c: Likewise.
10631         * config/mcore/mcore.c: Likewise.
10632         * config/mep/mep-pragma.c: Likewise.
10633         * config/mep/mep.c: Likewise.
10634         * config/mmix/mmix.c: Likewise.
10635         * config/mn10300/mn10300.c: Likewise.
10636         * config/moxie/moxie.c: Likewise.
10637         * config/pa/pa.c: Likewise.
10638         * config/pdp11/pdp11.c: Likewise.
10639         * config/picochip/picochip.c: Likewise.
10640         * config/rs6000/rs6000-c.c: Likewise.
10641         * config/rs6000/rs6000.c: Likewise.
10642         * config/rx/rx.c: Likewise.
10643         * config/s390/s390.c: Likewise.
10644         * config/score/score.c: Likewise.
10645         * config/score/score3.c: Likewise.
10646         * config/score/score7.c: Likewise.
10647         * config/sh/sh.c: Likewise.
10648         * config/sh/symbian-base.c: Likewise.
10649         * config/sh/symbian-c.c: Likewise.
10650         * config/sh/symbian-cxx.c: Likewise.
10651         * config/sol2-c.c: Likewise.
10652         * config/sol2.c: Likewise.
10653         * config/sparc/sparc.c: Likewise.
10654         * config/spu/spu.c: Likewise.
10655         * config/stormy16/stormy16.c: Likewise.
10656         * config/v850/v850-c.c: Likewise.
10657         * config/v850/v850.c: Likewise.
10658         * config/vax/vax.c: Likewise.
10659         * config/vxworks.c: Likewise.
10660         * config/xtensa/xtensa.c: Likewise.
10661         * convert.c: Likewise.
10662         * cse.c: Likewise.
10663         * cselib.c: Likewise.
10664         * dbgcnt.c: Likewise.
10665         * dbxout.c: Likewise.
10666         * ddg.c: Likewise.
10667         * dominance.c: Likewise.
10668         * emit-rtl.c: Likewise.
10669         * explow.c: Likewise.
10670         * expmed.c: Likewise.
10671         * fixed-value.c: Likewise.
10672         * fold-const.c: Likewise.
10673         * fwprop.c: Likewise.
10674         * gcse.c: Likewise.
10675         * ggc-common.c: Likewise.
10676         * ggc-page.c: Likewise.
10677         * ggc-zone.c: Likewise.
10678         * gimple-low.c: Likewise.
10679         * gimplify.c: Likewise.
10680         * graph.c: Likewise.
10681         * haifa-sched.c: Likewise.
10682         * ifcvt.c: Likewise.
10683         * implicit-zee.c: Likewise.
10684         * integrate.c: Likewise.
10685         * ira-build.c: Likewise.
10686         * ira-color.c: Likewise.
10687         * ira-conflicts.c: Likewise.
10688         * ira-costs.c: Likewise.
10689         * ira-lives.c: Likewise.
10690         * ira.c: Likewise.
10691         * lists.c: Likewise.
10692         * loop-doloop.c: Likewise.
10693         * loop-iv.c: Likewise.
10694         * lto-opts.c: Likewise.
10695         * lto-symtab.c: Likewise.
10696         * main.c: Likewise.
10697         * modulo-sched.c: Likewise.
10698         * optabs.c: Likewise.
10699         * params.c: Likewise.
10700         * plugin.c: Likewise.
10701         * postreload-gcse.c: Likewise.
10702         * postreload.c: Likewise.
10703         * predict.c: Likewise.
10704         * profile.c: Likewise.
10705         * real.c: Likewise.
10706         * regcprop.c: Likewise.
10707         * reginfo.c: Likewise.
10708         * regmove.c: Likewise.
10709         * reorg.c: Likewise.
10710         * resource.c: Likewise.
10711         * rtl.c: Likewise.
10712         * rtlanal.c: Likewise.
10713         * sched-deps.c: Likewise.
10714         * sched-ebb.c: Likewise.
10715         * sched-rgn.c: Likewise.
10716         * sdbout.c: Likewise.
10717         * sel-sched-dump.c: Likewise.
10718         * sel-sched-ir.c: Likewise.
10719         * simplify-rtx.c: Likewise.
10720         * stmt.c: Likewise.
10721         * stor-layout.c: Likewise.
10722         * store-motion.c: Likewise.
10723         * targhooks.c: Likewise.
10724         * tree-cfg.c: Likewise.
10725         * tree-cfgcleanup.c: Likewise.
10726         * tree-dump.c: Likewise.
10727         * tree-eh.c: Likewise.
10728         * tree-inline.c: Likewise.
10729         * tree-nomudflap.c: Likewise.
10730         * tree-object-size.c: Likewise.
10731         * tree-optimize.c: Likewise.
10732         * tree-outof-ssa.c: Likewise.
10733         * tree-phinodes.c: Likewise.
10734         * tree-profile.c: Likewise.
10735         * tree-ssa-ccp.c: Likewise.
10736         * tree-ssa-coalesce.c: Likewise.
10737         * tree-ssa-live.c: Likewise.
10738         * tree-ssa-loop-niter.c: Likewise.
10739         * tree-ssa-loop-prefetch.c: Likewise.
10740         * tree-ssa-loop.c: Likewise.
10741         * tree-ssa-structalias.c: Likewise.
10742         * tree-ssa-uninit.c: Likewise.
10743         * tree-ssa.c: Likewise.
10744         * tree-vect-data-refs.c: Likewise.
10745         * tree-vect-loop-manip.c: Likewise.
10746         * tree-vect-loop.c: Likewise.
10747         * tree-vect-patterns.c: Likewise.
10748         * tree-vect-stmts.c: Likewise.
10749         * tree-vrp.c: Likewise.
10750         * varasm.c: Likewise.
10751         * vec.c: Likewise.
10752         * web.c: Likewise.
10753         * xcoffout.c: Likewise.
10754
10755 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
10756
10757         * gengtype.c (write_field_root): New function.
10758         (write_root): Use it.
10759
10760 2010-07-07  Wei Guozhi  <carrot@google.com>
10761
10762         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10763         of lowest bits to lshift/compare): Add a missing line.
10764
10765 2010-07-07  Wei Guozhi  <carrot@google.com>
10766
10767         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10768         of lowest bits to lshift/compare): New.
10769
10770 2010-07-07  Tom Tromey  <tromey@redhat.com>
10771
10772         * doc/tm.texi: Update.
10773         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
10774         Add @hook.
10775         * target.def (want_debug_pub_sections): New hook.
10776         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
10777         * dwarf2out.c (add_pubname_string): Check
10778         targetm.want_debug_pub_sections.
10779         (add_pubname): Likewise.
10780         (add_pubtype): Likewise.
10781
10782 2010-07-07  Jie Zhang  <jie@codesourcery.com>
10783
10784         * genautomata.c (output_automata_list_min_issue_delay_code):
10785         Correctly decompress min_issue_delay.
10786
10787 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10788
10789         PR rtl-optimization/44404
10790         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
10791         possible, use reg_overlap_mentioned_p instead.
10792
10793 2010-07-07  Duncan Sands  <baldrick@free.fr>
10794
10795         PR middle-end/41355
10796         * tree.c (build_function_type_skip_args): Copy the original type using
10797         build_distinct_type_copy rather than copy_node.
10798
10799 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10800
10801         PR target/44850
10802         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
10803         revision 161876.
10804         (ix86_expand_prologue): Likewise.
10805         (ix86_handle_fndecl_attribute): Likewise.
10806         (ix86_asm_declare_function_name): Likewise.
10807         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10808         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10809         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
10810         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
10811         * doc/extend.texi: Likewise.
10812
10813 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10814
10815         PR target/44844
10816         * config/i386/i386.md (rdrand<mode>): Changed to expand to
10817         retry if the carry flag isn't valid.
10818         (rdrand<mode>_1): New.
10819
10820 2010-07-07  Richard Guenther  <rguenther@suse.de>
10821
10822         PR middle-end/44790
10823         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
10824         for expanding the constant offset for MEM_REFs.
10825
10826 2010-07-07  Richard Guenther  <rguenther@suse.de>
10827
10828         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
10829         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
10830         * gimple.h (is_gimple_operand): Remove.
10831         * gimple.c (is_gimple_operand): Likewise.
10832         (walk_gimple_op): Fix wi->val_only setting for calls.
10833         * tree-cfg.c (verify_gimple_call): Fix argument validation.
10834         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
10835         invalid gimple calls.
10836
10837 2010-07-06  Jan Hubicka  <jh@suse.cz>
10838
10839         * lto-cgraph.c (output_cgraph): Add missing declaration.
10840
10841 2010-07-06  Jan Hubicka  <jh@suse.cz>
10842
10843         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
10844         partition.
10845
10846 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
10847
10848         * doc/gimple.texi (GIMPLE_DEBUG): Document.
10849         * doc/rtl.texi (Debug Information): New node.
10850         (NOTE_INSN_VAR_LOCATION): Document.
10851         (debug_insn): Likewise.
10852         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
10853
10854 2010-07-07  Jan Hubicka  <jh@suse.cz>
10855
10856         With parts by Richard Guenther.
10857
10858         PR middle-end/44813
10859         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
10860         for functions passed by reference.
10861         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
10862         in memory when passed by reference.
10863         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
10864         beggining.
10865         * ipa-split.c (split_function): Cleanup way return value is passed;
10866         handle SSA DECL_BY_REFERENCE retvals.
10867         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
10868         DECL_BY_REFERENCE is set.
10869         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
10870         find_what_p_points_to): Handle RESULT_DECL.
10871         * tree-inline.c (declare_return_variable): Get new entry_block argument;
10872         when passing by reference ensure that RESULT_DECL is gimple_val.
10873         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
10874         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
10875
10876 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10877
10878         PR rtl-optimization/44787
10879         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
10880         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
10881
10882 2010-07-06  Jan Hubicka  <jh@suse.cz>
10883
10884         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
10885         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
10886         with body can prevail.
10887         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
10888         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
10889         * cgraph.c (cgraph_get_node_or_alias): New function.
10890         * cgraph.h (cgraph_get_node_or_alias): Declare.
10891
10892 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
10893
10894         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
10895         support.
10896         (ix86_expand_prologue): Likewise.
10897         (ix86_handle_fndecl_attribute): Likewise.
10898         (ix86_asm_declare_function_name): New function for
10899         ASM_DECLARE_FUNCTION_NAME.
10900         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
10901         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
10902         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
10903         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
10904         * doc/extend.texi: Adjust documentation about ms_hook_prologue
10905         attribute.
10906
10907 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10908
10909         * config/i386/i386.md (immediate_operand): New mode attribute.
10910
10911         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
10912         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
10913         using P mode iterator.
10914         (pro_epilogue_adjust_stack_di_2): Rename from
10915         pro_epilogue_adjust_stack_rex64_2.
10916
10917         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
10918
10919 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10920
10921         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
10922         through gen_mov_insv_1 function pointer.
10923         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
10924         gen_truncxf<mode>2 through gen_truncxf function pointer.
10925         (remainder<mode>3): Ditto.
10926         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
10927         (allocate_stack): Call gen_allocate_stack_worker_64 or
10928         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
10929         function pointer.
10930         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
10931         function pointer.
10932
10933 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10934
10935         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
10936         operand constraint instead of <r><i>m.
10937
10938 2010-07-06  Richard Guenther  <rguenther@suse.de>
10939
10940         PR middle-end/44828
10941         * convert.c (convert_to_integer): Watch out for overflowing
10942         MULT_EXPR as well.
10943
10944 2010-07-05  Jan Hubicka  <jh@suse.cz>
10945
10946         * lto-streamer.c (write_symbol_vec): Rename to ...
10947         (write_symbol) ... this one; write only symbol given and when
10948         present in cache. Sanity check that what is defined is present
10949         in cgraph/varpool with body/finalized decl.
10950         (write_symbols_of_kind): Remove.
10951         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
10952         pairs to produce symtab.
10953         (produce_asm_for_decls): Update call of produce_symtab; don't do so
10954         when doing WPA streaming.
10955
10956 2010-07-05  Jan Hubicka  <jh@suse.cz>
10957
10958         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
10959         function is still available to fold into.
10960
10961 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
10962
10963         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
10964         * function.h (struct_function): Change type of local_decls field
10965         to a VEC.
10966         (add_local_decl): New function.
10967         (FOR_EACH_LOCAL_DECL): New macro.
10968         * cfgexpand.c (init_vars_expansion): Adjust for new type of
10969         cfun->local_decls.
10970         (estimated_stack_frame_size): Likewise.
10971         (expand_used_vars): Likewise.
10972         * cgraphbuild.c (build_cgraph_edges): Likewise.
10973         * function.c (instantiate_decls_1): Likewise.
10974         * ipa-struct-reorg.c (build_data_structure): Likewise.
10975         * ipa-type-escape.c (analyze_function): Likewise.
10976         * lto-streamer-in.c (input_function): Likewise.
10977         * lto-streamer-out.c (output_function): Likewise.
10978         * tree-ssa-live.c (remove_unused_locals): Likewise.
10979         * tree.c (free_lang_data_in_decl): Likewise.
10980         (find_decls_types_in_node): Likewise.
10981         * omp-low.c (remove_exit_barrier): Likewise.
10982         (expand_omp_taskreg): Likewise.
10983         (list2chain): Rename to...
10984         (vec2chain): ...this.  Adjust.
10985         * cgraphunit.c (assemble_thunk): Call add_local_decl.
10986         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
10987         * gimple-low.c (record_vars_into): Likewise.
10988         * tree-inline.c (remap_decls): Likewise.
10989         (declare_return_variable): Likewise.
10990         (declare_inline_vars): Likewise.
10991         (copy_forbidden): Adjust for new type of cfun->local_decls.
10992         (add_local_variables): New function.
10993         (expand_call_inline): Call it.
10994         (tree_function_versioning): Likewise.
10995
10996 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
10997
10998         AVX Programming Reference (June, 2010)
10999         * config/i386/cpuid.h (bit_F16C): New.
11000         (bit_RDRND): Likewise.
11001         (bit_FSGSBASE): Likewise.
11002
11003         * config/i386/i386-builtin-types.def: Add
11004         "DEF_FUNCTION_TYPE (UINT16)", function types for
11005         float16 <-> float conversions and
11006         "DEF_FUNCTION_TYPE (VOID, UINT64)".
11007
11008         * config/i386/i386-c.c (ix86_target_macros_internal): Support
11009         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
11010         OPTION_MASK_ISA_F16C.
11011
11012         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
11013         (OPTION_MASK_ISA_RDRND_SET): Likewise.
11014         (OPTION_MASK_ISA_F16C_SET): Likewise.
11015         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
11016         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
11017         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
11018         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
11019         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
11020         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
11021         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
11022         (override_options): Handle them.
11023         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
11024         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
11025         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
11026         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
11027         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
11028         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
11029         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
11030         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
11031         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
11032         (bdesc_args): Likewise.
11033         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
11034         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
11035         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
11036         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
11037         Handle non-memory store.
11038
11039         * config/i386/i386.h (TARGET_FSGSBASE): New.
11040         (TARGET_RDRND): Likewise.
11041         (TARGET_F12C): Likewise.
11042
11043         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
11044         (UNSPEC_VCVTPS2PH): Likewise.
11045         (UNSPECV_RDFSBASE): Likewise.
11046         (UNSPECV_RDGSBASE): Likewise.
11047         (UNSPECV_WRFSBASE): Likewise.
11048         (UNSPECV_WRGSBASE): Likewise.
11049         (UNSPECV_RDRAND): Likewise.
11050         (rdfsbase<mode>): Likewise.
11051         (rdgsbase<mode>): Likewise.
11052         (wrfsbase<mode>): Likewise.
11053         (wrgsbase<mode>): Likewise.
11054         (rdrand<mode>): Likewise.
11055
11056         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
11057
11058         * config/i386/immintrin.h (_rdrand_u16): New.
11059         (_rdrand_u32): Likewise.
11060         (_readfsbase_u32): Likewise.
11061         (_readfsbase_u64): Likewise.
11062         (_readgsbase_u32): Likewise.
11063         (_readgsbase_u64): Likewise.
11064         (_writefsbase_u32): Likewise.
11065         (_writefsbase_u64): Likewise.
11066         (_writegsbase_u32): Likewise.
11067         (_writegsbase_u64): Likewise.
11068         (_rdrand_u64): Likewise.
11069         (_cvtsh_ss): Likewise.
11070         (_mm_cvtph_ps): Likewise.
11071         (_mm256_cvtph_ps): Likewise.
11072         (_cvtss_sh): Likewise.
11073         (_mm_cvtps_ph): Likewise.
11074         (_mm256_cvtps_ph): Likewise.
11075
11076         * config/i386/sse.md (vcvtph2ps): New.
11077         (*vcvtph2ps_load): Likewise.
11078         (vcvtph2ps256): Likewise.
11079         (vcvtps2ph): Likewise.
11080         (*vcvtps2ph): Likewise.
11081         (*vcvtps2ph_store): Likewise.
11082         (vcvtps2ph256): Likewise.
11083
11084         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
11085
11086         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
11087
11088 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
11089
11090         PR bootstrap/44512
11091         * genenums.c (main): Output include of insn-constants.h
11092         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
11093
11094 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
11095
11096         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
11097         (override_options): Initialize it.
11098         (ix86_expand_prologue): Use it.
11099
11100 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
11101
11102         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
11103
11104 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
11105
11106         * double-int.h (fit_double_type): Remove declaration.
11107         * double-int.c (fit_double_type): Remove function.
11108         * tree.h (int_fits_type_p): Adjust prototype.
11109         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
11110         instead of fit_double_type.
11111         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
11112         instead of fit_double_type and build_int_cst_wide.
11113         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
11114         instead of fit_double_type and build_int_cst_wide.
11115         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
11116         of fit_double_type.
11117
11118 2010-07-05  Jan Hubicka  <jh@suse.cz>
11119
11120         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
11121         in_other_partition.
11122         * lto-cgraph.c (referenced_from_other_partition_p,
11123         reachable_from_other_partition_p): Use in_other_partition flags.
11124         (output_node, output_varpool_node): COMDAT nodes always have private
11125         copies and thus are never used from other partition.
11126
11127 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
11128
11129         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
11130         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
11131         * config/ia64/ia64.c Include reload.h.
11132         (ia64_memory_move_cost): New function.
11133         (TARGET_MEMORY_MOVE_COST): Define.
11134         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
11135         memory_move_cost.
11136
11137 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
11138
11139         PR middle-end/42505
11140         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
11141         comments about cost model.
11142         (try_add_cand_for):  Add second strategy for choosing initial set
11143         based on original IVs, controlled by ORIGINALP argument.
11144         (get_initial_solution): Add ORIGINALP argument.
11145         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
11146         (find_optimal_iv_set): Try two different strategies for choosing
11147         the IV set, and return the one with lower cost.
11148
11149 2010-07-05  Richard Guenther  <rguenther@suse.de>
11150
11151         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
11152
11153 2010-07-05  Richard Guenther  <rguenther@suse.de>
11154
11155         * tree.c (reference_alias_ptr_type): New function.
11156         * tree.h (reference_alias_ptr_type): Declare.
11157         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
11158         allow non-TARGET_MEM_REF new refs.
11159         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
11160         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
11161         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
11162         (create_mem_ref): Get alias pointer type.  Adjust calls to
11163         create_mem_ref_raw.
11164         (maybe_fold_tmr): Likewise.
11165         * tree-flow.h (create_mem_ref): Adjust prototype.
11166
11167 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
11168
11169         PR c++/44808
11170         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
11171         *from_p is VAR_DECL.
11172
11173 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
11174
11175         * tree.h (build_call_list): Remove.
11176         * tree.c (build_call_list): Remove.
11177
11178 2010-07-05  Richard Guenther  <rguenther@suse.de>
11179
11180         * double-int.h (double_int_sub): Declare.
11181         * double-int.c (double_int_sub): New function.
11182         * dwarf2out.c (field_byte_offset): Use it.
11183         * fixed-value.c (do_fixed_add): Likewise.
11184         (do_fixed_multiply): Likewise.
11185         (do_fixed_divide): Likewise.
11186         * tree-predcom.c (add_ref_to_chain): Likewise.
11187         (determine_roots_comp): Likewise.
11188         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
11189
11190 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
11191
11192         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
11193         implementations.
11194
11195 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
11196
11197         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
11198         * arm-modes.def (CC_NOTB): Don't define.
11199         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
11200         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
11201         (LTUGEU): New code_iterator.
11202         (cnb, optab): New corresponding code_attrs.
11203         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
11204         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
11205         using LTUGEU.
11206         (addsi3_carryin_shift_<optab>): Likewise.
11207         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
11208         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
11209         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
11210         (subsi3_compare): Renamed from subsi3_compare0_c.
11211         Change CC_NOTB to CC.
11212         (arm_subsi3_insn): Allow constants for operand 0.
11213         (compare_scc peephole for eq case): New.
11214         (compare_scc splitters): Change CC_NOTB to CC.
11215
11216 2010-07-05  Richard Guenther  <rguenther@suse.de>
11217
11218         * tree-ssa-loop-im.c (for_each_index): Do not handle
11219         ALIGN_INDIRECT_REF.
11220         (gen_lsm_tmp_name): Likewise.
11221         * tree-dump.c (dequeue_and_dump): Likewise.
11222         * tree-pretty-print.c (dump_generic_node): Likewise.
11223         (op_code_prio): Likewise.
11224         (op_symbol_code): Likewise.
11225         * tree.c (staticp): Likewise.
11226         (build1_stat): Likewise.
11227         * tree.h (INDIRECT_REF_P): Likewise.
11228         * fold-const.c (maybe_lvalue_p): Likewise.
11229         (operand_equal_p): Likewise.
11230         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11231         (ao_ref_init_from_vn_reference): Likewise.
11232         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11233         (find_interesting_uses_address): Likewise.
11234         * dwarf2out.c (loc_list_from_tree): Likewise.
11235         * gimplify.c (gimplify_expr): Likewise.
11236         * tree-eh.c (tree_could_trap_p): Likewise.
11237         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11238         * cfgexpand.c (expand_debug_expr): Likewise.
11239         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11240         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11241         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11242         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
11243         * tree-ssa-operands.c (get_expr_operands): Likewise.
11244         * expr.c (safe_from_p): Likewise.
11245         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
11246         * tree-vect-data-refs.c (vect_setup_realignment): Build
11247         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
11248         * tree-vect-stmts.c (vectorizable_load): Likewise.
11249         * tree.def (ALIGN_INDIRECT_REF): Remove.
11250
11251 2010-07-05  Richard Guenther  <rguenther@suse.de>
11252
11253         PR tree-optimization/44784
11254         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
11255         for inserted stmts.
11256         (find_or_generate_expression): Fix SCCVN insertion check.
11257
11258 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
11259
11260         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
11261         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
11262         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
11263         directives.
11264
11265 2010-07-05  Ira Rosen  <irar@il.ibm.com>
11266
11267         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
11268         statements that are not vectorized.
11269         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
11270         in INSIDE_COST.
11271
11272 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
11273
11274         PR bootstrap/44820
11275         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
11276
11277 2010-07-05  Richard Guenther  <rguenther@suse.de>
11278
11279         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
11280         RESULT_DECLs properly.
11281
11282 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
11283
11284         PR rtl-optimization/44695
11285         * config/i386/i386.md (extract_code): Removed.
11286         (<u>divmodqi4): Likewise.
11287         (divmodqi4): New.
11288         (udivmodqi4): Likewise.
11289         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
11290         (udivmodhiqi3): Likewise.
11291
11292 2010-07-04  Jan Hubicka  <jh@suse.cz>
11293
11294         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
11295
11296 2010-07-04  Jan Hubicka  <jh@suse.cz>
11297
11298         * cgraphunit.c (init_cgraph): Only initialize dump file if it
11299         is not already initialized.
11300
11301 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11302
11303         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
11304         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
11305         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
11306         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
11307         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
11308         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
11309         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
11310         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
11311         (sync_new_nand_optab): Redefine as macros.
11312         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
11313         Delete.
11314         (direct_optab_index): New enum.
11315         (direct_optab_d): New structure.
11316         (direct_optab): New typedef.
11317         (direct_optab_table): Declare.
11318         (direct_optab_handler, set_direct_optab_handler): New functions.
11319         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
11320         (sync_lock_release_optab): New macros.
11321         * optabs.c (direct_optab_table): New variable.
11322         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
11323         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
11324         cmpstr_optab and cmpstrn_optab.
11325         (emit_conditional_move): Likewise for movcc_optab.
11326         (can_conditionally_move_p): Likewise for movcc_gen_code.
11327         (init_insn_codes): Clear direct_optab_table.
11328         (init_optabs): Don't initialize the new "direct optabs" here.
11329         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
11330         vcond_gen_code.
11331         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
11332         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
11333         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
11334         (expand_sync_operation): Likewise other sync_*_optabs.
11335         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
11336         to sync_compare_and_swap_optab.
11337         (expand_sync_lock_test_and_set): Use direct_optab_handler for
11338         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
11339         to the names of both.
11340         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
11341         cmpstr_optab and cmpstrn_optab.
11342         (expand_builtin_lock_release): Likewise sync_lock_release.
11343         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
11344         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
11345         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
11346         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
11347         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
11348         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
11349         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
11350         (sync_lock_test_and_set, sync_lock_release): Delete.
11351         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
11352         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
11353         * genopinit.c (optabs): Use set_direct_optab_handler for the new
11354         macro optabs.
11355         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
11356         the "optab" local variable.  Use direct_optab_handler for optab and
11357         sync_compare_and_swap_optab.
11358         * reload1.c (reload_in_optab, reload_out_optab): Delete.
11359         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
11360         reload_in_optab and reload_out_optab.
11361         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
11362         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
11363         * config/pa/pa.c (pa_secondary_reload): Likewise.
11364         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
11365         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
11366         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
11367         (VMSupportsCS8_builtin): Likewise.
11368
11369 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11370
11371         * optabs.h (optab_handlers): Change type of insn_code to int.
11372         (optab_handler, set_optab_handler, convert_optab_handler)
11373         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
11374         CODE_FOR_nothing".
11375         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
11376         (init_insn_codes): Zero both the above arrays.
11377         (init_optabs): Never call init_insn_codes first time around.
11378
11379 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11380
11381         * optabs.h (optab_handler, convert_optab_handler): Turn into
11382         inline functions that return an insn code.
11383         (set_optab_handler, set_convert_optab_handler): New functions.
11384         * builtins.c: Replace optab_handler(X)->insn_code with
11385         optab_handler or set_optab_handler thoughout.  Likewise
11386         convert_optab_handler(X)->insn_code with convert_optab_handler
11387         and set_convert_optab_handler.
11388         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
11389         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
11390         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
11391         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
11392         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
11393         config/spu/spu.c: Likewise.
11394
11395 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11396
11397         PR target/44531
11398         * config.gcc (sh*-*-*): Use regular expressions instead of
11399         the 'i' modifier for sed substitutions.
11400
11401 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
11402
11403         * gimple.c (gimple_body): Comments added.
11404
11405 2010-07-04  Richard Guenther  <rguenther@suse.de>
11406
11407         PR middle-end/44809
11408         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
11409         of an INDIRECT_REF.
11410
11411 2010-07-04  Richard Guenther  <rguenther@suse.de>
11412
11413         PR tree-optimization/44479
11414         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
11415         extra SSA name copy statements which preserves points-to
11416         information.
11417         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
11418         Copy points-to information for all pointers.  Properly handle
11419         MEM_REFs.
11420         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
11421         copy statements.
11422         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
11423         dependency.
11424
11425 2010-07-04  Richard Guenther  <rguenther@suse.de>
11426
11427         PR middle-end/44785
11428         * tree-inline.c (initialize_inlined_parameters): Do not
11429         re-use pointer-map slot over remap_type call.
11430
11431 2010-07-04  Richard Guenther  <rguenther@suse.de>
11432
11433         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
11434
11435 2010-07-04  Richard Guenther  <rguenther@suse.de>
11436
11437         PR tree-optimization/44656
11438         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
11439         again after value-replacing in the defintions lhs.
11440
11441 2010-07-04  Ira Rosen  <irar@il.ibm.com>
11442             Revital Eres  <eres@il.ibm.com>
11443
11444         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
11445         Document new arguments.
11446         * doc/tm.texi: Regenerate.
11447         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
11448         Handle unaligned store.
11449         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
11450         * target.def (builtin_vectorization_cost): Add new arguments.
11451         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
11452         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
11453         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
11454         (vect_vfa_segment_size): Fix indentation.
11455         * tree-vectorizer.h (struct _vect_peel_info): New.
11456         (struct _vect_peel_extended_info): New.
11457         (struct _loop_vec_info): Add new field for peeling hash table and a
11458         macro for its access.
11459         (VECT_MAX_COST): Define.
11460         (vect_get_load_cost): Declare.
11461         (vect_get_store_cost, vect_get_known_peeling_cost,
11462         vect_get_single_scalar_iteraion_cost): Likewise.
11463         (vect_supportable_dr_alignment): Add new argument.
11464         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
11465         field.
11466         (destroy_loop_vec_info): Free peeling hash table.
11467         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
11468         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
11469         vect_analyze_slp. Fix indentation.
11470         (vect_get_single_scalar_iteraion_cost): New function.
11471         (vect_get_known_peeling_cost): Likewise.
11472         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
11473         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
11474         statement. Move outside cost calculation inside unknown peeling case.
11475         Call vect_get_known_peeling_cost for known amount of peeling.
11476         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
11477         reference to the print message of forced alignment.
11478         (vect_verify_datarefs_alignment): Update call to
11479         vect_supportable_dr_alignment.
11480         (vect_get_data_access_cost): New function.
11481         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
11482         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
11483         vect_peeling_hash_choose_best_peeling): Likewise.
11484         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
11485         to store all the accesses in the loop and find best possible access to
11486         align using peeling for known alignment case. For unknown alignment
11487         check if stores are preferred or if peeling is worthy.
11488         (vect_find_same_alignment_drs): Analyze pairs of loads too.
11489         (vect_supportable_dr_alignment): Add new argument and check aligned
11490         accesses according to it.
11491         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
11492         (cost_for_stmt): Call vect_get_stmt_cost.
11493         (vect_model_simple_cost): Likewise.
11494         (vect_model_store_cost): Call vect_get_stmt_cost. Call
11495         vect_get_store_cost to calculate the cost of the statement.
11496         (vect_get_store_cost): New function.
11497         (vect_model_load_cost): Call vect_get_stmt_cost. Call
11498         vect_get_load_cost to calculate the cost of the statement.
11499         (vect_get_load_cost): New function.
11500         (vectorizable_store): Update call to vect_supportable_dr_alignment.
11501         (vectorizable_load): Likewise.
11502         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
11503         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
11504         arguments. Handle unaligned store.
11505         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
11506         (rs6000_builtin_support_vector_misalignment): Return true for word and
11507         double word alignments for VSX.
11508         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
11509         vect_supportable_dr_alignment and builtin_vectorization_cost.
11510
11511 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11512
11513         PR target/44597
11514         * config/pa/predicates.md (prefetch_cc_operand): Remove.
11515         (prefetch_nocc_operand): Likewise.
11516         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
11517         (prefetch_20): New insn.
11518         (prefetch_cc): Remove.
11519         (prefetch_nocc): Likewise.
11520
11521 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11522
11523         * expr.c (vector_mode_valid_p): Move to c-common.c.
11524         * expr.h (vector_mode_valid_p): Do not declare here.
11525         * system.h: Poison GCC_EXPR_H in front-ends.
11526         * Makefile.in: Update dependencies.
11527
11528 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11529
11530         PR target/44705
11531         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
11532
11533 2010-07-03  Jan Hubicka  <jh@suse.cz>
11534
11535         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
11536         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
11537         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
11538         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
11539         Likewise.
11540
11541         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
11542         Update timevars.V
11543         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
11544         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
11545         TV_IPA_LTO_DECL_OUT): New.
11546         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
11547
11548 2010-07-03  Jan Hubicka  <jh@suse.cz>
11549
11550         * ipa-inline.c (update_edge_key): Break out from ...
11551         update_callers_keys): ... here;
11552         (update_callee_keys): Update only the edges from caller to callee.
11553         (update_all_calle_keys): Do what update_calle_keys did.
11554         (decide_inlining_of_small_functions): Avoid recomputing of all
11555         callees when badness increase.
11556
11557 2010-07-03  Jie Zhang  <jie@codesourcery.com>
11558
11559         * config/arm/arm.c (arm_attr_length_move_neon): New.
11560         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
11561         * config/arm/neon.md (define_mode_attr V_slen): Remove.
11562         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
11563         to compute length attribute.
11564
11565 2010-07-03  Jie Zhang  <jie@codesourcery.com>
11566
11567         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
11568         as predicate for operand 1 and remove its constraint.
11569         * config/arm/predicates.md (vfp_register_operand): New.
11570         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
11571         (*push_fp_multi): Likewise.
11572
11573 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
11574
11575         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
11576
11577 2010-07-03  Jan Hubicka  <jh@suse.cz>
11578
11579         * config/i386/i386.c (override_options): Revert accidental commit.
11580
11581 2010-07-02  Le-Chun Wu  <lcwu@google.com>
11582
11583         PR c++/44128
11584         * doc/invoke.texi: Update documentation of -Wshadow.
11585
11586 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
11587             Julian Brown  <julian@codesourcery.com>
11588             Sandra Loosemore  <sandra@codesourcery.com>
11589
11590         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
11591         comparisons.  Adjust to take both operands.
11592         (arm_select_cc_mode): Handle DImode comparisons.
11593         (arm_gen_compare_reg): Generate a scratch register for DImode
11594         comparisons which require one.  Use xor for Thumb equality checks.
11595         (arm_const_double_by_immediates): New.
11596         (arm_print_operand): Allow 'Q' and 'R' for constants.
11597         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
11598         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
11599         arm_canonicalize_comparison.
11600         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
11601         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
11602         prototype.
11603         (arm_const_double_by_immediates): Declare.
11604         * config/arm/constraints.md (Di): New constraint.
11605         * config/arm/predicates.md (arm_immediate_di_operand)
11606         (arm_di_operand, cmpdi_operand): New.
11607         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
11608         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
11609         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
11610         (cstoredi4): Handle non-Cirrus also.
11611
11612 2010-07-02  Julian Brown  <julian@codesourcery.com>
11613             Sandra Loosemore  <sandra@codesourcery.com>
11614
11615         PR target/43703
11616         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
11617         (smax<mode>3): Disable for NEON float modes when
11618         flag_unsafe_math_optimizations is false.
11619         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
11620         (*mul<mode>3_neon)
11621         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
11622         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
11623         for NEON float modes when flag_unsafe_math_optimizations is false.
11624         (quad_halves_<code>v4sf): Only enable if
11625         flag_unsafe_math_optimizations is true.
11626         * doc/invoke.texi (ARM Options): Add note about floating point
11627         vectorization requiring -funsafe-math-optimizations.
11628
11629 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11630             Julian Brown  <julian@codesourcery.com>
11631
11632         * config/arm/neon.md (UNSPEC_VABA): Delete.
11633         (UNSPEC_VABAL): Delete.
11634         (UNSPEC_VABS): Delete.
11635         (UNSPEC_VMUL_N): Delete.
11636         (adddi3_neon): New.
11637         (subdi3_neon): New.
11638         (mul<mode>3add<mode>_neon): Make the pattern named.
11639         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
11640         (neon_vadd<mode>): Replace with define_expand, and move the remaining
11641         unspec parts...
11642         (neon_vadd<mode>_unspec): ...to this.
11643         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
11644         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
11645         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
11646         (neon_vaba<mode>): Rewrite in terms of vabd.
11647         (neon_vabal<mode>): Rewrite in terms of vabdl.
11648         (neon_vabs<mode>): Rewrite without unspec.
11649         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
11650         (*arm_subdi3): Likewise.
11651         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
11652         No_op attribute to disable assembly output checks.
11653         * config/arm/arm_neon.h: Regenerated.
11654         * doc/arm-neon-intrinsics.texi: Regenerated.
11655
11656 2010-07-02  Jan Hubicka  <jh@suse.cz>
11657
11658         * ipa-split.c (split_function): For aggregate values, set the return
11659         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
11660         *<retval> = fncall.part ().
11661         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
11662
11663 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11664
11665         * config/arm/neon.md (UNSPEC_VAND): Delete.
11666         (UNSPEC_VBIC): Delete.
11667         (UNSPEC_VCLZ): Delete.
11668         (UNSPEC_VCNT): Delete.
11669         (UNSPEC_VEOR): Delete.
11670         (UNSPEC_VORN): Delete.
11671         (UNSPEC_VORR): Delete.
11672         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
11673         core registers too.
11674         (anddi3_neon): Likewise.
11675         (orndi3_neon): Likewise.
11676         (bicdi3_neon): Likewise.
11677         (xordi3_neon): Likewise.
11678         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
11679         rid of unspec and handle unused operand.
11680         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
11681         * config/arm/predicates.md (imm_for_neon_logic_operand):
11682         Require TARGET_NEON.
11683         (imm_for_neon_inv_logic_operand): Likewise.
11684         * config/arm/arm.md (define_split for logical_binary_operator):
11685         Disable for NEON registers.
11686         (anddi3): Add new define_expand, and rename the insn.  Disable
11687         this insn for NEON, where anddi3_neon now applies.
11688         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
11689         (iordi3): As for anddi3.
11690         (xordi3): Likewise.
11691         * config/arm/neon.ml (Vand): Split DImode variants and mark them
11692         as No_op to disable testing for exact instruction match.
11693         (Vorr): Likewise.
11694         (Veor): Likewise.
11695         (Vbic): Likewise.
11696         (Vorn): Likewise.
11697         * config/arm/arm_neon.h: Regenerated.
11698         * doc/arm-neon-intrinsics.texi: Regenerated.
11699
11700 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11701
11702         * expr.h (emit_stack_probe): Declare.
11703         * explow.c (emit_stack_probe): Make global.
11704         (anti_adjust_stack_and_probe): Fix comments.
11705         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
11706         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11707         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11708         * config/sparc/sparc.c: Include except.h.
11709         (sparc_emit_probe_stack_range): New function.
11710         (output_probe_stack_range): Likewise.
11711         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
11712         built-in stack checking is enabled.
11713         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
11714         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
11715         (probe_stack_range): New insn.
11716
11717 2010-07-02  Richard Guenther  <rguenther@suse.de>
11718
11719         PR target/43958
11720         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
11721         for argument alignment.
11722
11723 2010-07-02  Jan Hubicka  <jh@suse.cz>
11724
11725         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
11726         walk backwards from entry_bb to check only those basic block of header
11727         that might lead to execution of split part.
11728         (consider_split) ... here.
11729         (find_return_bb): Allow assignment in return BB.
11730         (find_retval): New.
11731         (split_function): Fix name of cloned function; take care of updating
11732         return value in return_bb containing move.
11733
11734 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
11735
11736         PR target/44771
11737         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
11738         used variable insn.
11739
11740 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11741
11742         * implicit-zee.c (combine_reaching_defs): Fix long lines.
11743         (is_set_with_extension_DI): Delete.
11744         (struct zero_extend_info): New structure.
11745         (add_removable_zero_extend): New function.
11746         (find_removable_zero_extends): Use note_stores to find SETs.
11747         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
11748
11749 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
11750
11751         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
11752         is_miss_rate_acceptable. Pull total_positions computation
11753         out of the loops.  Early return if miss_positions exceeds
11754         the acceptable threshold.
11755         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
11756         is_miss_rate_acceptable after renaming of compute_miss_rate.
11757
11758 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
11759
11760         PR middle-end/44576
11761         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
11762         of 1000) for miss rate if the address diference is greater than or
11763         equal to the cache line size (the two reference will never hit the
11764         same cache line).
11765
11766 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
11767
11768         PR target/42835
11769         * config/arm/arm-modes.def (CC_NOTB): New mode.
11770         * config/arm/arm.c (get_arm_condition_code): Handle it.
11771         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
11772         * config/arm/arm.md (subsi3_compare0_c): New pattern.
11773         (compare_scc): Now a define_and_split.  Add a number of extra
11774         splitters before it.
11775
11776         PR target/42172
11777         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
11778         and ZERO_EXTEND.
11779         (arm_rtx_costs_1): Likewise.
11780         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
11781         * config/arm/arm.md (is_arch6): New attribute.
11782         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
11783         extendqisi2): Tighten the code somewhat, avoiding invalid
11784         RTL to occur in the expander patterns.
11785         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
11786         (thumb1_zero_extendhisi2_v6): Delete.
11787         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
11788         (thumb1_extendhisi2_v6): Delete.
11789         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
11790         (thumb1_extendqisi2_v6): Delete.
11791         (zero_extendhisi2 for register input splitter): New.
11792         (zero_extendqisi2 for register input splitter): New.
11793         (thumb1_extendhisi2 for register input splitter): New.
11794         (extendhisi2 for register input splitter): New.
11795         (extendqisi2 for register input splitter): New.
11796         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
11797         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
11798         and add support for a register alternative requiring a split.
11799         (thumb1_zero_extendqisi2): Likewise.
11800         (arm_zero_extendqisi2): Likewise.
11801         (arm_extendhisi2): Likewise.
11802         (arm_extendqisi2): Likewise.
11803
11804 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11805
11806         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
11807         instead of an unspec.
11808         (neon_expand_vector_init): Likewise.
11809         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
11810         (UNSPEC_VDUP_LANE): Delete.
11811         (UNSPEC VDUP_N): Delete.
11812         (UNSPEC_VGET_HIGH): Delete.
11813         (UNSPEC_VGET_LANE): Delete.
11814         (UNSPEC_VGET_LOW): Delete.
11815         (UNSPEC_VMVN): Delete.
11816         (UNSPEC_VSET_LANE): Delete.
11817         (V_double_vector_mode): New.
11818         (vec_set<mode>_internal): Make code emitted match that for the
11819         corresponding intrinsics.
11820         (vec_setv2di_internal): Likewise.
11821         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
11822         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
11823         (neon_vset_lane<mode>): Combine double and quad patterns and
11824         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
11825         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
11826         (neon_vdup_n<mode>): Rewrite RTL without unspec.
11827         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
11828         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
11829         with neon_vdup_lanev2di, adjusting the pattern from the latter
11830         to be predicable for consistency.
11831         (neon_vdup_lane<mode>_internal): New.
11832         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
11833         to avoid using an unspec.
11834         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
11835         (neon_vdup_lanev2di): Turn into a define_expand.
11836         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
11837         (neon_vget_high<mode>): Replace with....
11838         (neon_vget_highv16qi): New pattern using canonical RTL.
11839         (neon_vget_highv8hi): Likewise.
11840         (neon_vget_highv4si): Likewise.
11841         (neon_vget_highv4sf): Likewise.
11842         (neon_vget_highv2di): Likewise.
11843         (neon_vget_low<mode>): Replace with....
11844         (neon_vget_lowv16qi): New pattern using canonical RTL.
11845         (neon_vget_lowv8hi): Likewise.
11846         (neon_vget_lowv4si): Likewise.
11847         (neon_vget_lowv4sf): Likewise.
11848         (neon_vget_lowv2di): Likewise.
11849
11850         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
11851         test for this emitting vmov.
11852         (Vset_lane): Likewise.
11853         (Vdup_n): Likewise.
11854         (Vmov_n): Likewise.
11855
11856         * doc/arm-neon-intrinsics.texi: Regenerated.
11857
11858 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11859
11860         * config/arm/neon.md (vec_extractv2di): Correct error in register
11861         numbering to reconcile with neon_vget_lanev2di.
11862
11863 2010-07-02  Richard Guenther  <rguenther@suse.de>
11864
11865         * tree-ssa-structalias.c (pt_solution_set_var): New function.
11866         * tree-ssa-alias.h (pt_solution_set_var): Declare.
11867         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
11868         points-to information.
11869
11870 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
11871
11872         * config/s390/s390.c (override_options): Adopt prefetching
11873         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
11874
11875 2010-07-02  Jan Hubicka  <jh@suse.cz>
11876
11877         * df-problems.c (df_kill_notes): Do not collect dead  notes.
11878         (df_set_note): Just call add_reg_note.
11879         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
11880         df_create_unused_note): Do not deal with lists of old notes.
11881         (df_note_bb_compute): Likewise.
11882
11883 2010-07-02  Richard Guenther  <rguenther@suse.de>
11884
11885         * tree-ssa-structalias.c (find_func_aliases): Handle
11886         pointer alignment via BIT_AND_EXPR.
11887         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
11888
11889 2010-07-02  Richard Guenther  <rguenther@suse.de>
11890
11891         * tree-data-ref.c (initialize_data_dependence_relation): Handle
11892         mismatching number of dimensions properly.
11893
11894 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11895
11896         PR target/44707
11897         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
11898         (lo_sum (high ...) ...) patterns generated by earlier passes.
11899
11900 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11901
11902         * doc/install.texi (Prerequisites): Document Perl requirement on
11903         Solaris 2.
11904         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
11905
11906 2010-07-02  Richard Guenther  <rguenther@suse.de>
11907
11908         PR middle-end/44777
11909         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
11910
11911 2010-07-02  Jan Hubicka  <jh@suse.cz>
11912
11913         PR middle-end/44706
11914         * predict.c (predict_paths_for_bb): Handle case when control dependence
11915         BB has only abnormal edges.
11916
11917 2010-07-02  Richard Guenther  <rguenther@suse.de>
11918
11919         PR tree-optimization/44748
11920         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
11921         the embedded conversion in MEM_REFs.
11922
11923 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
11924
11925         * reload.c: Include toplev.h.
11926         * recog.c:  Likewise.
11927         * Makefile.in: Adjust dependencies.
11928
11929 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
11930
11931         PR debug/44694
11932         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
11933         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
11934
11935 2010-07-01  Richard Guenther  <rguenther@suse.de>
11936
11937         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
11938         types for offsets.
11939
11940 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11941
11942         PR target/44732
11943         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
11944         Fix argument types.
11945
11946 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
11947
11948         PR target/44727
11949         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
11950         Make sure operand 0 dies.
11951
11952 2010-07-01  Richard Guenther  <rguenther@suse.de>
11953
11954         PR middle-end/42834
11955         PR middle-end/44468
11956         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
11957         * doc/generic.texi (References to storage): Document MEM_REF.
11958         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
11959         (print_call_name): Likewise.
11960         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
11961         (build_simple_mem_ref_loc): New function.
11962         (mem_ref_offset): Likewise.
11963         * tree.h (build_simple_mem_ref_loc): Declare.
11964         (build_simple_mem_ref): Define.
11965         (mem_ref_offset): Declare.
11966         * fold-const.c: Include tree-flow.h.
11967         (operand_equal_p): Handle MEM_REF.
11968         (build_fold_addr_expr_with_type_loc): Likewise.
11969         (fold_comparison): Likewise.
11970         (fold_unary_loc): Fold
11971         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
11972         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
11973         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
11974         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
11975         (ptr_deref_may_alias_ref_p_1): Likewise.
11976         (ao_ref_base_alias_set): Properly differentiate base object for
11977         offset and TBAA.
11978         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
11979         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
11980         (indirect_refs_may_alias_p): Likewise.
11981         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
11982         chasing code.
11983         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
11984         (call_may_clobber_ref_p_1): Likewise.
11985         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
11986         * expr.c (expand_assignment): Handle MEM_REF.
11987         (store_expr): Handle MEM_REFs from STRING_CSTs.
11988         (store_field): If expanding a MEM_REF of a non-addressable
11989         decl use bitfield operations.
11990         (get_inner_reference): Handle MEM_REF.
11991         (expand_expr_addr_expr_1): Likewise.
11992         (expand_expr_real_1): Likewise.
11993         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
11994         * alias.c (ao_ref_from_mem): Handle MEM_REF.
11995         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
11996         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
11997         (dr_analyze_indices): Likewise.
11998         (dr_analyze_alias): Likewise.
11999         (object_address_invariant_in_loop_p): Likewise.
12000         * gimplify.c (mark_addressable): Handle MEM_REF.
12001         (gimplify_cond_expr): Build MEM_REFs.
12002         (gimplify_modify_expr_to_memcpy): Likewise.
12003         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
12004         (gimple_fold_indirect_ref): Adjust.
12005         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
12006         * tree.def (MEM_REF): New tree code.
12007         * tree-dfa.c: Include toplev.h.
12008         (get_ref_base_and_extent): Handle MEM_REF.
12009         (get_addr_base_and_unit_offset): New function.
12010         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
12011         * gimple-fold.c (may_propagate_address_into_dereference): Handle
12012         MEM_REF.
12013         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
12014         accesses if the array has just one dimension.  Remove always true
12015         parameter.  Do not require type compatibility here.
12016         (maybe_fold_offset_to_component_ref): Remove.
12017         (maybe_fold_stmt_indirect): Remove.
12018         (maybe_fold_reference): Remove INDIRECT_REF handling.
12019         Fold back to non-MEM_REF.
12020         (maybe_fold_offset_to_address): Simplify.  Deal with type
12021         mismatches here.
12022         (maybe_fold_reference): Likewise.
12023         (maybe_fold_stmt_addition): Likewise.  Also handle
12024         &ARRAY + I in addition to &ARRAY[0] + I.
12025         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
12026         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
12027         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
12028         * tree-ssa.c (useless_type_conversion_p): Make most pointer
12029         conversions useless.
12030         (warn_uninitialized_var): Handle MEM_REF.
12031         (maybe_rewrite_mem_ref_base): New function.
12032         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
12033         to SSA form.
12034         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
12035         INDIRECT_REF handling.
12036         (copy_tree_body_r): Handle MEM_REF.
12037         * gimple.c (is_gimple_addressable): Adjust.
12038         (is_gimple_address): Likewise.
12039         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
12040         invariant base are invariant.
12041         (is_gimple_min_lval): Adjust.
12042         (is_gimple_mem_ref_addr): New function.
12043         (get_base_address): Handle MEM_REF.
12044         (count_ptr_derefs): Likewise.
12045         (get_base_loadstore): Likewise.
12046         * gimple.h (is_gimple_mem_ref_addr): Declare.
12047         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
12048         * tree-cfg.c (verify_address): New function, split out from ...
12049         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
12050         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
12051         INDIRECT_REFs.
12052         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
12053         INDIRECT_REF.  Allow conversions.
12054         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
12055         a register does not change its size.
12056         (verify_types_in_gimple_reference): Verify MEM_REF.
12057         (verify_gimple_assign_single): Disallow INDIRECT_REF.
12058         Handle MEM_REF.
12059         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
12060         New.
12061         (mark_address_taken): Handle MEM_REF.
12062         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
12063         (get_asm_expr_operands): Pass opf_not_non_addressable.
12064         (get_expr_operands): Handle opf_[not_]non_addressable.
12065         Handle MEM_REF.  Remove INDIRECT_REF handling.
12066         * tree-vrp.c (check_array_ref): Handle MEM_REF.
12067         (search_for_addr_array): Likewise.
12068         (check_array_bounds): Likewise.
12069         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
12070         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
12071         (ref_always_accessed_p): Likewise.
12072         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
12073         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
12074         Handle MEM_REF.
12075         * cgraphbuild.c (mark_load): Properly check for NULL result
12076         from get_base_address.
12077         (mark_store): Likewise.
12078         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
12079         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
12080         handling for MEM_REF.
12081         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
12082         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
12083         * builtins.c (stabilize_va_list_loc): Use the function ABI
12084         valist type if we couldn't canonicalize the argument type.
12085         Always dereference with the canonical va-list type.
12086         (maybe_emit_free_warning): Handle MEM_REF.
12087         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
12088         memmove to memcpy.
12089         * builtins.c (fold_builtin_memory_op): Use ref-all types
12090         for all memcpy foldings.
12091         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
12092         (build_outer_var_ref): Likewise.
12093         (scan_omp_1_op): Likewise.
12094         (lower_rec_input_clauses): Likewise.
12095         (lower_lastprivate_clauses): Likewise.
12096         (lower_reduction_clauses): Likewise.
12097         (lower_copyprivate_clauses): Likewise.
12098         (expand_omp_atomic_pipeline): Likewise.
12099         (expand_omp_atomic_mutex): Likewise.
12100         (create_task_copyfn): Likewise.
12101         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
12102         Remove old union trick.  Initialize constant offsets.
12103         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
12104         INDIRECT_REF.  Init base_alias_set properly.
12105         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
12106         (vn_reference_fold_indirect): Adjust for MEM_REFs.
12107         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
12108         for ARRAY_REFs.
12109         (may_insert): Remove.
12110         (visit_reference_op_load): Do not test may_insert.
12111         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
12112         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
12113         a field to store the constant offset this op applies.
12114         (run_scc_vn): Adjust prototype.
12115         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
12116         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
12117         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
12118         bother about volatile qualifiers on pointers.
12119         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
12120         * tree-ssa-loop-ivopts.c
12121         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
12122         (strip_offset_1): Likewise.
12123         (find_interesting_uses_address): Replace INDIRECT_REF handling with
12124         MEM_REF handling.
12125         (get_computation_cost_at): Likewise.
12126         * ipa-pure-const.c (check_op): Handle MEM_REF.
12127         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
12128         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
12129         and constants.
12130         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
12131         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
12132         (eliminate_local_variables_1): Likewise.
12133         (create_call_for_reduction_1): Likewise.
12134         (create_loads_for_reductions): Likewise.
12135         (create_loads_and_stores_for_name): Likewise.
12136         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
12137         (ssa_accessed_in_tree): Handle MEM_REF.
12138         (ssa_accessed_in_assign_rhs): Likewise.
12139         (update_type_size): Likewise.
12140         (analyze_accesses_for_call_stmt): Likewise.
12141         (analyze_accesses_for_assign_stmt): Likewise.
12142         (transform_access_sites): Likewise.
12143         (transform_allocation_sites): Likewise.
12144         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
12145         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
12146         not handle INDIRECT_REF.
12147         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
12148         (cond_store_replacement): Likewise.
12149         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
12150         MEM_REF, no not handle INDIRECT_REFs.
12151         (insert_into_preds_of_block): Properly initialize avail.
12152         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
12153         for ARRAY_REFs.  Properly handle reference lookups that
12154         require a bit re-interpretation.
12155         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
12156         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
12157         (build_ref_for_offset_1): Remove.
12158         (build_ref_for_offset): Build MEM_REFs.
12159         (gate_intra_sra): Disable for now.
12160         (sra_ipa_modify_expr): Handle MEM_REF.
12161         (ipa_early_sra_gate): Disable for now.
12162         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
12163         MEM_REF handling.
12164         (disqualify_base_of_expr): Likewise.
12165         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
12166         MEM_REF handling.
12167         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
12168         Use mem_ref_offset.  Remove bogus folding.
12169         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
12170         (make_fancy_name_1): Add support for MEM_REF.
12171         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
12172         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
12173         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
12174         (compute_complex_ancestor_jump_func): Likewise.
12175         (ipa_analyze_virtual_call_uses): Likewise.
12176         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
12177         INDIRECT_REF folding with more generalized MEM_REF folding.
12178         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
12179         (forward_propagate_addr_into_variable_array_index): Also handle
12180         &ARRAY + I in addition to &ARRAY[0] + I.
12181         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
12182         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
12183         creates assignments with overlap.
12184         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
12185         (get_frame_field): Likewise.
12186         (get_nonlocal_debug_decl): Likewise.
12187         (convert_nonlocal_reference_op): Likewise.
12188         (struct nesting_info): Add mem_refs pointer-set.
12189         (create_nesting_tree): Allocate it.
12190         (convert_local_reference_op): Insert to be folded mem-refs.
12191         (fold_mem_refs): New function.
12192         (finalize_nesting_tree_1): Perform defered folding of mem-refs
12193         (free_nesting_tree): Free the pointer-set.
12194         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
12195         (vectorizable_load): Likewise.
12196         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
12197         (propagate_with_phi): Likewise.
12198         * tree-object-size.c (addr_object_size): Handle MEM_REFs
12199         instead of INDIRECT_REFs.
12200         (compute_object_offset): Handle MEM_REF.
12201         (plus_stmt_object_size): Handle MEM_REF.
12202         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
12203         for &MEM_REF.
12204         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
12205         (symbol_marked_for_renaming): Likewise.
12206         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
12207         (fold-const.o): Add $(TREE_FLOW_H).
12208         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
12209         (find_func_clobbers): Likewise.
12210         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
12211         (decompose_access): Likewise.
12212         (replace_field_acc): Likewise.
12213         (replace_field_access_stmt): Likewise.
12214         (insert_new_var_in_stmt): Likewise.
12215         (get_stmt_accesses): Likewise.
12216         (reorg_structs_drive): Disable.
12217         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
12218         (ix86_canonical_va_list_type): Likewise.
12219
12220 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
12221
12222         PR other/44566
12223         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
12224         * target.def (struct gcc_target): Replace enum reg_class with
12225         reg_class_t in hook argument / return types.
12226         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
12227         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
12228         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
12229         * targhooks.h (default_branch_target_register_class): Likewise.
12230         (default_ira_cover_classes, default_secondary_reload): Likewise.
12231         (default_memory_move_cost, default_register_move_cost): Likewise.
12232         * targhooks.c (default_branch_target_register_class): Likewise.
12233         (default_ira_cover_classes, default_secondary_reload): Likewise.
12234         (default_memory_move_cost, default_register_move_cost): Likewise.
12235         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
12236         * bt-load.c (branch_target_load_optimize): Likewise.
12237         * ira.c (setup_cover_and_important_classes): Likewise.
12238         * ira-costs.c (copy_cost): Likewise.
12239         * reload1.c (emit_input_reload_insns): Likewise.
12240         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
12241         * config/frv/frv.c (frv_secondary_reload): Likewise.
12242         * config/s390/s390.c (s390_secondary_reload): Likewise.
12243         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
12244         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
12245         (ix86_register_move_cost): Likewise.
12246         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
12247         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
12248         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
12249         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
12250         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
12251         (rs6000_ira_cover_classes): Likewise.
12252         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
12253         * config/picochip/picochip-protos.h (picochip_secondary_reload):
12254         Likewise.
12255         * config/pa/pa.c (pa_secondary_reload): Likewise.
12256         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
12257         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
12258         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
12259         * doc/tm.texi: Regenerate.
12260
12261 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
12262
12263         PR bootstrrap/44726
12264         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
12265         use.
12266         (build_alias_set_optimal_p): Likewise.
12267         (build_base_obj_set_for_drs): Likewise.
12268
12269 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
12270
12271         * target.def: Remove comment about licensing problems of function
12272         declarations.
12273
12274         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
12275         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
12276         * doc/tm.texi: Regenerate.
12277
12278         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
12279         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
12280
12281         * target.def (enum_va_list_p): Use DEFHOOK.
12282         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
12283         Rename ptype to ptree.
12284         * doc/tm.texi: Regenerate.
12285
12286         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
12287         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
12288         * doc/tm.texi: Regenerate.
12289
12290         * target.def (memory_move_cost): Use DEFHOOK.
12291         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
12292         Rename regclass AKA class to rclass.
12293         * doc/tm.texi: Regenerate.
12294
12295         * target.def (pragma_parse): Use DEFHOOK.
12296         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
12297         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
12298         * doc/tm.texi: Regenerate.
12299
12300         * target.def (pass_by_reference): Use DEFHOOK.
12301         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
12302         * doc/tm.texi: Regenerate.
12303
12304         * target.def (resolve_overloaded_builtin): Rename params to arglist.
12305         Use DEFHOOK.
12306         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
12307         * doc/tm.texi: Regenerate.
12308
12309         * target.def (return_pops_args): Use DEFHOOK.
12310         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
12311         Rename stack-size to size.
12312         * doc/tm.texi: Regenerate.
12313
12314         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
12315         last-sched_cycle to last_clock, cur_cycle to clock.
12316         * doc/tm.texi.in: Use @hook.
12317         * doc/tm.texi: Regenerate.
12318
12319         * target.def (print_operand, print_operand_address): Update comment.
12320         (print_operand_punct_valid_p): Likewise.
12321
12322 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12323
12324         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
12325         to rtl.h.
12326         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
12327         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
12328         * rtl-error.h: New.
12329         * regrename.c: Do not include toplev.h. Include rtl-error.h.
12330         * rtl-error.c: Likewise.
12331         * reload.c: Likewise.
12332         * recog.c:  Likewise.
12333         * sel-sched.c: Likewise.
12334         * function.c: Likewise.
12335         * reg-stack.c: Likewise.
12336         * cfgrtl.c: Likewise.
12337         * reload1.c: Likewise.
12338         * final.c: Include rtl-error.
12339         * Makefile.in: Adjust dependencies.
12340
12341 2010-06-30  Jan Hubicka  <jh@suse.cz>
12342
12343         PR middle-end/PR44706
12344         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
12345         to return the value.
12346
12347 2010-06-30  Michael Matz  <matz@suse.de>
12348
12349         PR bootstrap/44699
12350         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
12351         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
12352         a gimple reg, attach the original VDEF to the last store in the
12353         sequence.
12354
12355 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
12356
12357         PR other/44034
12358         * config/darwin.c (darwin_override_options): Use renamed
12359         targetm.asm_out.emit_unwind_label.
12360
12361 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
12362
12363         PR tree-optimization/39799
12364         * tree-inline.c (remap_ssa_name): Initialize variable only if
12365         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12366
12367 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
12368
12369         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
12370
12371 2010-06-30  Richard Guenther  <rguenther@suse.de>
12372
12373         PR target/44722
12374         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
12375         against oscillation with reverse peephole2.
12376
12377 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
12378
12379         PR target/44721
12380         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12381         Fix last commit.
12382
12383 2010-06-30  Nick Clifton  <nickc@redhat.com>
12384
12385         * config/rx/rx-modes.def: New file.
12386         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
12387         (CC_REGNUM): Define.
12388         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
12389         register.
12390         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
12391         (SELECT_CC_MODE): Define.
12392         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
12393         (reg:CC CC_REG) instead of (cc0).
12394         (attr "cc"): Delete.
12395         (cbranchsi4): Do not split compare and branch here. Instead move
12396         it to...
12397         (cbranchsi4_<code>): ... here.  New patterns.
12398         (cmpsi): Call rx-compare_redundant to find out if it is necessary
12399         to emit the compare instruction.
12400         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
12401         cc_status flags.
12402         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
12403         FIRST_PSEUDO_REGNUM.
12404         (rx_expand_prologue, rx_expand_epilogue): Likewise.
12405         (rx_notice_update_cc): Delete.
12406         (rx_cc_modes_compatible): New function.
12407         (flags_needed_for_conditional): New function.
12408         (flags_from_mode): New function.
12409         (rx_compare_redundant): New function - scans backwards through
12410         insn list to find out if condition flags are already set correctly.
12411         (TARGET_CC_MODES_COMPATIBLE): Define.
12412         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
12413
12414         * config/rx/rx.h (BRANCH_COST): Define.
12415         (REGISTER_MOVE_COST): Define.
12416         * config/rx/predicates (rx_source_operand): Allow all constant types.
12417         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
12418         (tstsi4): New pattern.
12419         * config/rx/rx.c (rx_memory_move_cost): Define.
12420         (TARGET_MEMORY_MOVE_COST): Define.
12421
12422 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12423
12424         * tree.h (block_may_fallthru): Declare here.
12425         * tree-flow.h (block_may_fallthru): Do not declare here.
12426         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
12427         bitmap.h
12428         * Makefile.in (c-typeck.o): Update dependencies.
12429
12430 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
12431
12432         PR debug/44694
12433         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
12434         * cselib.c (cfa_base_preserved_regno): New static variable.
12435         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
12436         of REGNO (cfa_base_preserved_val->locs->loc).
12437         (cselib_preserve_cfa_base_value): Add regno argument, set
12438         cfa_base_preserved_regno to it.
12439         (cselib_invalidate_regno): Allow removal of registers other than
12440         cfa_base_preserved_regno from cfa_base_preserved_val.
12441         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
12442         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
12443         of MEM addresses, if not on LHS.
12444         (reverse_op): Don't add reverse ops for cfa_base_rtx.
12445         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
12446
12447 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
12448
12449         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
12450         static variables.
12451         (peep2_buf_position): New static function.
12452         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
12453         peephole2_optimize): Use it.
12454         (peep2_attempt, peep2_update_life): New static functions, broken out
12455         of peephole2_optimize.
12456         (peep2_fill_buffer): New static function.
12457         (peephole2_optimize): Change the main loop to try to fill the buffer
12458         with the maximum number of insns before matching them against
12459         peepholes.  Use a forward scan.  Remove special case for targets with
12460         conditional execution.
12461         * genrecog.c (change_state): Delete dead code.
12462         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12463         Rewrite so as not to expect the second insn to have had a peephole
12464         applied yet.
12465
12466 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12467
12468         * genhooks.c (emit_findices): Cast field precision to int.
12469         (emit_documentation): Likewise.
12470
12471 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
12472
12473         PR tree-optimization/43801
12474         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
12475         if old_decl was DECL_ONE_ONLY.
12476
12477         PR debug/44668
12478         * dwarf2out.c (add_accessibility_attribute): New function.
12479         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
12480         instead of adding DW_AT_accessibility manually.
12481         (gen_enumeration_type_die, gen_struct_or_union_type_die,
12482         gen_typedef_die): Use it.
12483
12484 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12485
12486         * vmsdbgout.c (full_name): Just output the file name if not native.
12487
12488 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12489
12490         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
12491         (funcnam_table): New static table.
12492         (funcnum_table): New static table.
12493         (write_rtnbeg): Write value saved in funcnum_table.
12494         (write_rtnend): Write value saved in funcnum_table.
12495         (vmsdbgout_begin_function): Save current function info in
12496         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
12497         (vmsdbgout_finish): Iterate over funcnum_table.
12498
12499 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12500
12501         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
12502         (vmsdbgout_type_decl): Declare
12503         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
12504         (FUNC_EPILOGUE_LABEL): New macro
12505         (vmsdbgout_begin_epilogue): New function.
12506         (vmsdbgout_type_decl): New function.
12507
12508 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12509
12510         * vmsdbg.h: Update copyright.
12511
12512 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12513
12514         * vmsdbg.h (DST_K_TBG): New DST constant.
12515         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
12516         (write_modbeg): Cast module_language to avoid warning.
12517         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
12518
12519 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
12520
12521         PR other/44034
12522         * target.def, doc/tm.texi.in, genhooks.c: New files.
12523         * target.h: Instead of defining individual hook members,
12524         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
12525         include target.def.
12526         * target-def.h: Instead of defining individual hook initializers,
12527         include target-hooks-def.h.
12528         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
12529         targetm.live_on_entry -> targetm.extra_live_on_entry
12530         targetm.sched.md_finish ->targetm.sched.finish
12531         targetm.sched.md_init -> targetm.sched.init
12532         targetm.sched.md_init_global -> targetm.sched.init_global
12533         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
12534         targetm.asm_out.except_table_label ->
12535           targetm.asm_out.emit_except_table_label
12536         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
12537         targetm.target_help -> targetm.help
12538         targetm.vectorize.builtin_support_vector_misalignment ->
12539           targetm.vectorize.support_vector_misalignment
12540         targetm.file_start_app_off -> targetm.asm_file_start_app_off
12541         targetm.file_start_file_directive ->
12542          targetm.asm_file_start_file_directive
12543         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
12544         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
12545         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
12546         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
12547           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
12548         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
12549           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
12550         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
12551         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
12552         * Makefile.in (TARGET_H): Depend on target.def.
12553         (TARGET_DEF_H): Depend on target-hooks-def.h.
12554         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
12555         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
12556         * doc/tm.texi: Regenerate.
12557
12558         * Makefile.in (s-tm-texi): Remove stray tab / rule.
12559
12560         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
12561         (targetm.sched.init): Likewise.
12562
12563 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12564
12565         PR bootstrap/44713
12566         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
12567         (function_arg_advance_32): Const-ify TYPE parameter.
12568         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
12569         (ix86_function_arg_advance): Change type of NAMED to bool.
12570         (function_arg_32): Const-ify CUM and TYPE parameters.
12571         (function_arg_64): Likewise.  Change type of NAMED to bool.
12572         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
12573         to bool.
12574         (ix86_function_arg): Change type of NAMED to bool.
12575         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
12576         last argument as a bool.
12577
12578 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
12579
12580         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
12581         (OVERRIDE_OPTIONS): Add note of obsolescence.
12582         Replace references with references to TARGET_OPTION_OVERRIDE.
12583         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
12584          the macro).
12585         * targhooks.c (default_target_option_override): New function.
12586         * targhooks.h (default_target_option_override): Declare.
12587         * target.h (struct gcc_target): Add override member to
12588         target_option member.
12589         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
12590         targetm.target_option.override call.
12591         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
12592         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
12593
12594 2010-06-29  Jan Hubicka  <jh@suse.cz>
12595
12596         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
12597
12598 2010-06-29  Jan Hubicka  <jh@suse.cz>
12599
12600         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
12601         unreachable.
12602         (rebuild_frequencies): New function.
12603         * predict.h (rebuild_frequencies): Declare.
12604         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
12605         entry block and edge reaching new_entry.
12606         (tree_function_versioning): When doing partial cloning, rebuild
12607         frequencies when done.
12608         * passes.c (execute_function_todo): Use rebild_frequencies.
12609
12610 2010-06-29  Richard Guenther  <rguenther@suse.de>
12611
12612         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
12613         * tree-flow.h (enum noalias_state): Remove.
12614         (struct var_ann_d): Remove noalias_state member.
12615
12616 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
12617
12618         PR target/43902
12619         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
12620         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
12621         (maddhidi4): Likewise.
12622
12623         Revert parts of the change for PR25130.
12624         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
12625         MEM_ALIAS_SET.
12626
12627 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12628
12629         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
12630         targetm.calls.function_incoming_arg, and
12631         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
12632         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
12633         * target.h (struct gcc_target): Add function_arg_advance,
12634         function_arg, and function_incoming_arg fields.
12635         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
12636         (TARGET_FUNCTION_INCOMING_ARG): Define.
12637         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
12638         and TARGET_FUNCTION_INCOMING_ARG.
12639         * targhooks.h (default_function_arg_advance): Declare.
12640         (default_function_arg, default_function_incoming_arg): Declare.
12641         * targhooks.c (default_function_arg_advance): New function.
12642         (default_function_arg, default_function_incoming_arg): New function.
12643         * config/i386/i386.c (function_arg_advance): Rename to...
12644         (ix86_function_arg_advance): ...this.  Make static.
12645         (function_arg): Rename to...
12646         (ix86_function_arg): ...this.  Make static.
12647         (TARGET_FUNCTION_ARG_ADVANCE): Define.
12648         (TARGET_FUNCTION_ARG): Define.
12649         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
12650         (FUNCTION_ARG): Delete.
12651         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
12652         (function_arg): Delete prototype.
12653
12654 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12655
12656         * reginfo.c (init_reg_sets_1): Adjust comments.
12657         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
12658         * calls.c (prepare_call_address): Likewise.
12659         (emit_call_1): Use targetm.calls.return_pops_args.
12660         (expand_call): Likewise.
12661         * function.c (assign_parms): Likewise.
12662         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
12663         * target.h (struct gcc_target) [struct calls]: Add
12664         return_pops_args field.
12665         * targhooks.h (default_return_pops_args): Declare.
12666         * targhooks.c (default_return_pops_args): Define.
12667         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
12668         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
12669         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
12670         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
12671         documentation.
12672         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
12673         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
12674         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
12675         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
12676         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
12677         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
12678         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
12679         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
12680         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
12681         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
12682         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
12683         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
12684         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
12685         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
12686         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
12687         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
12688         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
12689         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
12690         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
12691         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
12692         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
12693         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
12694         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
12695         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
12696         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
12697         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
12698         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
12699         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
12700         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
12701         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
12702         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
12703         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
12704         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
12705         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
12706         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
12707         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
12708         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
12709         * config/i386/i386.c (ix86_return_pops_args): Make static.
12710         Constify arguments.
12711         (TARGET_RETURN_POPS_ARGS): Define.
12712         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
12713         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
12714         (TARGET_RETURN_POPS_ARGS): Define.
12715         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
12716         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
12717         (TARGET_RETURN_POPS_ARGS): Define.
12718
12719 2010-06-29  Richard Guenther  <rguenther@suse.de>
12720
12721         PR middle-end/44667
12722         * tree-inline.c (initialize_inlined_parameters): Make sure
12723         to remap the inlined parameter variable substitutions types.
12724
12725 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
12726
12727         PR rtl-optimization/44659
12728         * combine.c (make_compound_operation) <SUBREG>: Do not return the
12729         result of force_to_mode if it partially re-expanded the compound.
12730
12731 2010-06-28  Jan Hubicka  <jh@suse.cz>
12732
12733         PR middle-end/44671
12734         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
12735         RESULT_DECL.
12736
12737 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
12738
12739         * double-int.h (force_fit_type_double): Remove declaration.
12740         * double-int.c (force_fit_type_double): Move to tree.c.
12741         * tree.h (force_fit_type_double): Declare.
12742         * tree.h (force_fit_type_double): Moved from double-int.c. Use
12743         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
12744         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
12745         * convert.c (convert_to_pointer): Adjust call to
12746         force_fit_type_double.
12747         * tree-vrp.c (extract_range_from_assert,
12748         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
12749         * fold-const.c: Update comment.
12750         (int_const_binop, fold_convert_const_int_from_int,
12751         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
12752         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
12753         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
12754         round_up_loc): Adjust call to force_fit_type_double.
12755
12756 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
12757
12758         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
12759
12760 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12761
12762         * tree-sra.c (convert_callers): New parameter, change fndecls of
12763         recursive calls.
12764         (modify_function): Pass the old decl to convert_callers.
12765
12766 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12767
12768         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
12769         ipa_check_create_node_params and ipa_initialize_node_params with
12770         checking asserts they are not necessary.
12771
12772 2010-06-28  Jan Hubicka  <jh@suse.cz>
12773
12774         PR tree-optimization/44687
12775         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
12776
12777 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12778
12779         PR c++/44535
12780         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
12781         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
12782         instead of BINFO_BASE_BINFO.
12783
12784 2010-06-28  Michael Matz  <matz@suse.de>
12785
12786         PR middle-end/44592
12787         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
12788         proper VDEF chain for intermediate stores in the sequence.
12789
12790 2010-06-28  Jan Hubicka  <jh@suse.cz>
12791
12792         PR tree-optimization/44357
12793         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
12794         uninlinable functions.
12795
12796 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
12797
12798         * config.gcc (powerpc*-*-*): Handle titan.
12799         * config/rs6000/rs6000.c (titan_cost): New costs.
12800         (rs6000_override_options): Add "titan" to processor_target_table.
12801         Add Titan to branch alignment logic.
12802         Correctly set rs6000_cost for titan.
12803         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
12804         * config/rs6000/titan.md: New file.
12805         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
12806
12807 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
12808
12809         * tree-browser.c (TB_history_stack): Convert to a VEC.
12810         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
12811         (TB_history_prev): Likewise.
12812
12813 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
12814
12815         * vec.h (vec_heap_free): Add parentheses around free.
12816
12817 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
12818
12819         * system.h: Poison GCC_EXCEPT_H for front-end files.
12820
12821         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
12822         langhook.
12823         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
12824         Define to NULL by default.
12825         * except.h: Define GCC_EXCEPT_H.
12826         (doing_eh): Remove prototype.
12827         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
12828         (lang_protect_cleanup_actions): Remove.
12829         * except.c (lang_protect_cleanup_actions): Remove.
12830         (doing_eh): Remove.
12831         (gen_eh_region): Don't check doing_eh here.
12832         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
12833         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
12834         instead of lang_protect_cleanup_actions.
12835         * omp-low.c (maybe_catch_exception): Likewise.
12836         * Makefile.in: Update dependencies.
12837
12838 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
12839
12840         * cgraph.h (struct varpool_node): new used_from_object_file flag.
12841         (struct cgraph_local_info): new used_from_object_file flag.
12842         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
12843         (cgraph_clone_node): initialize used_from_object_file.
12844         (cgraph_create_virtual_clone): initialize used_from_object_file.
12845         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
12846         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
12847         when compiling with -fwhole-program.
12848         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
12849         internal resolver.
12850         * ipa.c (function_and_variable_visibility): Set externally_visible
12851         flag of varpool_node if used_from_object_file flag is set.
12852         (cgraph_externally_visible_p): check used_from_object_file flag.
12853         * doc/invoke.texi (-fwhole-program option): Change description of
12854         externally_visible attribute accordingly.
12855         * doc/extend.texi (externally_visible): Ditto.
12856
12857 2010-06-27  Jan Hubicka  <jh@suse.cz>
12858
12859         * params.def (max-inline-insns-auto): Default to 40.
12860         * doc/invoke.texi (max-inline-insns-auto): Document the change.
12861
12862 2010-06-27  Jan Hubicka  <jh@suse.cz>
12863
12864         PR middle-end/44671
12865         PR middle-end/44686
12866         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
12867         signature change.
12868         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
12869         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
12870
12871 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
12872
12873         * target.h (struct gcc_target): Add register_move_cost field.
12874         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
12875         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
12876         * targhooks.c (default_register_move_cost): New function.
12877         * targhooks.h (default_register_move_cost): Declare function.
12878         * defaults.h (REGISTER_MOVE_COST): Delete.
12879         * ira-int.h (ira_register_move_cost): Update comment.
12880         * ira.c (ira_register_move_cost): Update comment.
12881         * reload.h (register_move_cost): Declare.
12882         * reginfo.c (register_move_cost): New function.
12883         (move_cost): Update comment.
12884         (init_move_cost, memory_move_secondary_cost): Replace
12885         REGISTER_MOVE_COST with register_move_cost.
12886         * postreload.c (reload_cse_simplify_set): (Ditto.).
12887         * reload.c (find_valid_class, find_reloads): (Ditto.).
12888         * reload1.c (choose_reload_regs): (Ditto.).
12889         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
12890         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
12891         * doc/md.texi (can_create_pseudo_p): Update documentation.
12892
12893         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
12894         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
12895         * config/i386/i386.h (ix86_memory_move_cost): Make static.
12896         (TARGET_MEMORY_MOVE_COST): Define.
12897
12898         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
12899         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
12900         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
12901         (TARGET_MEMORY_MOVE_COST): Define.
12902
12903 2010-06-27  Richard Guenther  <rguenther@suse.de>
12904
12905         PR tree-optimization/44683
12906         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
12907         false edge from the inverted condition.
12908
12909 2010-06-27  Richard Guenther  <rguenther@suse.de>
12910
12911         PR middle-end/44684
12912         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
12913         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
12914         for register LHS.  Or non-store assignments.
12915
12916 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
12917
12918         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
12919         (sparc_emit_set_const64): Likewise.  Remove disabled code.
12920         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
12921         (sparc_emit_set_const64): Likewise.
12922
12923 2010-06-26  Catherine Moore  <clm@codesourcery.com>
12924
12925         * config/mips/mips.md (alu_type): New attribute.
12926         (type): Infer type from alu_type.
12927         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
12928         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
12929         *subsi3_extended, negsi2, negdi2, *low<mode>,
12930         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
12931         xor<mode>3, *nor<mode>3,
12932         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
12933         *zero_extendhi_truncqi):  Set alu_type instead of type.
12934
12935 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
12936
12937         * config/alpha/alpha.c (alpha_need_linkage): Adjust
12938         splay_tree_new_ggc call.
12939         (alpha_use_linkage): Likewise.
12940
12941 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
12942
12943         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
12944         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
12945         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
12946         (static_specs): Remove switches_need_spaces.
12947         (process_command, do_self_spec): Hardcode handling "-o" instead of
12948         checking switches_need_spaces.
12949         * system.h (SWITCHES_NEED_SPACES): Poison.
12950
12951 2010-06-26  Richard Guenther  <rguenther@suse.de>
12952
12953         PR tree-optimization/44393
12954         * tree-loop-distribution.c (generate_loops_for_partition): Fix
12955         stmt removal and VOP renaming.
12956         (generate_memset_zero): Remove redundant stmt updating.
12957         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
12958         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
12959
12960 2010-06-26  Jan Hubicka  <jh@suse.cz>
12961
12962         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
12963         edges comming from header are equivalent.
12964         (visit_bb): Handle PHIs correctly.
12965         * tree-inline.c (copy_phis_for_bb): Be able to copy
12966         PHI from entry edge.
12967         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
12968
12969 2010-06-26  Richard Guenther  <rguenther@suse.de>
12970
12971         PR middle-end/44674
12972         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
12973         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
12974
12975 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
12976
12977         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
12978         add_infile, alloc_switch): New.
12979         (process_command): Remove variable lang_n_infiles.  Process
12980         options in a single pass.  Use new functions for allocating
12981         infiles and switches arrays.  Properly skip operands of
12982         -Xpreprocessor and -Xassembler.
12983
12984 2010-06-26  Jan Hubicka  <jh@suse.cz>
12985
12986         PR middle-end/44671
12987         * cgraphunit.c (cgraph_function_versioning): Remove wrong
12988         cgraph_make_decl_local call; fix typo copying RTL data.
12989
12990 2010-06-25  DJ Delorie  <dj@redhat.com>
12991
12992         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
12993         (m32c_output_aligned_common): Likewise.
12994         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
12995         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
12996         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
12997         (m32c_register_pragmas): Register it.
12998         * config/m32c/m32c.c (m32c_get_pragma_address): New.
12999         (m32c_insert_attributes): Set #pragma address decls volatile.
13000         (pragma_entry_eq): New.
13001         (pragma_entry_hash): New.
13002         (m32c_note_pragma_address): New.
13003         (m32c_get_pragma_address): New.
13004         (m32c_output_aligned_common): New.
13005         * doc/extend.texi: Document the new pragma.
13006
13007         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
13008         also.
13009         * config/m32c/predicates.md (m32c_any_operand): Check the code
13010         instead of memory_operand so as to allow matching volatile MEMs.
13011         (m32c_nonimmediate_operand): Likewise.
13012         (mra_operand): Allow volatiles.
13013
13014 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
13015
13016         PR debug/44610
13017         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
13018         address if the offset is unknown.
13019
13020 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
13021
13022         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
13023         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
13024         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
13025         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
13026         to ia64_start_function. Invoke it.
13027         * config/ia64/ia64.c (ia64_start_function): Call new function
13028         dwarf2out_vms_debug_main_pointer.
13029
13030 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13031
13032         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
13033         statements computing the true predicate.
13034
13035 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13036
13037         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
13038         to boolean_true_node.
13039         (reset_bb_predicate): New.
13040         (predicate_bbs): Call reset_bb_predicate.
13041
13042 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13043
13044         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
13045         (tree_if_conversion): Returns true when something has been changed.
13046         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
13047         changed something.
13048
13049 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13050
13051         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
13052         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
13053         * tree-if-conv.c: Include dbgcnt.h.
13054         (tree_if_conversion): Use if_conversion_tree to count the number of
13055         if-convertible loops.
13056
13057 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
13058
13059         * common.opt (fprefetch-loop-arrays): Re-define
13060         -fprefetch-loop-arrays as a tri-state option with the initial
13061         value of -1.
13062         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
13063         pass only when flag_prefetch_loop_arrays > 0.
13064         * toplev.c (process_options): Note that, with tri-states,
13065         flag_prefetch_loop_arrays>0 means prefetching is enabled.
13066         * config/i386/i386.c (override_options): Enable prefetching at -O3
13067         for a set of CPUs that sw prefetching is helpful.
13068         (software_prefetching_beneficial_p): New.  Return TRUE if software
13069         prefetching is beneficial for the given CPU.
13070
13071 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
13072
13073         PR rtl-optimization/44326
13074         * implicit-zee.c (find_removable_zero_extends): Replace
13075         INSN_P with NONDEBUG_INSN_P.
13076
13077 2010-06-25  Martin Jambor  <mjambor@suse.cz>
13078
13079         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
13080         (struct ipa_node_params): Removed the modification_analysis_done flag.
13081         (ipa_is_param_modified): Removed.
13082         (ipa_analyze_node): Declare.
13083         (ipa_compute_jump_functions): Remove declaration.
13084         (ipa_count_arguments): Likewise.
13085         (ipa_detect_param_modifications): Likewise.
13086         (ipa_analyze_params_uses): Likewise.
13087         * ipa-prop.c (struct param_analysis_info): New type.
13088         (visit_store_addr_for_mod_analysis): Removed.
13089         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
13090         moved down in the file.
13091         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
13092         (ipa_count_arguments): Made static.
13093         (mark_modified): New function.
13094         (is_parm_modified_before_call): New function.
13095         (compute_pass_through_member_ptrs): New parameter parms_info, call
13096         is_parm_modified_before_call instead of ipa_is_param_modified.
13097         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
13098         it to compute_pass_through_member_ptrs.
13099         (ipa_compute_jump_functions): New parameter parms_info, pass it to
13100         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
13101         on the callee if it is analyzed.  Made static.
13102         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
13103         is_parm_modified_before_call instead of ipa_is_param_modified.
13104         (ipa_analyze_call_uses): New parameter parms_info, pass it to
13105         ipa_analyze_indirect_call_uses.
13106         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
13107         ipa_analyze_call_uses.
13108         (ipa_analyze_params_uses): New parameter parms_info, pass it to
13109         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
13110         (ipa_analyze_node): New function.
13111         (ipa_print_node_params): Do not dump the modified flag.
13112         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
13113         it.  Do not stream the modified parameter flag.
13114         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
13115         it.  Do not stream the modified parameter flag.
13116         * ipa-cp.c (ipcp_analyze_node): Removed.
13117         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
13118         with only a call to ipa_analyze_node.
13119         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
13120         node with only a call to ipa_analyze_node.
13121
13122 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13123
13124         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
13125
13126 2010-06-25  Jan Hubicka  <jh@suse.cz>
13127
13128         * tree-pass.h (pass_split_functions): Declare.
13129         * opts.c (decode_options): Enable function splitting at -O2
13130         * timevar.def (TV_IPA_FNSPLIT): New macro.
13131         * ipa-split.c: New file.
13132         * common.opt (-fpartial-inlining): New flag.
13133         * Makefile.in (ipa-split.o): New object file.
13134         * passes.c (init_optimization_passes): Add ipa-split.
13135         * params.def (partial-inlining-entry-probability): New parameters.
13136         * doc/invoke.texi (-fpartial-inlining): New.
13137
13138 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13139
13140         PR 44665
13141         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
13142         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
13143         (gimplify_expr): Likewise.
13144
13145 2010-06-25  Martin Jambor  <mjambor@suse.cz>
13146
13147         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
13148         statements instead of bailing out on them.
13149         (ipa_analyze_indirect_call_uses): Do not require that loads from the
13150         parameter are in the same BB as the condition.  Update comments.
13151
13152 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
13153
13154         PR middle-end/43866
13155         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
13156         true or always false, return NULL_TREE.
13157         (tree_unswitch_single_loop): Optimize conditions even when reaching
13158         max-unswitch-level parameter.  If num > 0, optimize first all conditions
13159         using entry checks, then do still reachable block discovery and consider
13160         only conditions in still reachable basic blocks in the loop.
13161
13162         PR tree-optimization/44539
13163         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
13164         the call doesn't have LHS, but has VDEF.
13165
13166 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
13167
13168         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
13169         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
13170         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
13171         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
13172         * system.h (MODIFY_TARGET_NAME): Poison.
13173
13174 2010-06-25  Alan Modra  <amodra@gmail.com>
13175
13176         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
13177         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
13178         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13179         CMODEL_LARGE as default.
13180         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
13181         (offsettable_ok_by_alignment): Delete.
13182         (rs6000_emit_move): Remove mcmodel=medium optimization.
13183
13184 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
13185
13186         With large parts from Jim Wilson:
13187         PR target/43902
13188         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
13189         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
13190         * optabs.c (optab_for_tree_code): Likewise.
13191         (expand_widen_pattern_expr): Likewise.
13192         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
13193         out of execute_optimize_widening_mul.
13194         (convert_plusminus_to_widen): New function.
13195         (execute_optimize_widening_mul): Use the two new functions.
13196         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
13197         Remove code to generate widening multiply-accumulate.  Add support
13198         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
13199         * gimple-pretty-print.c (dump_ternary_rhs): New function.
13200         (dump_gimple_assign): Call it when appropriate.
13201         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
13202         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
13203         (expand_gimple_stmt_1): Likewise.
13204         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
13205         WIDEN_MULT_MINUS_EXPR.
13206         * tree-ssa-operands.c (get_expr_operands): Likewise.
13207         * tree-inline.c (estimate_operator_cost): Likewise.
13208         * gimple.c (extract_ops_from_tree_1): Renamed from
13209         extract_ops_from_tree.  Add new arg for a third operand; fill it.
13210         (gimple_build_assign_stat): Support operations with three operands.
13211         (gimple_build_assign_with_ops_stat): Likewise.
13212         (gimple_assign_set_rhs_from_tree): Likewise.
13213         (gimple_assign_set_rhs_with_ops_1): Renamed from
13214         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
13215         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
13216         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
13217         WIDEN_MULT_MINUS_EXPR.
13218         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
13219         (extract_ops_from_tree_1): Adjust declaration.
13220         (gimple_assign_set_rhs_with_ops_1): Likewise.
13221         (gimple_build_assign_with_ops): Pass NULL for last operand.
13222         (gimple_build_assign_with_ops3): New macro.
13223         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
13224         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
13225         functions.
13226         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
13227         (verify_gimple_assign): Call it.
13228         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
13229         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
13230         functions for dealing with three-operand statements.
13231         * tree.c (commutative_ternary_tree_code): New function.
13232         * tree.h (commutative_ternary_tree_code): Declare it.
13233         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
13234         ternary statements.
13235         (gimple_assign_nonzero_warnv_p): Likewise.
13236         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
13237         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
13238         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
13239         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
13240         (struct hashtable_expr): New member ternary in the union.
13241         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
13242         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
13243         (iterative_hash_hashable_expr): Likewise.
13244         (print_expr_hash_elt): Handle EXPR_TERNARY.
13245         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
13246         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
13247         statements.  Handle GIMPLE_TERNARY_RHS.
13248
13249 2010-06-25  Jan Hubicka  <jh@suse.cz>
13250
13251         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
13252
13253 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
13254
13255         PR c/44517
13256         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
13257         parameters are not good.
13258         (c_parser_parameter_declaration): Error unknown type name if the type
13259         name can't start declaration specifiers.
13260
13261 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
13262
13263         * gcc.c (translate_options): Don't mention +e in comment.
13264         (process_command): Don't handle +e specially.
13265
13266 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
13267
13268         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
13269
13270         * ira-build.c (merge_hard_reg_conflicts): New function.
13271         (create_cap_allocno, copy_info_to_removed_store_destinations,
13272         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
13273         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
13274         (remove_unnecessary_allocnos, remove_low_level_allocnos)
13275         copy_nifo_to_removed_store_destination): Use them.
13276         * ira-lives.c (make_hard_regno_born): New function, split out of
13277         make_regno_born.
13278         (make_allocno_born): Likewise.
13279         (make_hard_regno_dead): New function, split out of make_regno_dead.
13280         (make_allocno_dead): Likewise.
13281         (inc_register_pressure): New function, split out of set_allocno_live.
13282         (dec_register_pressure): New function, split out of clear_allocno_live.
13283         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
13284         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
13285         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
13286         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
13287         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
13288         mark_pseudo_regno_live.
13289         (process_bb_node_lives): Use mark_pseudo_regno_live,
13290         make_hard_regno_born and make_allocno_dead.
13291         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
13292         set_allocno_live, clear_allocno_live): Delete functions.
13293
13294         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
13295         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
13296         functions.
13297         (ira_flattening): Use ira_parent_allocno.
13298         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
13299         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
13300
13301         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
13302         statement.
13303
13304         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
13305         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
13306         minmax_set_iter_cond, minmax_set_iter_next,
13307         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
13308         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
13309         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
13310         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
13311         uses changed.
13312
13313         * ira-int.h (struct live_range, live_range_t): Renamed from struct
13314         ira_allocno_live_range and allocno_live_range_t; all uses changed.
13315         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
13316         All uses changed.
13317
13318 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
13319
13320         * thumb2.md (thumb2_tlobits_cbranch): Delete.
13321         (peephole2 to convert zero_extract/compare of single bit to
13322          lshift/compare): New.
13323
13324 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
13325
13326         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
13327         recursive call and call to 'int_const_binop'.
13328         (build_range_check, fold_cond_expr_with_comparison, unextend,
13329         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
13330         multiple_of_p): Adjust call to const_binop.
13331
13332 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
13333
13334         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
13335         determine size of XFmode operand.
13336         (XFmode extended DFmode push splitter): Ditto.
13337         (XFmode extended SFmode push splitter): Ditto.
13338
13339 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
13340
13341         PR target/44588
13342         * config/i386/i386.md (extract_code): New.
13343         (<u>divmodqi4): Likewise.
13344         (divmodhiqi3): Likewise.
13345         (udivmodhiqi3): Likewise.
13346         (<u>divqi3): Remvoved.
13347
13348 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
13349
13350         PR middle-end/44492
13351         * recog.h (struct recog_data): Add is_asm field.
13352         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
13353         present in constraints of inline-asm operand and memory operand
13354         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
13355         (extract_insn): Initialize recog_data.is_asm.
13356         * doc/md.texi (Constraints): Document operand side-effect rules.
13357
13358 2010-06-24  Andi Kleen  <ak@linux.intel.com>
13359
13360         * c-parser.c (c_parser_conditional_expression): Call
13361         warn_for_omitted_condop.
13362         * doc/invoke.texi: Document omitted condop warning.
13363
13364 2010-06-24  Nick Clifton<nickc@redhat.com>
13365
13366         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
13367         insn in the sequence is a jump insn before setting its label.
13368
13369 2010-06-24  Alan Modra  <amodra@gmail.com>
13370
13371         * collect2.c (main): Match exactly --version and --help.
13372
13373 2010-06-24  DJ Delorie  <dj@redhat.com>
13374
13375         * config/m32c/m32c-pragma.c: Don't include rtl.h.
13376
13377 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
13378
13379         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
13380         using X87MODEF mode iterator.
13381         (pushsf splitter): Macroize splitter using P mode iterator.
13382         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
13383         mode iterator.
13384
13385         (*movxf_internal): Rename from *movxf_integer.
13386         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
13387         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
13388         (*movdf_internal): Rename from *movdf_integer.
13389         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
13390         (*movsf_internal): Rename from *movdf_1.
13391
13392 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
13393
13394         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
13395         (const_gimple_seq_node): Removed typedefs.
13396
13397         * gimple.h (gimple_seq_node_d, gimple_seq_node)
13398         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
13399
13400 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
13401
13402         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
13403         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
13404         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
13405         and CODE_FOR_vec_extract_lo_v4df.
13406
13407         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
13408         Changed to define_insn_and_split.
13409         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
13410         (vec_extract_lo_v16hi): Likewise.
13411         (vec_extract_lo_v32qi): Likewise.
13412         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
13413         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
13414
13415 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
13416
13417         PR target/44640
13418         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
13419         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
13420         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
13421         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
13422         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
13423
13424         PR target/44640
13425         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
13426
13427         PR other/44644
13428         * df-core.c (struct df): Rename to df_d.
13429         * df.h (struct df): Likewise.
13430         * dse.h (struct df): Remove forward declaration.
13431         * recog.h (struct insn_data): Rename to:
13432         (struct_insn_data_d).  Adjusted all users.
13433
13434 2010-06-23  Arnaud Charlet  <charlet@adacore.com
13435
13436         PR ada/22220
13437         * doc/install.texi: Update requirements to build GNAT.
13438
13439 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
13440
13441         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
13442         enum type.
13443         (m68k_sched_attr_opx_type): Remove unreachable return.
13444         (m68k_sched_attr_opy_type): Likewise.
13445         (m68k_sched_attr_size): Likewise.
13446         (sched_get_opxy_mem_type): Likewise.
13447         (m68k_sched_attr_op_mem): Likewise.
13448
13449 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
13450
13451         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
13452         new statement and adjust VDEF only if necessary.  Remove superfluous
13453         call to maybe_clean_or_replace_eh_stmt.
13454         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
13455         copy the flags.
13456         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
13457         * tree-inline.c (copy_bb): ...and not there.
13458
13459 2010-06-22  Cary Coutant  <ccoutant@google.com>
13460
13461         * dwarf2out.c (is_nested_in_subprogram): New function.
13462         (should_move_die_to_comdat): Use it.
13463         (copy_ancestor_tree): Don't mark DIEs here.
13464         (copy_decls_walk): Start walk from root of newly-added tree;
13465         mark DIEs here instead.
13466
13467 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
13468
13469         * config/i386/i386.md (unit): Also check sseishft1.
13470
13471 2010-06-22  Jan Hubicka  <jh@suse.cz>
13472
13473         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
13474         enabled.
13475
13476 2010-06-22  Jan Hubicka  <jh@suse.cz>
13477
13478         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
13479         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
13480         Return true if something changed.
13481         * df.h (df_confluence_function_n): Return bool.
13482         * df-core.c (df_worklist_propagate_forward,
13483         df_worklist_propagate_backward): Track changes and ages.
13484         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
13485         track ages.
13486         * dse.c (dse_confluence_n): Return always true.
13487
13488 2010-06-22  Jan Hubicka  <jh@suse.cz>
13489
13490         * bitmap.c (bitmap_clear_bit): Micro optimize.
13491
13492 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
13493
13494         * config/i386/i386.md (SWI1248x): New mode iterator.
13495         (SWI48x): Ditto.
13496         (SWI12): Ditto.
13497         (SWI24): Ditto.
13498
13499         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
13500         SWI1248x mode iterator.
13501         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
13502         using SWI124 mode iterator.
13503         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
13504         mode iterator.
13505         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
13506         *pushdi2_prologue_rex64 using P mode iterator.
13507         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
13508         using SWI48 mode iterator.
13509         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
13510         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
13511         using SWI1248x mode iterator.
13512         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
13513         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
13514         SWI48 mode iterator.
13515         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
13516         iterator.
13517         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
13518         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
13519         SWI12 mode iterator.
13520         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
13521         SWI12 mode iterator.
13522         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
13523         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
13524         SWI24 mode iterator.
13525         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
13526         SWI48 mode iterator.
13527         (mov<mode>_insn_1): New expander.
13528         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
13529         using SWI48x mode iterator.
13530
13531         (*movoi_internal_avx): Rename from *movoi_internal.
13532         (*movti_internal_rex64): Rename from *movti_rex64.
13533         (*movti_internal_sse): Rename from *movti_sse.
13534         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
13535         (*movdi_internal): Rename from *movdi_2.
13536         (*movsi_internal): Rename from *movsi_1.
13537         (*movhi_internal): Rename from *movhi_1.
13538         (*movqi_internal): Rename from *movqi_1.
13539
13540         (insv): Update the call to gen_movsi_insv_1 for rename.
13541         * config/i386/i386.c (promote_duplicated_reg): Ditto.
13542
13543 2010-06-22  Jan Hubicka  <jh@suse.cz>
13544
13545         * passes.c (execute_function_todo): Move call of statistics_fini_pass
13546         to ...
13547         (execute_todo) ... this one.
13548
13549 2010-06-22  Alan Modra  <amodra@gmail.com>
13550
13551         PR target/44364
13552         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
13553         * caller-save.c (insert_restore, insert_save): Use non-validate
13554         form of adjust_address.
13555
13556 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13557
13558         PR target/39690
13559         * config/pa/pa.c (override_options): Disable
13560         -freorder-blocks-and-partition.
13561
13562 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
13563
13564         PR target/44615
13565         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
13566
13567         * config/i386/i386.md (type): Add sseishft1
13568
13569         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
13570         (ppro_insn_load): Likewise.
13571         (ppro_insn_store): Likewise.
13572         (ppro_insn_both): Likewise.
13573
13574         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
13575         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
13576         for type.
13577         (*vec_extractv2di_1_avx): Likewise.
13578         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
13579         type.  Remove atom_unit.
13580         (*vec_extractv2di_1_sse2): Likewise.
13581
13582 2010-06-21  DJ Delorie  <dj@redhat.com>
13583
13584         * diagnostic.h (diagnostic_classification_change_t): New.
13585         (diagnostic_context): Add history and push/pop list.
13586         (diagnostic_push_diagnostics): Declare.
13587         (diagnostic_pop_diagnostics): Declare.
13588         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
13589         from pragmas in a history chain instead of the global table.
13590         (diagnostic_push_diagnostics): New.
13591         (diagnostic_pop_diagnostics): New.
13592         (diagnostic_report_diagnostic): Scan history chain to find state
13593         of diagnostics as of the diagnostic location.
13594         * opts.c (set_option): Pass UNKNOWN_LOCATION to
13595         diagnostic_classify_diagnostic.
13596         (enable_warning_as_error): Likewise.
13597         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
13598         use in the history chain.
13599         * doc/extend.texi: Document pragma GCC diagnostic changes.
13600
13601 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
13602
13603         * dwarf2out.c (add_linkage_name): New function.  Don't add
13604         anything to DW_TAG_member DIEs.
13605         (add_name_and_src_coords_attributes): Use it.
13606         (gen_variable_die): Call it for C++ static data members if
13607         specification is DW_TAG_member.
13608
13609         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
13610         C++ char16_t and char32_t.
13611
13612         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
13613         * genattrtab.c: Include vecprim.h.
13614         (cached_attrs, cached_attr_count, attrs_seen_once,
13615         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
13616         attrs_cached_after): New variables.
13617         (find_attrs_to_cache): New function.
13618         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
13619         (write_test_expr): Add attrs_cached argument, return it too,
13620         attempt to cache non-const attributes used more than once in
13621         a single case handling.
13622         (write_attr_get): Use find_attrs_to_cache, for caching candidates
13623         emit cached_* variables.  Adjust write_attr_set callers.
13624         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
13625         to find attributes that should be cached in this block.  Adjust
13626         write_test_expr callers.
13627         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
13628         callers.
13629         (make_automaton_attrs): Adjust write_test_expr caller.
13630
13631         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
13632         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
13633         (make_automaton_attrs): If find_tune_attr returns non-NULL,
13634         write separate internal_dfa_insn_code_* and insn_default_latency_*
13635         functions for each attribute's value and emit init_sched_attrs
13636         function and function pointers.
13637         * genattr.c (const_attrs, reservations): New variables.
13638         (gen_attr): Add const attributes to const_attrs vector.
13639         (check_tune_attr, find_tune_attr): New functions.
13640         (main): Add reservations to reservations vector.  If find_tune_attr
13641         returns true, add prototype for init_sched_attrs and make
13642         internal_dfa_insn_code and insn_default_latency function pointers,
13643         otherwise define init_sched_attrs as dummy macro.
13644         * cfgexpand.c: Include insn-attr.h.
13645         (gimple_expand_cfg): Call init_sched_attrs.
13646
13647         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
13648
13649         PR target/44575
13650         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
13651         va_arg from a set of register save slots into a temporary,
13652         if the container is bigger than type size, do the copying
13653         using smaller mode or using memcpy.
13654
13655         PR bootstrap/44426
13656         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
13657         prototype.
13658         (sel_print_to_dot): Remove macro.
13659         (sel_print): Likewise.  New prototype.
13660         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
13661         (sel_print): New function.
13662
13663 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13664
13665         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
13666         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
13667
13668 2010-06-21  Nick Clifton  <nickc@redhat.com>
13669
13670         * config/rx/rx.h (PTRDIFF_TYPE): Define.
13671         (SMALL_REGISTER_CLASS): Define (to zero).
13672         (PRINT_OPERAND): Delete.
13673         (PRINT_OPERAND_ADDRESS): Delete.
13674         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
13675         (rx_print_operand_address): Delete prototype.
13676         * config/rx/rx.c (rx_print_operand): Make static.
13677         Allow %H and %L to handle CONST_DOUBLEs.
13678         (rx_print_operand_address): Make static.
13679         (rx_gen_move_template): Rename local variable 'template' to
13680         out_template.
13681         (rx_function_arg): Do not pass unknown sized objects in registers.
13682         (TARGET_PRINT_OPERAND): Define.
13683         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13684
13685 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
13686
13687         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
13688
13689 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
13690
13691         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
13692         stack-alignment for simple leaf-functions.
13693
13694 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
13695
13696         * doc/install.texi: Document bootstrap-lto.
13697
13698 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
13699
13700         PR debug/44248
13701         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
13702         (input_function): Drop them here, if VTA is disabled.
13703
13704 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
13705
13706         PR target/44546
13707         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
13708         New predicate.
13709         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
13710         ix86_swapped_fp_comparsion_operator instead of
13711         ix86_fp_comparison_operator.
13712
13713         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
13714         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
13715         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
13716         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
13717         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
13718         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
13719
13720 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
13721
13722         PR other/32998
13723         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
13724         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
13725         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
13726         (decode_cmdline_option): Update for this return value.  Set
13727         orig_option_with_args_text field.  Set arg field for unknown
13728         options.  Make static.
13729         (decode_cmdline_options_to_array): New.
13730         (prune_options): Update handling of find_opt return value.
13731         * opts.c (read_cmdline_option): Take decoded option.  Return void.
13732         (read_cmdline_options): Take decoded options.
13733         (decode_options): Add parameters for decoded options.  Use
13734         decode_cmdline_options_to_array.  Use decoded options for -O
13735         scan.  Use integral_argument for -O parameters.  Update call to
13736         read_cmdline_options.
13737         (enable_warning_as_error): Update handling of find_opt return value.
13738         * opts.h: Update comment on unknown options.
13739         (struct cl_decoded_option): Update comments on opt_index and arg.
13740         Add orig_option_with_args_text.
13741         (decode_cmdline_option): Remove.
13742         (decode_cmdline_options_to_array): Declare.
13743         (decode_options): Update prototype.
13744         * toplev.c (save_argv): Remove.
13745         (save_decoded_options, save_decoded_options_count): New.
13746         (read_integral_parameter): Remove.
13747         (print_switch_values): Use decoded options.
13748         (toplev_main): Don't set save_argv.  Update call to decode_options.
13749         * toplev.h (read_integral_parameter): Remove.
13750         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
13751
13752 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
13753
13754         PR target/44072
13755         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
13756         immediate.
13757         * constraints.md (Pw, Px): New constraints.
13758         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
13759
13760 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
13761
13762         * config/i386/sse.md (fma4modesuffixf4): Removed.
13763         (ssemodesuffixf2s): Likewise.
13764         (ssemodesuffixf4): Likewise.
13765         (ssemodesuffixf2c): Likewise.
13766         (ssescalarmodesuffix2s): Likewise.
13767         (avxmodesuffixf2c): Likewise.
13768         (ssemodesuffix): New.
13769         (ssescalarmodesuffix): Likewise.
13770         Update patterns with ssemodesuffix and ssescalarmodesuffix.
13771
13772 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
13773
13774         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
13775
13776 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
13777
13778         * stor-layout.c (debug_rli): Remove unused local variables.
13779
13780 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
13781
13782         PR rtl-optimization/40900
13783         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
13784         original expression for later reuse.
13785         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
13786         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
13787
13788 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
13789
13790         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
13791         double_int_fits_in_uhwi_p): Implement as static inline.
13792         (double_int_xor): New inline function.
13793         (double_int_lrotate, double_int_rrotate, double_int_max,
13794         double_int_umax, double_int_smax, double_int_min, double_int_umin,
13795         double_int_smin): Declare.
13796         (lrotate_double, rrotate_double): Remove declaration.
13797         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
13798         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
13799         (double_int_lrotate, double_int_rrotate, double_int_max,
13800         double_int_umax, double_int_smax, double_int_min, double_int_umin,
13801         double_int_smin): New function.
13802         * fold-const.c (int_const_binop): Clean up, use double_int_*
13803         functions.
13804         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
13805         double_int_* and immed_double_int_const functions.
13806
13807 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
13808
13809         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
13810         * function.c (types_used_by_cur_var_decl): Likewise.
13811         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
13812
13813 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
13814
13815         * tree.h (record_layout_info): Change type of pending_statics field
13816         to a VEC.
13817         * stor-layout.c (start_record_layout): Store NULL into
13818         pending_statics.
13819         (debug_rli): Call debug_vec_tree instead of debug_tree.
13820         (place_field): Likewise.
13821         (finish_record_layout): Likewise.
13822
13823 2010-06-18  Alan Modra  <amodra@gmail.com>
13824
13825         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
13826
13827 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13828
13829         PR target/43740
13830         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
13831         for SET source operand from SET destination operand.
13832
13833 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
13834
13835         PR rtl-optimization/39871
13836         * reload1.c (init_eliminable_invariants): For flag_pic, disable
13837         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
13838         (function_invariant_p): Rule out a plus of frame or arg pointer with
13839         a SYMBOL_REF.
13840         * ira.c (find_reg_equiv_invariant_const): Likewise.
13841
13842 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
13843
13844         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
13845         print_operand_address and puts to output the operand for CONST.
13846
13847 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
13848
13849         PR debug/44572
13850         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
13851         hook.
13852
13853 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13854
13855         * v850-protos.h (print_operand): Delete.
13856         (print_operand_address): Delete.
13857         * v850.h (PRINT_OPERAND): Delete.
13858         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13859         (PRINT_OPERAND_ADDRESS): Delete.
13860         * v850.c (print_operand_address): Rename to...
13861         (v850_print_operand_address): ...this.  Make static. Call
13862         v850_print_operand.
13863         (print_operand): Rename to...
13864         (v850_print_operand): ...this.  Make static.  Call
13865         v850_print_operand_address.
13866         (v850_print_operand_punct_valid_p): New function.
13867         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13868         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13869
13870 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13871
13872         * config/sh/sh-protos.h (print_operand): Delete.
13873         (print_operand_address): Delete.
13874         * config/sh/sh.h (PRINT_OPERAND): Delete.
13875         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13876         (PRINT_OPERAND_ADDRESS): Delete.
13877         * config/sh/sh.c (sh_print_operand_address): Make static.
13878         (sh_print_operand): Make static.  Call sh_print_operand_address
13879         and sh_print_operand.
13880         (sh_print_operand_punct_valid_p): New function.
13881         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13882         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13883
13884 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13885
13886         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
13887         (mcore_print_operand_address): Delete.
13888         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
13889         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13890         (PRINT_OPERAND_ADDRESS): Delete.
13891         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
13892         (mcore_print_operand): Make static.
13893         (mcore_print_operand_punct_valid_p): New function.
13894         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
13895         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13896
13897 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13898
13899         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
13900         (print_operand_address): Delete.
13901         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
13902         (PRINT_OPERAND_ADDRESS): Delete.
13903         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
13904         static.
13905         (m68hc11_print_operand): Make static.
13906         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13907
13908 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13909
13910         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
13911         (m32r_print_operand_address): Delete.
13912         * config/m32r/m32r.h (m32r_punct_chars): Delete.
13913         (PRINT_OPERAND): Delete.
13914         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13915         (PRINT_OPERAND_ADDRESS): Delete.
13916         * config/m32r/m32r.c (m32r_punct_chars): Make static.
13917         (m32r_print_operand_address): Make static.
13918         (m32r_print_operand): Make static.
13919         (m32r_print_operand_punct_valid_p): New function.
13920         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13921         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13922
13923 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13924
13925         * config/iq2000/iq2000-protos.h (print_operand): Delete.
13926         (print_operand_address): Delete.
13927         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
13928         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13929         (PRINT_OPERAND_ADDRESS): Delete.
13930         (iq2000_print_operand_punct): Delete.
13931         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
13932         (iq2000_print_operand_address): Make static.
13933         (iq2000_print_operand): Make static.
13934         (iq2000_print_operand_punct_valid_p): New function.
13935         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13936         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13937
13938 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13939
13940         * config/frv/frv-protos.h (frv_print_operand): Delete.
13941         (frv_print_operand_address): Delete.
13942         * config/frv/frv.h (PRINT_OPERAND): Delete.
13943         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13944         (PRINT_OPERAND_ADDRESS): Delete.
13945         * config/frv/frv.c (frv_print_operand_address): Make static.
13946         (frv_print_operand): Make static.
13947         (frv_print_operand_punct_valid_p): New function.
13948         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13949         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13950
13951 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13952
13953         * tree.h (vec_member): Declare.
13954         * tree.c (vec_member): Define.
13955
13956 2010-06-17  Richard Guenther  <rguenther@suse.de>
13957
13958         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
13959         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
13960
13961 2010-06-17  Richard Guenther  <rguenther@suse.de>
13962
13963         * tree-inline.c (declare_return_variable): Remove bogus code.
13964
13965 2010-06-17  Richard Guenther  <rguenther@suse.de>
13966
13967         * gimplify.c (gimplify_bind_expr): Always promote complex
13968         and vector variables to registers if possible.
13969
13970 2010-06-17  Richard Guenther  <rguenther@suse.de>
13971
13972         * expr.c (get_inner_reference): Use double_int for bit_offset
13973         calculation.
13974
13975 2010-06-16  DJ Delorie  <dj@redhat.com>
13976
13977         * common.opt (-fstrict-volatile-bitfields): new.
13978         * doc/invoke.texi: Document it.
13979         * fold-const.c (optimize_bit_field_compare): For volatile
13980         bitfields, use the field's type to determine the mode, not the
13981         field's size.
13982         * expr.c (expand_assignment): Likewise.
13983         (get_inner_reference): Likewise.
13984         (expand_expr_real_1): Likewise.
13985         * expmed.c (store_fixed_bit_field): Likewise.
13986         (extract_bit_field_1): Likewise.
13987         (extract_fixed_bit_field): Likewise.
13988
13989 2010-06-16  Richard Guenther  <rguenther@suse.de>
13990
13991         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
13992
13993 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
13994
13995         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
13996         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
13997         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
13998         * debug.c: Likewise.
13999         * sdbout.c: Likewise.
14000         * vmsdbgout.c: Likewise.
14001         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
14002         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
14003         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
14004         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
14005         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
14006         * dwarf2out.c (dw_fde_struct): New fields
14007         dw_fde_vms_{end,begin}_prologue.
14008         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
14009         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
14010         (dwarf2out_vms_end_prologue): New function.
14011         (dwarf2out_vms_begin_epilogue): New function.
14012         (dw_val_struct): New value dw_val_class_vms_delta.
14013         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
14014         begin_epilogue for VMS.
14015         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
14016         new static functions.
14017         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
14018         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
14019         static functions.
14020         (print_die): New case dw_val_class_vms_delta.
14021         (attr_checksum): Likewise.
14022         (same_dw_val_p: Likewise.
14023         (size_of_die): Likewise.
14024         (value_format): Likewise.
14025         (output_die): Likewise.
14026         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
14027         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
14028         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
14029         dwarf2out_cfi_begin_epilogue
14030         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
14031
14032 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
14033
14034         * config/cris/cris-protos.h (cris_print_operand): Delete.
14035         (cris_print_operand_address): Delete.
14036         * config/cris/cris.h (PRINT_OPERAND): Delete.
14037         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14038         (PRINT_OPERAND_ADDRESS): Delete.
14039         * config/cris/cris.c (cris_print_operand_address): Make static.
14040         (cris_print_operand): Make static.
14041         (cris_print_operand_punct_valid_p): New function.
14042         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14043         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14044
14045 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
14046
14047         * config/arm/arm-protos.h (arm_print_operand): Delete.
14048         (arm_print_operand_address): Delete.
14049         * config/arm/arm.h (PRINT_OPERAND): Delete.
14050         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14051         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
14052         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
14053         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
14054         (arm_print_operand): Make static.
14055         (arm_print_operand_punct_valid_p): New function.
14056         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14057         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14058
14059 2010-06-16  Nick Clifton  <nickc@redhat.com>
14060
14061         * config/rx/constraints.md (NEGint4): New constraint.
14062         * config/rx/rx.md (attr cc): Add set_zsc.
14063         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
14064         initialised.
14065         (cmpsf): Likewise.
14066         (call_internal): Clobber the cc0 register.
14067         (call_value_internal): Likewise.
14068         (cstoresi4): Likewise.
14069         (movsieq): Likewise.
14070         (movsine): Likewise.
14071         (addsi3): Add alternative to handle small negative constants.
14072         (sunsi3): Likewise.
14073         (addsi3): Do not set the O bit in the cc0 register.
14074         (adddi3): Likewise.
14075         (subsi3): Likewise.
14076         (subdi3): Likewise.
14077         (andsi3): Reorder alternatives to prefer shorter forms.
14078         (mulsi3): Likewise.
14079         (iorsi3): Likewise.
14080         (negsi2): Note that the cc0 flags are set.
14081         (rotlsi3): Note that only the Z and S bits are set in cc0.
14082         (lshrsi3): Likewise.
14083         (ashlsi3): Likewise.
14084         (subsf3): Use %Q for the MEM operand.
14085         (fix_truncsfsi2): Likewise.
14086         (floatsisf2): Likewise.
14087         (bitset): Remove early clobber from destination.
14088         (bitset_in_memory): Likewise.
14089         (lrintsf2): Clobber the cc0 register.
14090         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
14091         (rx_print_operand): Handle %N.
14092
14093 2010-06-16  Jan Hubicka  <jh@suse.cz>
14094
14095         * df-core.c (df_compact_blocks): Free problem_temps vector.
14096
14097 2010-06-16  Martin Jambor  <mjambor@suse.cz>
14098
14099         PR tree-optimization/43905
14100         * tree-sra.c: Include tree-inline.h.
14101         (create_abstract_origin): Removed.
14102         (modify_function): Version the call graph node instead of creating
14103         abstract origins and dealing with same_body aliases.
14104         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
14105         function is versionable.
14106         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
14107
14108 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
14109
14110         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
14111         (CHOOSE_DYNAMIC_LINKER): Update.
14112
14113 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
14114
14115         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
14116         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
14117         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
14118         *prefetch_3dnow_rex.
14119
14120 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
14121
14122         * target.h (struct asm_out):Add declare_constant_name field.
14123         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
14124         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
14125         * output.h (default_asm_declare_constant_name): Declare.
14126         (assemble_label): Update prototype.
14127         * varasm.c (assemble_constant_contents): Use
14128         targetm.asm_out.declare_constant_name target hook.
14129         (assemble_label): Add 'file' argument.
14130         (default_asm_declare_constant_name): New function.
14131         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
14132         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
14133         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
14134
14135         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
14136         * config/darwin.c (darwin_asm_declare_constant_name): New function.
14137         (machopic_output_indirection): Update assemble_label argument list.
14138         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
14139         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
14140
14141 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
14142
14143         PR middle-end/44391
14144         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
14145         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
14146
14147 2010-06-15  Richard Guenther  <rguenther@suse.de>
14148
14149         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
14150
14151 2010-06-15  Paul Brook  <paul@codesourcery.com>
14152
14153         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
14154         hard-float ABI.
14155
14156 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
14157
14158         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
14159         don't get a vector type for output.
14160
14161 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
14162
14163         PR fortran/44536
14164         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
14165         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
14166         (LANG_HOOKS_DECLS): Add it.
14167         * gimplify.c (omp_notice_variable): Call
14168         lang_hooks.decls.omp_report_decl.
14169
14170 2010-06-15  Martin Jambor  <mjambor@suse.cz>
14171
14172         PR lto/44464
14173         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
14174         on the newly dead SSA name.
14175
14176 2010-06-15  Alan Modra  <amodra@gmail.com>
14177
14178         * doc/invoke.texi: Add mcmodel to powerpc options.
14179         * configure.ac: Add HAVE_LD_LARGE_TOC test.
14180         * configure: Regenerate.
14181         * config.in: Regenerate.
14182         * config/rs6000/linux64.opt (mcmodel): New.
14183         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
14184         (TARGET_CMODEL, SET_CMODEL): Define.
14185         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
14186         select CMODEL_MEDIUM default.
14187         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
14188         (TARGET_CMODEL): Define default.
14189         * config/rs6000/rs6000.c (cmodel): New variable.
14190         (rs6000_explicit_options): Add cmodel field.
14191         (rs6000_handle_option): Handle -mcmodel.
14192         (create_TOC_reference): Add largetoc_reg param.  Generate high,
14193         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
14194         (rs6000_delegitimize_address): Recognise new toc reference rtl
14195         and minimal-toc rtl.
14196         (rs6000_legitimize_reload_address): Handle new toc references.
14197         (print_operand_address): Handle legitimate_constant_pool_address_p
14198         match before lo_sum.
14199         (rs6000_eliminate_indexed_memrefs): Tidy.
14200         (rs6000_emit_move): Tweak threshold for inlining constants.
14201         Keep rs6000_emit_allocate_stack large stack frame offsets
14202         loaded into r0 inline.
14203         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
14204         (tocrel_base, tocrel_offset): New variables.
14205         (toc_relative_expr_p): Set them here.
14206         (print_operand_address): Skip over any offset on constant pool address.
14207         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
14208         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
14209         (offsettable_ok_by_alignment): New function.
14210         (rs6000_emit_move): Address suitably aligned local symbol_refs
14211         relative to the toc pointer for -mcmodel=medium.
14212         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
14213         strict param.  Allow lo_sum version of addressing.  Verify reg
14214         used for -mminimal-toc and -mcmodel != small.  Update all callers.
14215         * config/rs6000/constraints.md: Update for above change.
14216         * config/rs6000/predicates.md: Likewise.
14217         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
14218         code.
14219         (tls_gd): Split for -mcmodel=medium/large.
14220         (tls_gd_high, tls_gd_low): New.
14221         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
14222         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
14223         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
14224         (largetoc_high, largetoc_low): New.
14225         (cmptf_internal2): Add clobber.
14226         * config/rs6000/rs6000-protos.h: Update.
14227
14228 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
14229
14230         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
14231         true if no prefetch is going to be generated for a given group.
14232         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
14233         estimate the prefetch_count.
14234         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
14235         prefetch count by considering the unroll_factor and prefetch_mod
14236         for is_loop_prefetching_profitable.
14237
14238 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
14239
14240         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
14241         anything if the argument is not a MEM.
14242
14243 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
14244
14245         PR debug/43650
14246         PR debug/44181
14247         PR debug/44247
14248         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
14249         debug stmts.
14250         (canonicalize_loop_ivs): Likewise.
14251
14252 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
14253
14254         PR debug/43656
14255         * haifa-sched.c (setup_insn_reg_pressure_info,
14256         update_register_pressure): Reject debug insns.
14257         (ready_sort): Don't setup reg pressure for debug insns.
14258         (schedule_insn): Don't update reg pressure for debug insns.
14259
14260 2010-06-14  Richard Guenther  <rguenther@suse.de>
14261
14262         * lto-streamer.c (cached_bp): Remove.
14263         (bitpack_delete): Likewise.
14264         (bitpack_create): Likewise.
14265         (bp_get_next_word): Likewise.
14266         (bp_pack_value, bp_unpack_value): Move ...
14267         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
14268         Re-implement.
14269         (struct bitpack_d): Likewise.
14270         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
14271         New inline functions.
14272         * lto-streamer-out.c (lto_output_bitpack): Remove.
14273         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
14274         (pack_value_fields): Adjust.
14275         (lto_write_tree): Likewise.
14276         (output_gimple_stmt): Likewise.
14277         (output_function): Likewise.
14278         * lto-streamer-in.c (input_gimple_stmt): Adjust.
14279         (input_function): Likewise.
14280         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
14281         (lto_input_bitpack): Remove.
14282         (lto_materialize_tree): Adjust.
14283         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
14284         * lto-cgraph.c (lto_output_edge): Adjust.
14285         (lto_output_node): Likewise.
14286         (lto_output_varpool_node): Likewise.
14287         (lto_output_ref): Likewise.
14288         (input_node): Likewise.
14289         (input_varpool_node): Likewise.
14290         (input_ref): Likewise.
14291         (input_edge): Likewise.
14292         (output_node_opt_summary): Likewise.
14293         (input_node_opt_summary): Likewise.
14294         * ipa-pure-const.c (pure_const_write_summary): Likewise.
14295         (pure_const_read_summary): Likewise.
14296         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
14297         (ipa_read_indirect_edge_info): Likewise.
14298         (ipa_write_node_info): Likewise.
14299         (ipa_read_node_info): Likewise.
14300
14301 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
14302
14303         PR target/44534
14304         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
14305         (vec_extract_lo_v16hi): Likewise.
14306         (vec_extract_lo_v32qi): Likewise.
14307
14308 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
14309
14310         PR bootstrap/44426
14311         * tree.h (build_call_expr): Don't define as vararg macro, instead
14312         add a prototype.
14313         * builtins.c (build_call_nofold): Remove.
14314         (expand_builtin_int_roundingfn, expand_builtin_pow,
14315         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
14316         expand_builtin_memset_args, expand_builtin_strcmp,
14317         expand_builtin_strncmp, expand_builtin_memory_chk): Use
14318         build_call_nofold_loc instead of build_call_nofold.
14319         (build_call_expr): New function.
14320
14321         PR tree-optimization/44508
14322         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
14323         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
14324         don't eliminate trivially dead stmts.
14325         * tree-vrp.c (vrp_finalize): Pass false as last argument
14326         to substitute_and_fold.
14327         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
14328         to substitute_and_fold.
14329         * tree-ssa-ccp.c (ccp_finalize): Likewise.
14330
14331         PR bootstrap/44509
14332         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
14333
14334 2010-06-14  Ira Rosen  <irar@il.ibm.com>
14335
14336         PR tree-optimization/44507
14337         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
14338         to build initial vector for BIT_AND_EXPR.
14339         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
14340
14341 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
14342
14343         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
14344         adjust z10prop set_attr.
14345
14346 2010-06-13  Jan Hubicka  <jh@suse.cz>
14347
14348         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
14349         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
14350         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
14351         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
14352         datastructure checks into checking asserts.
14353         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
14354         * tree-ssa-sccvn.c (VN_INFO): Likewise.
14355         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
14356         df_ref_create_structure): Likewise.
14357         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
14358         pool_free): Use gcc_checking_assert.
14359         * alias.c (get_alias_set): Likewise.
14360         * var-tracking.c (variable_htab_free, shared_hash_copy,
14361         canonicalize_values_mark, variable_merge_over_cur): Likewise.
14362         * lto-streamer.c (bp_unpack_value): Likewise.
14363
14364 2010-06-13  Richard Guenther  <rguenther@suse.de>
14365
14366         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
14367         Do not stream but initialize TYPE_CANONICAL to NULL.
14368         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
14369         * gimple.c (gimple_types_compatible_p): Disregard
14370         TYPE_STRUCTURAL_EQUALITY_P.
14371         (gimple_register_type): Use TYPE_CANONICAL as cache.
14372         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
14373         before registering common types.
14374         * config/i386/i386.c (ix86_function_arg_boundary): Do not
14375         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
14376         * tree.h (TYPE_CANONICAL): Clarify documentation.
14377
14378 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
14379
14380         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14381         LIBCALL_VALUE): Remove macros.
14382         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
14383         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14384         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14385         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
14386         (ia64_function_value): Make static. Handle receiving the function
14387         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
14388
14389 2010-06-12  Jan Hubicka  <jh@suse.cz>
14390
14391         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
14392         at correct place.
14393
14394 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
14395
14396         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
14397
14398 2010-06-12  Jan Hubicka  <jh@suse.cz>
14399
14400         * df-core.c (df_clear_bb_info): New function.
14401         (df_set_blocks): bb_info is always allocated.
14402         (df_get_bb_info): Use block_info_elt_size.
14403         (df_set_bb_info): Likewise.
14404         (df_compact_blocks): Update for new block_info.
14405         (grow_bb_info): New function.
14406         * df-problems.c (df_grow_bb_info): Move to df-core.c
14407         (df_rd_set_bb_info): Remove.
14408         (df_rd_free_bb_info): Do not free block pool.
14409         (df_rd_alloc): Do not create pool, use check for
14410         obstack presence instead of NULL pointer for new blocks.
14411         (df_rd_free): DO not free alloc pool; clear block_info.
14412         (problem_RD): Add size of block info structure.
14413         (df_lr_set_bb_info): Remove.
14414         (df_lr_free_bb_info): Do not free block pool.
14415         (df_lr_alloc): Do not create pool, use check for
14416         obstack presence instead of NULL pointer for new blocks.
14417         (df_lr_free): DO not free alloc pool; clear block_info.
14418         (problem_LR): Add size of block info structure.
14419         (df_live_set_bb_info): Remove.
14420         (df_live_free_bb_info): Do not free block pool.
14421         (df_live_alloc): Do not create pool, use check for
14422         obstack presence instead of NULL pointer for new blocks.
14423         (df_live_free): DO not free alloc pool; clear block_info.
14424         (problem_LIVE): Add size of block info structure.
14425         (problem_CHAIN): Add size of block info structure.
14426         (df_byte_lr_set_bb_info): Remove.
14427         (df_byte_lr_free_bb_info): Do not free block pool.
14428         (df_byte_lr_alloc): Do not create pool, use check for
14429         obstack presence instead of NULL pointer for new blocks.
14430         (df_byte_lr_free): DO not free alloc pool; clear block_info.
14431         (problem_BYTE_LR): Add size of block info structure.
14432         (problem_NOTE): Add size of block info structure.
14433         (df_byte_MD_set_bb_info): Remove.
14434         (df_byte_MD_free_bb_info): Do not free block pool.
14435         (df_byte_MD_alloc): Do not create pool, use check for
14436         obstack presence instead of NULL pointer for new blocks.
14437         (df_byte_MD_free): DO not free alloc pool; clear block_info.
14438         (problem_BD): Add size of block info structure.
14439         * df-scan.c (df_scan_free_internal): Free block pool.
14440         (df_scan_set_bb_info): Remove.
14441         (df_scan_free_bb_info): Check for artificial_defs instead
14442         of bb_info being non-NULL.
14443         (df_scan_alloc): DO not create df_scan_block pool.
14444         (problem_SCAN): Set size of block info.
14445         (df_bb_refs_record): Do not allocate bb_info.
14446         * df.h (df_problem): Add block_info_elt_size.
14447         (struct dataflow): Change block_info to void *.
14448         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
14449         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
14450         in-line structures.
14451
14452 2010-06-12  Jan Hubicka  <jh@suse.cz>
14453
14454         PR tree-optimize/44485
14455         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
14456         containing use of return value of noreturn function.
14457
14458 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
14459
14460         * targhooks.c (default_function_value): Don't use
14461         FUNCTION_OUTGOING_VALUE.
14462         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
14463         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
14464
14465 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
14466
14467         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
14468         Add crtfastmath.o to extra_parts.
14469         * config/mips/crtfastmath.c: New.
14470         * config/mips/linux.h (ENDFILE_SPEC): New.
14471
14472 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
14473
14474         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
14475         old_type in parameter.
14476         (gcc_type_for_value): Update call to gcc_type_for_interval.
14477         (compute_type_for_level_1): Renamed compute_type_for_level.
14478         Update call to gcc_type_for_interval.
14479
14480 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14481
14482         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
14483         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
14484
14485 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14486
14487         * opts-common.c: Include options.h.
14488         (integral_argument): Move from opts.c.
14489         (decode_cmdline_option): New.  Based on read_cmdline_option.
14490         * opts.c (integral_argument): Move to opts-common.c.
14491         (read_cmdline_option): Move most contents to
14492         decode_cmdline_option.  Use %qs in diagnostics.
14493         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
14494         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
14495         decode_cmdline_option): New.
14496
14497 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14498
14499         PR target/44481
14500         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
14501         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
14502         (partiysi2_cmp): Ditto.
14503         (*partiyhi2_cmp): Ditto.
14504         (*parityqi2_cmp): Remove.
14505
14506 2010-06-11  Jan Hubicka  <jh@suse.cz>
14507
14508         * bitmap.h (bmp_iter_next_bit): New.
14509         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
14510
14511 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
14512             Eric Botcazou  <ebotcazou@adacore.com>
14513
14514         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
14515         computed cost.
14516
14517 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14518
14519         * config/i386/i386.md (unspec): New define_c_enum.
14520         (unspecv): Ditto.
14521
14522 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
14523
14524         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
14525
14526 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
14527
14528         PR middle-end/44483
14529         * tree-if-conv.c (bb_predicate_s): New struct.
14530         (bb_predicate_p): New.
14531         (bb_has_predicate): New.
14532         (bb_predicate): New.
14533         (set_bb_predicate): New.
14534         (bb_predicate_gimplified_stmts): New.
14535         (set_bb_predicate_gimplified_stmts): New.
14536         (add_bb_predicate_gimplified_stmts): New.
14537         (init_bb_predicate): New.
14538         (free_bb_predicate): New.
14539         (is_predicated): Use bb_predicate.
14540         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
14541         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
14542         before processing their successors.
14543         (clean_predicate_lists): Removed.
14544         (find_phi_replacement_condition): Use bb_predicate.
14545         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
14546         computations.
14547         (insert_gimplified_predicates): New.
14548         (combine_blocks): Call insert_gimplified_predicates.
14549         (tree_if_conversion): Call free_bb_predicate instead of
14550         clean_predicate_lists.
14551
14552 2010-10-11  Paul Brook  <paul@codesourcery.com>
14553
14554         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
14555         * config/arm/arm.c (all_architectures): Change v7e-m default to
14556         cortexm4.
14557         * config/arm/arm-cores.def: Add cortex-m4.
14558         * config/arm/arm-tune.md: Regenerate.
14559
14560 2010-06-11  Jan Hubicka  <jh@suse.cz>
14561
14562         * ipa-pure-const.c (special_builtlin_state): New function.
14563         (check_call): Use it instead of special casign BUILT_IN_RETURN.
14564         (propagate_pure_const): Use it.
14565
14566 2010-06-11  Jan Hubicka  <jh@suse.cz>
14567
14568         * df-problems.c (df_live_scratch): Convert to bitmap_head.
14569         (df_live_alloc): Initialize df_live_scratch when initializing
14570         problem_data.
14571         (df_live_transfer_function): Update uses of df_live_scratch.
14572         (df_live_free): Free problem_data; clear df_live_scratch before
14573         releasing the obstack.
14574         (df_md_free): Free problem data.
14575
14576 2010-06-11  Jan Hubicka  <jh@suse.cz>
14577
14578         * doc/invoke.texi (Wsuggest-attribute): Document.
14579         (Wmissing-noreturn): Remove.
14580         * ipa-pure-const.c (warn_function_noreturn): New function.
14581         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
14582         warn_missing_noreturn.
14583         * common.opt (Wsuggest-attribute=noreturn): New.
14584         * tree-flow.h (warn_function_noreturn): Declare.
14585         * tree-cfg.c (execute_warn_function_noreturn): Use
14586         warn_function_noreturn.
14587         (gate_warn_function_noreturn): New.
14588         (pass_warn_function_noreturn): Update.
14589
14590 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14591
14592         * c-typeck.c (handle_warn_cast_qual): Add loc
14593         parameter. Improve warning message.
14594         (build_c_cast): Pass location to handle_warn_cast_qual.
14595
14596 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14597
14598         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
14599         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
14600         insn mnemonic.
14601         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
14602
14603 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
14604
14605         Fix bootstap on mips
14606         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
14607         be naming typedefs.
14608
14609 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
14610
14611         * system.h (helper_const_non_const_cast): New inline for
14612         gcc version <= 4.0.
14613         (CONST_CAST2): For gcc version <= 4.0 use
14614         new helper to do const/non-const casting.
14615
14616 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14617
14618         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
14619         * Makefile.in (OBJS-common): Include insn-enums.o.
14620         (insn-enums.o): New rule.
14621         (simple_generated_c): Add insn-enums.c.
14622         (build/genenums.o): New rule.
14623         (genprogmd): Add "enums".
14624         * genconstants.c (print_enum_type): Declare a C string array
14625         for each enum.
14626         * genenums.c: New file.
14627         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
14628         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
14629         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
14630
14631 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14632
14633         * doc/md.texi (define_enum_attr): Document.
14634         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
14635         * read-md.h (lookup_enum_type): Declare.
14636         * read-md.c (lookup_enum_type): New function.
14637         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
14638         * genattrtab.c (attr_desc): Add an enum_name field.
14639         (evaluate_eq_attr): Take the associated attribute as argument.
14640         Get the enum prefix from the enum_name field, if defined.
14641         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
14642         (simplify_test_exp): Pass attr to evaluate_eq_attr.
14643         (add_attr_value): New function, split out from...
14644         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
14645         (write_test_expr): Pass attr to evaluate_eq_attr.
14646         (write_attr_get): Use the enum_name as the enum tag, if defined.
14647         (write_attr_valueq): Use the enum_name as a prefix, if defined.
14648         (find_attr): Initialize enum_name.
14649         (main): Handle DEFINE_ENUM_ATTR.
14650         * gensupport.c (process_rtx): Likewise.
14651         * config/mips/mips.h (mips_tune_attr): Delete.
14652         * config/mips/mips.md (cpu): Use define_attr_enum.
14653
14654 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14655
14656         * doc/md.texi (define_c_enum, define_enum): Document.
14657         * read-md.h (md_constant): Add a parent_enum field.
14658         (enum_value, enum_type): New structures.
14659         (upcase_string, traverse_enum_types): Declare.
14660         * read-md.c (enum_types): New variable.
14661         (upcase_string, add_constant): New functions.
14662         (handle_constants): Don't create the hash table here.
14663         Use add_constant.
14664         (traverse_md_constants): Don't check for a null md_constants.
14665         (decimal_string, handle_enum, traverse_enum_types): New functions.
14666         (read_md_files): Initialize md_constants and md_enums.
14667         * genconstants.c (print_md_constant): Ignore info argument.
14668         Only print constants that belong to no enum.
14669         (print_enum_type): New function.
14670         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
14671         for each defined enum type.
14672         * config/mips/mips.md (processor): New define_enum.
14673         (unspec): New define_c_enum.
14674         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
14675         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
14676         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
14677         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
14678         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
14679         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
14680         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
14681         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
14682         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
14683         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
14684         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
14685         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
14686         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
14687         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
14688         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
14689         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
14690         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
14691         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
14692         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
14693         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
14694         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
14695         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
14696         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14697         (UNSPEC_RDDSP): Move to mips-dsp.md.
14698         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
14699         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
14700         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
14701         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
14702         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
14703         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
14704         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
14705         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
14706         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
14707         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
14708         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
14709         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
14710         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
14711         Moved to mips-dspr2.md.
14712         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
14713         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
14714         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
14715         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
14716         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
14717         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
14718         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14719         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14720         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14721         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
14722         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14723         UNSPEC_LOONGSON_PSADBH)
14724         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14725         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14726         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
14727         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14728         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14729         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14730         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
14731         (cpu): Update comment.
14732         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
14733         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
14734         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
14735         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
14736         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
14737         UNSPEC_LOONGSON_PCMPEQ)
14738         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
14739         UNSPEC_LOONGSON_PINSR_0)
14740         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14741         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14742         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14743         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
14744         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14745         UNSPEC_LOONGSON_PSADBH)
14746         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14747         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14748         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
14749         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14750         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14751         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14752         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
14753         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
14754         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
14755         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
14756         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
14757         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
14758         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
14759         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
14760         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
14761         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
14762         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
14763         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
14764         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
14765         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
14766         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
14767         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
14768         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
14769         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
14770         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
14771         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
14772         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14773         (UNSPEC_RDDSP): Moved from mips.md.
14774         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
14775         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
14776         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
14777         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
14778         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
14779         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
14780         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
14781         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
14782         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
14783         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
14784         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
14785         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
14786         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
14787         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
14788         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
14789         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
14790         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
14791         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
14792         (UNSPEC_SCC): Moved from mips.md.
14793         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
14794         "processor_type" to "processor".
14795         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
14796         * config/mips/mips.h (processor_type): Delete.
14797         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
14798         "processor_type" to "processor".
14799
14800 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14801
14802         * configure.ac (tm_include_list): Add insn-constants.h.
14803         * configure: Regenerate.
14804         * Makefile.in (GTM_H): Move insn-constants.h here from...
14805         (TM_H): ...here.
14806         * mkconfig.sh: Remove special handling for insn-constants.h.
14807
14808 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14809
14810         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
14811         (BUILD_MD): ...this new variable.
14812         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
14813         that include the old contents of simple_generated_h and
14814         simple_generated_c.
14815         (simple_generated_h, simple_generated_c): Include them.  Add
14816         insn-constants.h.
14817         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
14818         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
14819         Remove these dependencies from the main rule and include
14820         insn-conditions.md in the command line only if it appears
14821         in the dependency list.
14822         (insn-constants.h, s-constants): Delete.
14823         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
14824         or gensupport.h.
14825         (build/genmddeps.o): Likewise.
14826         (genprogrtl): New variable that contains everything from genprogmd
14827         except mddeps and constants.
14828         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
14829         depend on $(BUILD_MD)
14830         (genprog): New variable.  Make these programs depend on
14831         $(BUILD_ERRORS).
14832         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
14833         (main): Use read_md_files instead of init_rtx_reader_args.
14834         * genconstants.c: As for genmddeps.c.
14835         * read-md.h (read_skip_construct): Declare.
14836         * read-md.c (read_skip_construct): New function.
14837         (handle_file): Allow a null handle_directive, skipping the
14838         construct if so.
14839         (parse_include): Update the comment accordingly.
14840
14841 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14842
14843         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
14844         * genmddeps.c: Include read-md.h.
14845         (main): Call init_rtx_reader_args instead of init_md_reader_args.
14846         * genattr.c (main): Likewise.
14847         * genattrtab.c (main): Likewise.
14848         * genautomata.c (main): Likewise.
14849         * gencodes.c (main): Likewise.
14850         * genconditions.c (main): Likewise.
14851         * genconfig.c (main): Likewise.
14852         * genconstants.c (main): Likewise.
14853         * genemit.c (main): Likewise.
14854         * genextract.c (main): Likewise.
14855         * genflags.c (main): Likewise.
14856         * genopinit.c (main): Likewise.
14857         * genoutput.c (main): Likewise.
14858         * genpeep.c (main): Likewise.
14859         * genrecog.c (main): Likewise.
14860         * genpreds.c (main): Likewise.
14861         * gensupport.h (in_fname): Move to read-md.h.
14862         (init_md_reader_args_cb): Rename to...
14863         (init_rtx_reader_args_cb): ...this and return a bool.
14864         (init_md_reader_args): Rename to...
14865         (init_rtx_reader_args): ...this and return a bool.
14866         (include_callback): Move to read-md.h.
14867         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
14868         (file_name_list, first_dir_md_include): Move to read-md.c
14869         (first_bracket_include): Delete unused variable.
14870         (last_dir_md_include): Move to read-md.c.
14871         (process_include): Delete, moving code to read-md.c:handle_include.
14872         (process_rtx): Don't handle INCLUDE.
14873         (save_string): Delete.
14874         (rtx_handle_directive): New function.
14875         (init_md_reader_args_cb): Rename to...
14876         (init_rtx_reader_args_cb): ...this and return a boolean success value.
14877         Use read_md_args.
14878         (init_md_reader_args): Rename to...
14879         (init_rtx_reader_args): ...this and return a boolean success value.
14880         * rtl.def (INCLUDE): Delete.
14881         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
14882         argument.
14883         * read-rtl.c (read_conditions): Don't gobble ')' here.
14884         (read_mapping): Likewise.
14885         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
14886         Handle top-level non-rtx constructs here rather than in read_rtx_1.
14887         Store the whole queue in *X.  Remove call to init_md_reader.
14888         (read_rtx_1): Rename to...
14889         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
14890         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
14891         here.
14892         (read_nested_rtx): New function.  Handle (nil) here rather than
14893         in read_rtx_code.
14894         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
14895         gobble ')' here.
14896         * read-md.h (directive_handler_t): New type.
14897         (in_fname, include_callback): Moved from read-md.h.
14898         (read_constants, init_md_reader): Delete.
14899         (read_md_files): Declare.
14900         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
14901         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
14902         from gensupport.c.
14903         (read_constants): Rename to...
14904         (handle_constants): ...this.  Don't gobble ')' here.
14905         (handle_include, handle_file, handle_toplevel_file)
14906         (parse_include): New functions, mostly taken from gensupport.c.
14907         (init_md_reader): Subsume into...
14908         (read_md_files): ...this new function.
14909
14910 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14911
14912         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
14913         (unread_char): Decrement read_md_lineno after putting back '\n'.
14914         * read-md.c (fatal_with_file_and_line): Push back any characters
14915         that we decide not to add to the context.
14916         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
14917         fatal_expected_char in cases where '/' ends a line (for example).
14918         (read_name): Don't increment read_md_lineno here.
14919         (read_escape): Likewise.
14920         (read_quoted_string): Likewise.
14921         (read_braced_string): Likewise.
14922
14923 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14924
14925         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
14926         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
14927         * genconstants.c: Include read-md.h.
14928         * read-rtl.c (md_constants): Move to read-md.c.
14929         (md_name): Move to read-md.h.
14930         (initialize_iterators): Use leading_string_hash instead of def_hash
14931         and leading_string_eq_p instead of def_name_eq_p.
14932         (read_name): Move to read-md.c.
14933         (def_hash, def_name_eq_p): Delete.
14934         (read_constants, traverse_md_constants): Move to read-md.c.
14935         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
14936         * read-md.h: Include hashtab.h.
14937         (md_name): Moved from read-rtl.c.
14938         (md_constant): Moved from read-md.h.
14939         (leading_string_hash, leading_string_eq_p, read_name)
14940         (read_constants, traverse_md_constants): Declare.
14941         * read-md.c (md_constants): Moved from read-rtl.c.
14942         (leading_string_hash, leading_string_eq_p): New functions.
14943         (read_name, read_constants, traverse_md_constants): Moved from
14944         read-rtl.c.
14945
14946 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14947
14948         * read-rtl.c (md_name): New structure.
14949         (read_name): Take an md_name instead of a buffer pointer.
14950         Use the "string" field instead of strcpy when expanding constants.
14951         (read_constants): Remove the tmp_char argument.  Update the calls
14952         to read_name, using two local name buffers instead of the tmp_char
14953         argument.  Merge the constant-creation code.
14954         (read_conditions): Remove the tmp_char argument.  Update the calls
14955         to read_name, using a local name buffer instead of the tmp_char
14956         argument.
14957         (read_mapping): Replace tmp_char variable with a local name buffer.
14958         Update the calls to read_name.
14959         (read_rtx_1): Likewise.  Update the calls to read_constants and
14960         read_conditions.
14961
14962 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14963
14964         * Makefile.in (build/read-md.o): Depend on errors.h.
14965         * read-md.h (error_with_line): Declare.
14966         * read-md.c: Include errors.h.
14967         (message_with_line_1): New function, extracted from...
14968         (message_with_line): ...here.
14969         (error_with_line): New function.
14970         * genattrtab.c: If a call to message_with_line is followed by
14971         "have_error = 1;", replace both statements with a call to
14972         error_with_line.
14973         * genoutput.c: Likewise.
14974         * genpreds.c: Likewise.
14975         * genrecog.c: If a call to message_with_line is followed by
14976         "error_count++;", replace both statements with a call to
14977         error_with_line.
14978         (errorcount): Delete.
14979         (main): Don't check it.
14980         * gensupport.c: If a call to message_with_line is followed by
14981         "errors = 1;", replace both statements with a call to error_with_line.
14982         (errors): Delete.
14983         (process_define_cond_exec): Check have_error instead of errors.
14984         (init_md_reader_args_cb): Likewise.  Don't set errors.
14985
14986 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14987
14988         * read-md.h (read_md_file): Declare.
14989         (read_char, unread_char): New functions.
14990         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14991         (read_quoted_string, read_string): Remove FILE * argument.
14992         * read-md.c (read_md_file): New variable.
14993         (read_md_filename, read_md_lineno): Update comments and remove
14994         unnecessary initialization.
14995         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14996         (read_escape, read_quoted_string, read_braced_string, read_string):
14997         Remove FILE * argument.  Update calls accordingly, using read_char
14998         and unread_char instead of getc and ungetc.
14999         * rtl.h (read_rtx): Remove FILE * argument.
15000         * read-rtl.c (iterator_group): Remove FILE * argument from
15001         "find_builtin".
15002         (iterator_traverse_data): Remove "infile" field.
15003         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
15004         (add_mapping, read_name, read_constants, read_conditions)
15005         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
15006         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
15007         Remove file arguments from all calls, using read_char and unread_char
15008         instead of getc and ungetc.
15009         * gensupport.c (process_include): Preserve read_md_file around
15010         the include.  Set read_md_file to the handle of the included file.
15011         Update call to read_rtx.
15012         (init_md_reader_args_cb): Set read_md_file to the handle of the file
15013         and remove local FILE *.  Update calls to read_rtx.
15014
15015 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15016
15017         * read-md.h (read_rtx_lineno): Rename to...
15018         (read_md_lineno): ...this.
15019         (read_rtx_filename): Rename to...
15020         (read_md_filename): ...this.
15021         (copy_rtx_ptr_loc): Rename to...
15022         (copy_md_ptr_loc): ...this.
15023         (print_rtx_ptr_loc): Rename to...
15024         (print_md_ptr_loc): ...this.
15025         * read-md.c: Likewise.  Update references after renaming.
15026         (string_obstack): Replace RTL with MD in comment.
15027         (set_rtx_ptr_loc): Rename to...
15028         (set_md_ptr_loc): ...this.
15029         (get_rtx_ptr_loc): Rename to...
15030         (get_md_ptr_loc): ...this.
15031         * genconditions.c: Update references after renaming.
15032         * genemit.c: Likewise.
15033         * genoutput.c: Likewise.
15034         * genpreds.c: Likewise.
15035         * gensupport.c: Likewise.
15036         * read-rtl.c: Likewise.
15037
15038 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15039
15040         * Makefile.in (READ_MD_H): New variable.
15041         (BUILD_RTL): Add build/read-md.o.
15042         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
15043         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
15044         (build/genattrtab.o, build/genconditions.o build/genemit.o)
15045         (build/genextract.o, build/genflags.o, build/genoutput.o)
15046         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
15047         (build/read-md.o): New rule.
15048         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
15049         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
15050         * coretypes.h: ...here.
15051         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
15052         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
15053         * genattr.c: Include read-md.h.
15054         * genattrtab.c: Likewise.
15055         * genconditions.c: Likewise.
15056         * genemit.c: Likewise.
15057         * genextract.c: Likewise.
15058         * genflags.c: Likewise.
15059         * genoutput.c: Likewise.
15060         * genpreds.c: Likewise.
15061         * genrecog.c: Likewise.
15062         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
15063         (join_c_conditions, print_c_condition, read_rtx_filename)
15064         (read_rtx_lineno): Move to read-md.h.
15065         * read-rtl.c: Include read-md.h.
15066         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
15067         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
15068         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
15069         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
15070         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
15071         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
15072         (read_braced_string, read_string): Move to read-md.c.
15073         (read_rtx): Move some initialization to init_md_reader and call
15074         init_md_reader here.
15075         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
15076         Move to read-md.h.
15077         * gensupport.c: Include read-md.h.
15078         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
15079         * read-md.h, read-md.c: New files.
15080
15081 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
15082
15083         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15084         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15085         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
15086         * config/moxie/moxie.c (moxie_function_value): Make static.
15087         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
15088         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15089
15090 2010-06-10  Martin Jambor  <mjambor@suse.cz>
15091
15092         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
15093         * dbgcnt.def (tree_sra): New counter.
15094         * tree-sra.c: Include dbgcnt.h.
15095         (gate_intra_sra): Check tree_sra debug counter.
15096
15097 2010-06-10  Martin Jambor  <mjambor@suse.cz>
15098
15099         PR tree-optimization/44258
15100         * tree-sra.c (build_access_subtree): Return false iff there is a
15101         partial overlap.
15102         (build_access_trees): Likewise.
15103         (analyze_all_variable_accesses): Disqualify candidates if
15104         build_access_trees returns true for them.
15105
15106 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
15107
15108         PR debug/41371
15109         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
15110         tail-recurse into canonical node.  Fast-forward over
15111         non-canonical VALUEs.
15112
15113 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
15114
15115         PR boostrap/44470
15116         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
15117         (*addsi_1_zext) <TYPE_LEA>: Likewise.
15118         (add lea splitter): Likewise.
15119         (add_zext lea splitter): Likewise.
15120
15121 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
15122
15123         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
15124
15125 2010-06-10  Jan Hubicka  <jh@suse.cz>
15126
15127         * df-problems.c (df_live_problem_data): Add live_bitmaps.
15128         (df_live_alloc): Initialize problem data and live_osbtacks.
15129         (df_live_finalize): Remove obstack, problem data; do not
15130         clear all bitmaps.
15131         (df_live_top_dump, df_live_bottom_dump): Do not dump old
15132         data when not allocated.
15133         (df_live_verify_solution_start): Do not allocate problem data.
15134         (df_live_verify_solution_end): Check if out is allocated.
15135         (struct df_md_problem_data): New structure.
15136         (df_md_alloc): Allocate problem data.
15137         (df_md_free): Free problem data; do not clear bitmaps.
15138
15139 2010-06-10  Jan Beulich  <jbeulich@novell.com>
15140
15141         PR bootstrap/37304
15142         * configure.ac: Replace $() with ${} when intending to expand
15143         variables rather than invoking commands.
15144         * configure: Re-generate.
15145
15146 2010-06-10  Jan Hubicka  <jh@suse.cz>
15147
15148         PR rtl-optimization/44460
15149         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
15150         TYPE_NEEDS_CONSTRUCTING sanity check.
15151
15152 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
15153
15154         * doc/include/fdl.texi: Move to GFDL version 1.3.
15155
15156         * doc/cpp.texi: Move to GFDL version 1.3.
15157         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
15158         * doc/gccint.texi: Move to GFDL version 1.3.
15159         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
15160         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
15161         * doc/invoke.texi: Move to GFDL version 1.3.
15162
15163 2010-06-09  Jan Hubicka  <jh@suse.cz>
15164
15165         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
15166         Break out from ...
15167         (propagate) ... here; swap the order.
15168
15169 2010-06-09  Jan Hubicka  <jh@suse.cz>
15170
15171         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
15172         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
15173         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
15174         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
15175
15176 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
15177
15178         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
15179         Do not the gather memory reference in the outer loop if the step
15180         is not a constant.
15181
15182 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
15183
15184         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
15185         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
15186         8 to 4.  Minor change of the related comments.
15187
15188 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
15189
15190         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
15191         the scev analysis when the variable is not used outside the loop
15192         in a close phi node: call compute_overall_effect_of_inner_loop.
15193
15194 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
15195
15196         * graphite-sese-to-poly.c (single_pred_cond): Renamed
15197         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
15198         (build_sese_conditions_before): Renamed call to single_pred_cond.
15199         (build_sese_conditions_after): Same.
15200
15201 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
15202
15203         * graphite-poly.h: Fix comments and indentation.
15204         * graphite-sese-to-poly.c: Same.
15205         (build_sese_conditions_before): Compute stmt and gbb only when needed.
15206         * tree-chrec.c: Fix comments and indentation.
15207         (tree-ssa-loop-niter.c): Same.
15208
15209 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
15210
15211         PR rtl-optimization/42461
15212         * dce.c (deletable_insn_p): Return true for const or pure calls again.
15213         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
15214
15215 2010-06-09  Jan Hubicka  <jh@suse.cz>
15216
15217         * bitmap.c (bitmap_and): Walk array forward.
15218         (bitmap_and_compl_into): Likewise.
15219         (bitmap_xor): Likewise.
15220         (bitmap_xor_into):  Likewise.
15221         (bitmap_equal_p): Likewise.
15222         (bitmap_intersect_p): Likewise.
15223         (bitmap_intersect_compl_p): Likewise.
15224         (bitmap_ior_and_into): Likewise.
15225         (bitmap_elt_copy): Likewise.
15226         (bitmap_and_compl): Likewise.
15227         (bitmap_elt_ior): Likewise.
15228
15229 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
15230
15231         * opts-common.c (prune_options): Ensure replacement argv array
15232         is correctly terminated by a NULL entry.
15233
15234 2010-06-09  Jan Hubicka  <jh@suse.cz>
15235
15236         * cgraph.h (varpool_first_static_initializer,
15237         varpool_next_static_initializer): Make checking only when
15238         checking enabled.
15239         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
15240         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
15241         gcc_assert to gcc_checking_assert.
15242         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
15243         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
15244         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
15245         op_iter_init_phiuse, op_iter_init_phidef,
15246         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
15247         gcc_checking_assert.
15248         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
15249         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
15250         partition_is_global, live_on_entry, live_on_exit,
15251         live_merge_and_clear): Likewise.
15252         * system.h (gcc_checking_assert): New macro.
15253         * gimple.h (set_bb_seq): Use gcc_checking_assert.
15254
15255 2010-06-09  Jason Merrill  <jason@redhat.com>
15256
15257         * Makefile.in (TAGS): Collect tags info from c-family.
15258
15259 2010-06-09  Jan Hubicka  <jh@suse.cz>
15260
15261         * gimple.h (gcc_gimple_checking_assert): New macro.
15262         (gimple_set_def_ops, gimple_set_use_ops,
15263         gimple_set_vuse, gimple_set_vdef,
15264         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
15265         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
15266         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
15267         gimple_asm_output_op, gimple_asm_output_op_ptr,
15268         gimple_asm_set_output_op, gimple_asm_clobber_op,
15269         gimple_asm_set_clobber_op, gimple_asm_label_op,
15270         gimple_asm_set_label_op, gimple_try_set_kind,
15271         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
15272         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
15273         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
15274         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
15275         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
15276         gimple_omp_for_set_initial, gimple_omp_for_final,
15277         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
15278         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
15279         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
15280         conditional with ENABLE_GIMPLE_CHECKING.
15281         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
15282
15283 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
15284
15285         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
15286         (get_computation_cost_at): Use it.
15287         (determine_use_iv_cost_condition): Likewise.
15288         (determine_iv_cost): Likewise.
15289
15290 2010-06-09  Richard Guenther  <rguenther@suse.de>
15291
15292         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
15293         replace constants.
15294
15295 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
15296
15297         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
15298
15299 2010-06-09  Martin Jambor  <mjambor@suse.cz>
15300
15301         PR tree-optimization/44423
15302         * tree-sra.c (dump_access): Dump also grp_assignment_read.
15303         (analyze_access_subtree): Pass negative allow_replacements to children
15304         if the current type is scalar.
15305
15306 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15307
15308         PR testsuite/42843
15309         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
15310         * doc/plugins.texi (Plugin license check): Update information
15311         on type of plugin_is_GPL_compatible.
15312         * Makefile.in (PLUGINCC): Define as $(COMPILER).
15313         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
15314
15315 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
15316
15317         * config/arm/arm.c (thumb2_reorg): New function.
15318         (arm_reorg): Call it.
15319         * config/arm/thumb2.md (define_peephole2 for flag clobbering
15320         arithmetic operations): Delete.
15321
15322 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
15323
15324         PR target/44067
15325         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
15326         e500v2 target.
15327
15328 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15329
15330         PR plugins/44459
15331         * gcc-plugin.h: Encapsulate all declarations in extern "C".
15332
15333 2010-06-08  Jan Hubicka  <jh@suse.cz>
15334
15335         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
15336         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
15337
15338 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
15339
15340         PR tree-optimization/39874
15341         PR middle-end/28685
15342         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
15343         Declare.
15344         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
15345         same_bool_result_p): New.
15346         (and_var_with_comparison, and_var_with_comparison_1,
15347         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
15348         (or_var_with_comparison, or_var_with_comparison_1,
15349         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
15350         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
15351         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
15352         of combine_comparisons.
15353         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
15354
15355 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
15356
15357         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15358         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15359         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
15360         pdp11_function_value_regno_p): New functions.
15361         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15362         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15363
15364 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
15365
15366         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
15367         Thumb-2 in the MINUS case.
15368
15369 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15370
15371         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
15372
15373         * doc/gty.texi (GTY Options): Document typed GC allocation and
15374         variable_size GTY option.
15375
15376         * ggc-internal.h: New.
15377
15378         * ggc.h: Update copyright year.
15379         (digit_string): Move to stringpool.c.
15380         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
15381         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
15382         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
15383         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
15384         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
15385         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
15386         (ggc_force_collect, ggc_get_size, ggc_statistics)
15387         (ggc_print_common_statistics): Move to ggc-internal.h.
15388         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
15389         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
15390         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
15391         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
15392         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
15393         (ggc_alloc_zone_pass_stat): Remove.
15394         (ggc_internal_alloc_stat, ggc_internal_alloc)
15395         (ggc_internal_cleared_alloc_stat): New.
15396         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
15397         (ggc_internal_vec_alloc_stat)
15398         (ggc_internal_cleared_vec_alloc_stat)
15399         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
15400         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
15401         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
15402         (ggc_cleared_alloc_ptr_array_two_args): New.
15403         (htab_create_ggc, splay_tree_new_ggc): Redefine.
15404         (ggc_splay_alloc): Change the type of the first argument to
15405         enum gt_types_enum.
15406         (ggc_alloc_string): Make macro.
15407         (ggc_alloc_string_stat): New.
15408         (ggc_strdup): Redefine.
15409         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
15410         (ggc_alloc_rtvec_sized): New.
15411         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
15412         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
15413         (ggc_internal_cleared_alloc_zone_stat)
15414         (ggc_internal_zone_alloc_stat)
15415         (ggc_internal_zone_cleared_alloc_stat)
15416         (ggc_internal_zone_vec_alloc_stat)
15417         (ggc_alloc_zone_rtx_def_stat)
15418         (ggc_alloc_zone_tree_node_stat)
15419         (ggc_alloc_zone_cleared_tree_node_stat)
15420         (ggc_alloc_cleared_gimple_statement_d_stat): New.
15421
15422         * ggc-common.c: Include ggc-internal.h.
15423         (ggc_internal_cleared_alloc_stat): Rename from
15424         ggc_alloc_cleared_stat.
15425         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
15426         (ggc_calloc): Remove.
15427         (ggc_cleared_alloc_htab_ignore_args): New.
15428         (ggc_cleared_alloc_ptr_array_two_args): New.
15429         (ggc_splay_alloc): Add obj_type parameter.
15430         (init_ggc_heuristics): Formatting fixes.
15431
15432         * ggc-none.c: Update copyright year.
15433         (ggc_alloc_stat): Rename to ggc_alloc_stat.
15434         (ggc_alloc_cleared_stat): Rename to
15435         ggc_internal_cleared_alloc_stat.
15436         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15437
15438         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
15439         Remove references to ggc_alloc in comments.
15440         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
15441         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
15442         (new_ggc_zone, destroy_ggc_zone): Remove.
15443         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15444
15445         * ggc-zone.c: Include ggc-internal.h.  Remove references to
15446         ggc_alloc in comments.
15447         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
15448         (ggc_internal_alloc_zone_pass_stat): New.
15449         (ggc_internal_cleared_alloc_zone_stat): New.
15450         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
15451         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
15452         (new_ggc_zone, destroy_ggc_zone): Remove.
15453
15454         * stringpool.c: Update copyright year.  Include ggc-internal.h
15455         (digit_vector): Make static.
15456         (digit_string): Moved from ggc.h.
15457         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
15458         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
15459
15460         * Makefile.in (GGC_INTERNAL_H): New.
15461         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
15462         $(GGC_INTERNAL_H) to dependencies.
15463
15464         * gentype.c: Update copyright year.
15465         (walk_type): Accept variable_size GTY option.
15466         (USED_BY_TYPED_GC_P): New macro.
15467         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
15468         whitespace at the end of strings.
15469         (get_type_specifier, variable_size_p): New functions.
15470         (alloc_quantity, alloc_zone): New enums.
15471         (write_typed_alloc_def): New function.
15472         (write_typed_struct_alloc_def): Likewise.
15473         (write_typed_typed_typedef_alloc_def): Likewise.
15474         (write_typed_alloc_defns): Likewise.
15475         (output_typename, write_splay_tree_allocator_def): Likewise.
15476         (write_splay_tree_allocators): Likewise.
15477         (main): Call write_typed_alloc_defns and
15478         write_splay_tree_allocators.
15479
15480         * lto-streamer.h (lto_file_decl_data_ptr): New.
15481
15482         * passes.c (order): Define using cgraph_node_ptr.
15483
15484         * strinpool.c (struct string_pool_data): Declare nested_ptr using
15485         ht_identifier_ptr.
15486
15487         * gimple.h (union gimple_statement_d): Likewise.
15488
15489         * rtl.h (struct rtx_def): Likewise.
15490         (struct rtvec_def): Likewise.
15491
15492         * tree.h (union tree_node): Likewise.
15493
15494         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
15495
15496         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
15497
15498         * tree-scalar-evolution.c (scev_initialize): Likewise.
15499
15500         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
15501
15502         * dwarf2asm.c (dw2_force_const_mem): Likewise.
15503
15504         * omp-low.c (lower_omp_critical): Likewise.
15505
15506         * bitmap.h (struct bitmap_head_def): Update comment to not
15507         reference ggc_alloc.
15508
15509         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
15510
15511         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
15512
15513         * ipa-prop.c (duplicate_ggc_array): Rename to
15514         duplicate_ipa_jump_func_array.  Use typed GC allocation.
15515         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
15516
15517         * gimple.c (gimple_alloc_stat): Use
15518         ggc_alloc_cleared_gimple_statement_d_stat.
15519
15520         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
15521
15522         * tree.c (make_node_stat): Use
15523         ggc_alloc_zone_cleared_tree_node_stat.
15524         (make_tree_vec_stat): Likewise.
15525         (build_vl_exp_stat): Likewise.
15526         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
15527         (make_tree_binfo_stat): Likewise.
15528         (tree_cons_stat): Likewise.
15529
15530         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
15531         (shallow_copy_rtx_stat): Likewise.
15532         (make_node_stat): Likewise.
15533
15534         * lto-symtab.c: Fix comment.
15535
15536         * tree-cfg.c (create_bb): Update comment to not reference
15537         ggc_alloc_cleared.
15538         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
15539
15540         * varpool.c (varpool_node): Use typed GC allocation.
15541         (varpool_extra_name_alias): Likewise.
15542
15543         * varasm.c (emutls_decl): Likewise.
15544         (get_unnamed_section): Likewise.
15545         (get_noswitch_section): Likewise.
15546         (get_section): Likewise.
15547         (get_block_for_section): Likewise.
15548         (build_constant_desc): Likewise.
15549         (create_constant_pool): Likewise.
15550         (force_const_mem): Likewise.
15551
15552         * tree.c (build_vl_exp_stat): Likewise.
15553         (build_real): Likewise.
15554         (build_string): Likewise.
15555         (decl_debug_expr_insert): Likewise.
15556         (decl_value_expr_insert): Likewise.
15557         (type_hash_add): Likewise.
15558         (build_omp_clause): Likewise.
15559
15560         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
15561
15562         * tree-ssa.c (init_tree_ssa): Likewise.
15563
15564         * tree-ssa-structalias.c (heapvar_insert): Likewise.
15565
15566         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
15567
15568         * tree-ssa-loop-niter.c (record_estimate): Likewise.
15569
15570         * tree-ssa-alias.c (get_ptr_info): Likewise.
15571
15572         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
15573
15574         * tree-phinodes.c (allocate_phi_node): Likewise.
15575
15576         * tree-iterator.c (tsi_link_before): Likewise.
15577         (tsi_link_after): Likewise.
15578
15579         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
15580
15581         * tree-dfa.c (create_var_ann): Likewise.
15582
15583         * tree-cfg.c (create_bb): Likewise.
15584
15585         * toplev.c (alloc_for_identifier_to_locale): Likewise.
15586         (general_init): Likewise.
15587
15588         * stringpool.c (stringpool_ggc_alloc): Likewise.
15589         (gt_pch_save_stringpool): Likewise.
15590
15591         * sese.c (if_region_set_false_region): Likewise.
15592
15593         * passes.c (do_per_function_toporder): Likewise.
15594
15595         * optabs.c (set_optab_libfunc): Likewise.
15596         (set_conv_libfunc): Likewise.
15597
15598         * lto-symtab.c (lto_symtab_register_decl): Likewise.
15599
15600         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
15601         (input_eh_region): Likewise.
15602         (input_eh_lp): Likewise.
15603         (make_new_block): Likewise.
15604         (unpack_ts_real_cst_value_fields): Likewise.
15605
15606         * lto-section-in.c (lto_new_in_decl_state): Likewise.
15607
15608         * lto-cgraph.c (input_node_opt_summary): Likewise.
15609
15610         * loop-init.c (loop_optimizer_init): Likewise.
15611
15612         * lambda.h (lambda_vector_new): Likewise.
15613
15614         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
15615
15616         * ira.c (update_equiv_regs): Likewise.
15617
15618         * ipa.c (cgraph_node_set_new): Likewise.
15619         (cgraph_node_set_add): Likewise.
15620         (varpool_node_set_new): Likewise.
15621         (varpool_node_set_add): Likewise.
15622
15623         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
15624         (duplicate_ipa_jump_func_array): Likewise.
15625         (ipa_read_node_info): Likewise.
15626
15627         * ipa-cp.c (ipcp_create_replace_map): Likewise.
15628
15629         * integrate.c (get_hard_reg_initial_val): Likewise.
15630
15631         * gimple.c (gimple_alloc_stat): Likewise.
15632         (gimple_build_omp_for): Likewise.
15633         (gimple_seq_alloc): Likewise.
15634         (gimple_copy): Likewise.
15635
15636         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
15637         (gsi_insert_after_without_update): Likewise.
15638
15639         * function.c (add_frame_space): Likewise.
15640         (insert_temp_slot_address): Likewise.
15641         (assign_stack_temp_for_type): Likewise.
15642         (allocate_struct_function): Likewise.
15643         (types_used_by_var_decl_insert): Likewise.
15644
15645         * except.c (init_eh_for_function): Likewise.
15646         (gen_eh_region): Likewise.
15647         (gen_eh_region_catch): Likewise.
15648         (gen_eh_landing_pad): Likewise.
15649         (add_call_site): Likewise.
15650
15651         * emit-rtl.c (get_mem_attrs): Likewise.
15652         (get_reg_attrs): Likewise.
15653         (start_sequence): Likewise.
15654         (init_emit): Likewise.
15655
15656         * dwarf2out.c (new_cfi): Likewise.
15657         (queue_reg_save): Likewise.
15658         (dwarf2out_frame_init): Likewise.
15659         (new_loc_descr): Likewise.
15660         (find_AT_string): Likewise.
15661         (new_die): Likewise.
15662         (add_var_loc_to_decl): Likewise.
15663         (clone_die): Likewise.
15664         (clone_as_declaration): Likewise.
15665         (break_out_comdat_types): Likewise.
15666         (new_loc_list): Likewise.
15667         (loc_descriptor): Likewise.
15668         (add_loc_descr_to_each): Likewise.
15669         (add_const_value_attribute): Likewise.
15670         (tree_add_const_value_attribute): Likewise.
15671         (add_comp_dir_attribute): Likewise.
15672         (add_name_and_src_coords_attributes): Likewise.
15673         (lookup_filename): Likewise.
15674         (store_vcall_insn): Likewise.
15675         (dwarf2out_init): Likewise.
15676
15677         * dbxout.c (dbxout_init): Likewise.
15678
15679         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15680
15681         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15682
15683         * config/score/score7.c (score7_output_external): Likewise.
15684
15685         * config/score/score3.c (score3_output_external): Likewise.
15686
15687         * config/s390/s390.c (s390_init_machine_status): Likewise.
15688
15689         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
15690         (rs6000_init_machine_status): Likewise.
15691         (output_toc): Likewise.
15692
15693         * config/pa/pa.c (pa_init_machine_status): Likewise.
15694         (get_deferred_plabel): Likewise.
15695
15696         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
15697
15698         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
15699
15700         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
15701
15702         * config/mep/mep.c (mep_init_machine_status): Likewise.
15703         (mep_note_pragma_flag): Likewise.
15704
15705         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
15706
15707         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
15708
15709         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
15710
15711         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
15712         (i386_pe_maybe_record_exported_symbol): Likewise.
15713
15714         * config/i386/i386.c (get_dllimport_decl): Likewise.
15715         (ix86_init_machine_status): Likewise.
15716         (assign_386_stack_local): Likewise.
15717
15718         * config/frv/frv.c (frv_init_machine_status): Likewise.
15719
15720         * config/darwin.c (machopic_indirection_name): Likewise.
15721
15722         * config/cris/cris.c (cris_init_machine_status): Likewise.
15723
15724         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
15725
15726         * config/avr/avr.c (avr_init_machine_status): Likewise.
15727
15728         * config/arm/arm.c (arm_init_machine_status): Likewise.
15729
15730         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
15731         (alpha_need_linkage): Likewise.
15732         (alpha_use_linkage): Likewise.
15733
15734         * cgraph.c (cgraph_allocate_node): Likewise.
15735         (cgraph_create_edge_1): Likewise.
15736         (cgraph_create_indirect_edge): Likewise.
15737         (cgraph_add_asm_node): Likewise.
15738
15739         * cfgrtl.c (init_rtl_bb_info): Likewise.
15740
15741         * cfgloop.c (alloc_loop): Likewise.
15742         (rescan_loop_exit): Likewise.
15743
15744         * cfg.c (init_flow): Likewise.
15745         (alloc_block): Likewise.
15746         (unchecked_make_edge): Likewise.
15747
15748         * c-parser.c (c_parse_init): Likewise.
15749         (c_parse_file): Likewise.
15750
15751         * c-decl.c (bind): Likewise.
15752         (record_inline_static): Likewise.
15753         (push_scope): Likewise.
15754         (make_label): Likewise.
15755         (lookup_label_for_goto): Likewise.
15756         (finish_struct): Likewise.
15757         (finish_enum): Likewise.
15758         (c_push_function_context): Likewise.
15759
15760         * bitmap.c (bitmap_element_allocate): Likewise.
15761         (bitmap_gc_alloc_stat): Likewise.
15762
15763         * alias.c (record_alias_subset): Likewise.
15764         (init_alias_analysis): Likewise.
15765
15766 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
15767
15768         * fold-const.c (fold_comparison): Remove redundant parenthesis.
15769         * tree-inline.c (expand_call_inline): Pass translated return value of
15770         cgraph_inline_failed_string to diagnostic function.
15771
15772 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
15773             Shujing Zhao  <pearly.zhao@oracle.com>
15774
15775         PR c/37724
15776         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
15777         implicit bad conversions is initialization.
15778         (error_init): Use gmsgid instead of msgid for argument name and change
15779         the call for error.
15780         (pedwarn_init): Use gmsgid instead of msgid for argument name and
15781         change the call for pedwarn.
15782         (warning_init): Use gmsgid instead of msgid for argument name and
15783         change the call for warning.
15784
15785 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
15786
15787         * config/mips/mips-protos.h (mips_print_operand): Delete.
15788         (mips_print_operand_address): Delete.
15789         * config/mips/mips.h (mips_print_operand_punct): Delete.
15790         (PRINT_OPERAND): Delete.
15791         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15792         (PRINT_OPERAND_ADDRESS): Delete.
15793         * config/mips/mips.c (mips_print_operand_punct): Make static.
15794         (mips_print_operand_address): Make static.
15795         (mips_print_operand): Make static.  Call
15796         mips_print_operand_punct_valid_p.
15797         (mips_print_operand_punct_valid_p): New function.
15798         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15799         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15800
15801 2010-06-07  Jan Hubicka  <jh@suse.cz>
15802
15803         PR middle-end/44454
15804         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
15805         are allocated.
15806
15807 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
15808
15809         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
15810         name of RECORD.
15811
15812 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15813
15814         * doc/sourcebuild.texi (Effective-Target Keywords, Other
15815         attributes): Document gas.
15816
15817 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
15818
15819         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
15820         <TYPE_LEA>: Split instruction.
15821         <default>: Remove alternative 2 handling.
15822         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
15823         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
15824         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
15825
15826         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
15827         (ashift_zext lea splitter): Use DImode for multiplication.
15828
15829         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
15830         to generate addition.
15831
15832 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
15833
15834         * common.opt (fira-verbose): Use Var.
15835         (fpcc-struct-return): Use Init instead of VarExists.
15836         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
15837         toplev.c.
15838         * flags.h (flag_signed_char, flag_short_enums,
15839         flag_pcc_struct_return, flag_ira_verbose,
15840         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
15841         * toplev.c (flag_detailed_statistics, flag_signed_char,
15842         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
15843         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
15844         * toplev.h (flag_crossjumping, flag_if_conversion,
15845         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
15846         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
15847         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
15848         flag_cprop_registers, time_report, flag_ira_loop_pressure,
15849         flag_ira_coalesce, flag_ira_move_spills,
15850         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
15851
15852 2010-06-07  Jan Hubicka  <jh@suse.cz>
15853
15854         * df-core.c (df_analyze_problem): Do verification after allocation.
15855
15856         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
15857         (df_lr_alloc): Initialize problem data; move bitmaps to
15858         lr_bitmaps obstack.
15859         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
15860         (df_lr_verify_solution_start): Do not initialize problem data;
15861         allocate bitmaps in lr_bitmaps.
15862         (df_lr_verify_solution_end): Do not free problem data.
15863
15864 2010-06-07  Jan Hubicka  <jh@suse.cz>
15865
15866         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
15867         if caller is noreturn.
15868         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
15869         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
15870         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
15871         * ipa-pure-const.c (check_decl): Add IPA parameter.
15872         (state_from_flags): New function.
15873         (better_state, worse_state): New functions.
15874         (check_call): When in IPA mode, do not care about callees.
15875         (check_load, check_store): Update.
15876         (check_ipa_load, check_ipa_store): New.
15877         (check_stmt): When in IPA mode, use IPA checkers.
15878         (analyze_function): Use state_from_flags.
15879         (propagate): Check indirect edges and references.
15880
15881 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
15882
15883         PR rtl-optimization/44404
15884         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
15885         of count_occurrences to see if it's safe to modify mem_insn.
15886
15887 2010-06-07  Richard Guenther  <rguenther@suse.de>
15888
15889         * gimplify.c (gimplify_cleanup_point_expr): For empty body
15890         and EH-only cleanup drop the cleanup instead of inserting it
15891         unconditionally.
15892
15893 2010-06-07  Ira Rosen  <irar@il.ibm.com>
15894
15895         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
15896         documentation.
15897         * targhooks.c (default_builtin_vectorization_cost): New function.
15898         * targhooks.h (default_builtin_vectorization_cost): Declare.
15899         * target.h (enum vect_cost_for_stmt): Define.
15900         (builtin_vectorization_cost): Change argument and comment.
15901         * tree-vectorizer.h: Remove cost model macros.
15902         * tree-vect-loop.c: Include target.h.
15903         (vect_get_cost): New function.
15904         (vect_estimate_min_profitable_iters): Replace cost model macros with
15905         calls to vect_get_cost.
15906         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
15907         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
15908         default implementation.
15909         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
15910         calls to target hook builtin_vectorization_cost.
15911         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
15912         Likewise.
15913         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
15914         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
15915         implementation to return costs.
15916         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
15917         * config/spu/spu.h: Remove vectorizer cost model macros.
15918         * config/i386/i386.h: Likewise.
15919         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
15920         a call to target hook builtin_vectorization_cost.
15921
15922 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
15923
15924         PR target/44319
15925         * config/i386/i386.c (override_options): Turn zee pass on for level 2
15926         and above and defer till target is known.
15927         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
15928         turn off otherwise.
15929
15930 2010-05-25  Jan Hubicka  <jh@suse.cz>
15931
15932         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
15933         (df_compact_blocks): Likewise.
15934         * df.h (struct df): Turn hardware_regs_used,
15935         regular_block_artificial_uses, eh_block_artificial_uses,
15936         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
15937         bitmap_head.
15938         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
15939         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
15940         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
15941         df_scan_blocks, df_insn_delete, df_insn_rescan,
15942         df_insn_rescan_debug_internal, df_insn_rescan_all,
15943         df_process_deferred_rescans, df_process_deferred_rescans,
15944         df_notes_rescan, df_get_call_refs, df_get_call_refs,
15945         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
15946         df_record_entry_block_defs, df_record_exit_block_uses,
15947         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
15948         df_scan_verify): Update.
15949
15950 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15951
15952         PR c++/44188
15953         * c-common.c (is_typedef_decl): Move this definition ...
15954         * tree.c (is_typedef_decl): ... here.
15955         (typdef_variant_p): Move definition here from cp/tree.c.
15956         * c-common.h (is_typedef_decl): Move this declaration ...
15957         * tree.h (is_typedef_decl): ... here.
15958         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15959         * dwarf2out.c (is_naming_typedef_decl): New function.
15960         (gen_tagged_type_die): Split out of ...
15961         (gen_type_die_with_usage): ... this function. When an anonymous
15962         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15963         is emitted for the typedef.
15964         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15965         anonymous tagged types.
15966
15967 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15968
15969         PR c/20000
15970         * c-decl.c (grokdeclarator): Delete warning.
15971
15972 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
15973
15974         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
15975         newly built CALL_EXPR.
15976         * tree-profile.c (tree_profiling): Don't profile functions produced
15977         for built-in stuff.
15978
15979 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
15980
15981         PR bootstrap/44427
15982         PR bootstrap/44428
15983         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
15984         endianness-independent.
15985
15986 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
15987
15988         * c-common.c: Move to c-family/.
15989         * c-common.def: Likewise.
15990         * c-common.h: Likewise.
15991         * c-cppbuiltin.c: Likewise.
15992         * c-dump.c: Likewise.
15993         * c-format.c: Likewise.
15994         * c-format.h : Likewise.
15995         * c-gimplify.c: Likewise.
15996         * c-lex.c: Likewise.
15997         * c-omp.c: Likewise.
15998         * c.opt: Likewise.
15999         * c-opts.c: Likewise.
16000         * c-pch.c: Likewise.
16001         * c-ppoutput.c: Likewise.
16002         * c-pragma.c: Likewise.
16003         * c-pragma.h: Likewise.
16004         * c-pretty-print.c: Likewise.
16005         * c-pretty-print.h: Likewise.
16006         * c-semantics.c: Likewise.
16007         * stub-objc.c: Likewise.
16008
16009         * gengtype.c (get_file_langdir): Special-case files in c-family/.
16010         (get_output_file_with_visibility): Fix name for c-common.h.
16011         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
16012
16013         * c-tree.h: Update include path for moved files.
16014         * c-lang.c: Likewise.
16015         * c-lang.h: Likewise.
16016         * c-parser.c: Likewise.
16017         * c-convert.c: Likewise.
16018         * c-decl.c: Likewise.
16019         * c-objc-common.c: Likewise.
16020         * configure.ac: Make sure c-family/ exists in the build directory.
16021         * configure: Regenerate.
16022         * Makefile.in: Update paths for moved files.  Regroup files per
16023         location and update dependencies.  Move generated_files down after
16024         ALL_GTFILES_H.
16025
16026         * config/spu/spu-c.c: Update paths for moved files.
16027         * config/mep/mep-pragma.c: Likewise.
16028         * config/darwin-c.c: Likewise.
16029         * config/i386/msformat-c.c: Likewise.
16030         * config/i386/i386-c.c: Likewise.
16031         * config/avr/avr-c.c: Likewise.
16032         * config/sol2-c.c: Likewise.
16033         * config/ia64/ia64-c.c: Likewise.
16034         * config/rs6000/rs6000-c.c: Likewise.
16035         * config/arm/arm.c: Likewise.
16036         * config/arm/arm-c.c: Likewise.
16037         * config/h8300/h8300.c: Likewise.
16038         * config/v850/v850-c.c: Likewise.
16039
16040         * config/t-darwin: Fix dependencies for moved files.
16041         * config/t-sol2: Fix dependencies for moved files.
16042         * config/mep/t-mep: Fix dependencies for moved files.
16043         * config/ia64/t-ia64: Fix dependencies for moved files.
16044         * config/rs6000/t-rs6000: Fix dependencies for moved files.
16045         * config/v850/t-v850: Fix dependencies for moved files.
16046         * config/v850/t-v850e: Fix dependencies for moved files.
16047
16048         * config/m32c/m32c-pragma.c
16049
16050         * po/exgettext: Look in c-family/ also.
16051
16052 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
16053
16054         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
16055         (mark_control_dependent_edges_necessary): Call it instead of marking
16056         the last statement manually.
16057         (propagate_necessity): Likewise.
16058
16059 2010-06-05  Jan Hubicka  <jh@suse.cz>
16060
16061         * basic-block.h (compute_dominance_frontiers): Updated.
16062         (compute_idf): Likewise.
16063
16064         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
16065         for dominance frontiers.
16066         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
16067         (insert_updated_phi_nodes_for): Likewise.
16068         (update_ssa): Likewise.
16069         * cfganal.c (compute_dominance_frontiers_1): Likewise.
16070         (compute_dominance_frontiers): Likewise.
16071         (compute_idf): Likewise.
16072         * df-problems.c (df_md_local_compute): Likewise.
16073
16074 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
16075
16076         * target.h (struct gcc_target): Add memory_move_cost field.
16077         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
16078         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
16079         * targhooks.c (default_memory_move_cost): New function.
16080         * targhooks.h (default_memory_move_cost): Declare function.
16081         * reload.h (memory_move_cost): Declare.
16082         (memory_move_secondary_cost): Change type of 'in' argument to bool.
16083         * reginfo.c (memory_move_cost): New function.
16084         (memory_move_secondary_cost): Change type of 'in' argument to bool.
16085         * ira.h (ira_memory_move_cost): Update comment.
16086         * ira.c (ira_memory_move_cost): Update comment.
16087         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
16088         with memory_move_cost.
16089         * postreload.c (reload_cse_simplify_set): (Ditto.).
16090         * reload1.c (choose_reload_regs): (Ditto.).
16091         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
16092         (MEMORY_MOVE_COST):  Revise documentation.
16093
16094         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16095         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16096         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
16097         type of 'in' argument to bool.
16098         (TARGET_MEMORY_MOVE_COST): Define.
16099
16100 2010-06-05  Jan Hubicka  <jh@suse.cz>
16101
16102         * ipa-pure-const.c (propagate): Fix typo in handling of functions
16103         that cannot return.  Be more careful when merging the results with
16104         previously known ones.
16105
16106 2010-06-05  Matthias Klose  <doko@ubuntu.com>
16107
16108         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
16109         function to add the -iplugindir option.
16110         (find_plugindir_spec_function): Add new declaration and function.
16111         (static_spec_func): Use it for "find-plugindir".
16112
16113 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
16114
16115         PR c++/44361
16116         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
16117         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
16118         statement expression.
16119
16120 2010-06-05  Jan Hubicka  <jh@suse.cz>
16121
16122         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
16123         (df_rd_problem_data): Convert sparse_invalidated_by_call,
16124         dense_invalidated_by_call to bitmap head.
16125         (df_rd_alloc, df_rd_bb_local_compute_process_def,
16126         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
16127         df_rd_start_dump, df_lr_verify_transfer_functions,
16128         df_live_verify_transfer_functions, df_chain_create_bb,
16129         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
16130         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
16131         df_simulate_one_insn_forwards, df_md_alloc,
16132         df_md_bb_local_compute_process_def,
16133         df_md_bb_local_compute_process_def, df_md_local_compute,
16134         df_md_transfer_function df_md_free): Update.
16135
16136 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
16137
16138         PR c/44322
16139         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
16140         target type for ADDR_EXPR; require no changes to qualifiers except
16141         for function types.
16142         * c-tree.h (c_build_type_variant): Remove.
16143
16144 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
16145
16146         * genautomata.c (get_excl_set): Do work per element, not per char.
16147         (check_presence_pattern_sets): Similar.
16148         (check_absence_pattern_sets): Similar.
16149
16150 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
16151
16152         * genautomata.c (curr_state_pass_num): Delete.
16153         (min_issue_delay_pass_states): Delete.
16154         (min_issue_delay): Delete.
16155         (initiate_min_issue_delay_pass_states): Delete.
16156         (output_min_issue_delay_table): Compute min_issue_delay_vect
16157         using a breadth-first search variant.
16158         (output_tables): Don't call initiate_min_issue_delay_pass_states.
16159
16160 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
16161
16162         PR boostrap/44421
16163         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
16164         (df_byte_lr_bb_local_compute): Likewise.
16165
16166 2010-06-03  Jason Merrill  <jason@redhat.com>
16167
16168         Implement noexcept operator (5.3.7)
16169         * c-common.c (c_common_reswords): Add noexcept.
16170         * c-common.h (enum rid): Add RID_NOEXCEPT.
16171
16172 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
16173
16174         * config/darwin-driver.c (darwin_default_min_version): Use
16175         GCC-specific formats in diagnostics.
16176         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
16177         diagnostics.
16178         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
16179         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
16180         eval_spec_function, handle_braces, process_brace_body, main,
16181         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
16182         getenv_spec_function, compare_version_strings,
16183         version_compare_spec_function): Use GCC-specific formats in
16184         diagnostics.
16185
16186 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16187
16188         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
16189         that operand 0 and operand 1 are equal.
16190         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
16191         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
16192         and operand 1 are equal.
16193         <default>: Ditto.  Remove ??? comment.
16194         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
16195         and operand 1 are equal.
16196         <default>: Ditto.  Remove ??? comment.
16197         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
16198         are equal.
16199         (*add<mode>_4) <default>: Ditto.
16200         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
16201
16202 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
16203
16204         * config/i386/i386-protos.h (ix86_print_operand): Declare.
16205         * config/i386/i386.c (ix86_print_operand): Make non-static.
16206         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
16207         * output.h (output_operand): Declare.
16208         * final.c (output_operand): Make non-static.
16209
16210 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
16211
16212         PR rtl-optimization/44013
16213         * sched-deps.c (add_dependence_list_and_free): Don't free lists
16214         when processing debug insns.
16215
16216         PR debug/41371
16217         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
16218         recursing.  Check that recursion is bounded.  Rename inner var
16219         to avoid hiding incoming argument.
16220
16221 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16222
16223         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
16224         operands[2] == 255.
16225         (*addqi_3): Ditto.
16226         (*addqi_4): Ditto.
16227         (*addqi_5): Ditto.
16228         (*addqi_ext_1_rex64): Ditto.
16229         (*addqi_ext_1): Ditto.
16230
16231         (*addqi_4): Check for incdec_operand in QImode.
16232
16233         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
16234         using SWI mode iterator.
16235         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
16236         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
16237         mode iterator.
16238         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
16239         using SWI mode iterator.
16240
16241 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16242
16243         PR c/25880
16244         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
16245         * c-format.c (gcc_diag_flag_specs): Add hash.
16246         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
16247         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
16248         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
16249         pp_c_cv_qualifiers. Handle qualifiers spelling here.
16250         (pp_c_type_qualifier_list): Call the function above.
16251         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
16252         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
16253         (WARN_FOR_QUALIFIERS): New macro.
16254         (convert_for_assignment): Use it.
16255
16256 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
16257
16258         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
16259
16260 2010-06-04  Jan Hubicka  <jh@suse.cz>
16261
16262         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
16263         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
16264         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
16265         DF_BYTE_LR_OUT): Update for embedded bitmaps.
16266         * fwprop.c (single_def_use_enter_block): Likewise.
16267         * ddg.c (create_ddg_dep_from_intra_loop_link,
16268         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
16269         * loop-iv.c (latch_dominating_def): Likewise.
16270         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
16271         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
16272         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
16273         df_rd_transfer_function, df_rd_top_dump,
16274         df_rd_bottom_dump): Update.
16275         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
16276         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
16277         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
16278         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
16279         df_lr_verify_solution_start, df_lr_verify_solution_end,
16280         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
16281         df_live_free_bb_info, df_live_alloc, df_live_reset,
16282         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
16283         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
16284         df_live_verify_solution_start, df_live_verify_solution_end,
16285         df_live_verify_transfer_functions, df_chain_create_bb,
16286         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
16287         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16288         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16289         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
16290         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
16291         df_byte_lr_transfer_function, df_byte_lr_top_dump,
16292         df_byte_lr_bottom_dump, df_create_unused_note,
16293         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
16294         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
16295         df_md_transfer_function, df_md_init, df_md_confluence_0,
16296         df_md_confluence_n,
16297         df_md_top_dump, df_md_bottom_dump): Update.
16298         (struct df_lr_problem_data): Embedd bitmap headers.
16299
16300 2010-06-04  Jan Hubicka  <jh@suse.cz>
16301
16302         * dce.c (dce_process_block): Do not re-scan already marked
16303         instructions.
16304
16305 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
16306
16307         PR rtl-optimization/39871
16308         PR rtl-optimization/40615
16309         PR rtl-optimization/42500
16310         PR rtl-optimization/42502
16311         * ira.c (init_reg_equiv_memory_loc: New function.
16312         (ira): Call it twice.
16313         * reload.h (calculate_elim_costs_all_insns): Declare.
16314         * ira-costs.c: Include "reload.h".
16315         (regno_equiv_gains): New static variable.
16316         (init_costs): Allocate it.
16317         (finish_costs): Free it.
16318         (ira_costs): Call calculate_elim_costs_all_insns.
16319         (find_costs_and_classes): Take estimated elimination costs
16320         into account.
16321         (ira_adjust_equiv_reg_cost): New function.
16322         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
16323         * reload1.c (init_eliminable_invariants, free_reg_equiv,
16324         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
16325         (elim_bb): New static variable.
16326         (reload): Move code out of here into init_eliminable_invariants and
16327         free_reg_equiv.  Call them.
16328         (calculate_elim_costs_all_insns): New function.
16329         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
16330         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
16331         but call note_reg_elim_costly if we turned a valid memory address
16332         into an invalid one.
16333         * Makefile.in (ira-costs.o): Depend on reload.h.
16334
16335 2010-06-04  Julian Brown  <julian@codesourcery.com>
16336
16337         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
16338         for pool ranges.
16339
16340 2010-06-04  Richard Guenther  <rguenther@suse.de>
16341
16342         PR lto/41584
16343         * cgraph.h (struct varpool_node): Add lto_file_data field.
16344         * lto-cgraph.c (input_varpool_node): Initialize it.
16345
16346 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16347
16348         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
16349         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
16350         predicate in "type" attribute calculation.
16351         (*addsi_1_zext): Ditto.
16352         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
16353         (*addsi_2_zext): Ditto.
16354         (*add<mode>_3): Ditto.
16355         (*addsi_3_zext): Ditto.
16356         (*add<mode>_5): Ditto.
16357
16358 2010-06-03  Jan Hubicka  <jh@suse.cz>
16359
16360         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
16361         of bitmap_bit_p.
16362         * cfganal.c (compute_dominance_frontiers_1): Likewise.
16363
16364 2010-06-03  Jan Hubicka  <jh@suse.cz>
16365
16366         * df-problems.c (df_create_unused_note, df_note_bb_compute):
16367         micro-optimize the checks when to add new note.
16368
16369 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
16370
16371         * final.c (output_asm_insn): Call
16372         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
16373         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
16374         (output_address): Call targetm.asm_out.print_operand_address.
16375         Update comments.
16376         * target.h (struct gcc_target): Add print_operand,
16377         print_operand_address, and print_operand_punct_valid_p fields.
16378         * targhooks.h (default_print_operand): Declare.
16379         (default_print_operand_address): Declare.
16380         (default_print_operand_punct_valid_p): Declare.
16381         * targhooks.c (default_print_operand): Define.
16382         (default_print_operand_address): Define.
16383         (default_print_operand_punct_valid_p): Define.
16384         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
16385         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
16386         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
16387         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
16388         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
16389         * vmsdbgout.c (addr_const_to_string): Update comment.
16390         * config/i386/i386.c (print_operand): Rename to...
16391         (ix86_print_operand): ...this.  Make static.
16392         (print_operand_address): Rename to...
16393         (ix86_print_operand_address): ...this.  Make static.  Call
16394         ix86_print_operand instead of PRINT_OPERAND.
16395         (ix86_print_operand_punct_valid_p): New function.
16396         (TARGET_PRINT_OPERAND): Define.
16397         (TARGET_PRINT_OPERAND_ADDRESS): Define.
16398         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16399         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
16400         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16401         (PRINT_OPERAND): Delete.
16402         (PRINT_OPERAND_ADDRESS): Delete.
16403         * config/i386/i386-protos.h (print_operand): Delete prototype.
16404         (print_operand_address): Delete prototype.
16405
16406 2010-06-03  Richard Guenther  <rguenther@suse.de>
16407
16408         PR tree-optimization/44403
16409         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
16410         Preserve pointer qualifiers.
16411         (vect_create_data_ref_ptr): Likewise.
16412
16413 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
16414
16415         PR c++/44294
16416         * defaults.h (MAX_FIXED_MODE_SIZE): New.
16417
16418         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
16419
16420 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
16421
16422         PR debug/44375
16423         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
16424         return false if merging the bbs would lead to goto_locus
16425         location being lost from the IL.
16426
16427 2010-06-03  Jan Hubicka  <jh@suse.cz>
16428             Jakub Jelinek  <jakub@redhat.com>
16429
16430         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
16431         set->regs[i] is NULL or has just one entry.
16432
16433 2010-06-03  Jan Hubicka  <jh@suse.cz>
16434
16435         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
16436         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
16437
16438 2010-06-03  Paul Brook  <paul@codesourcery.com>
16439
16440         * config/arm/arm.c (FL_TUNE): Define.
16441         (arm_default_cpu, arm_cpu_select): Remove.
16442         (all_cores): Populate core field.
16443         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
16444         (arm_find_cpu): New function.
16445         (arm_handle_option): Lookup cpu/architecture names.
16446         (arm_override_options): Cleanup mcpu/march/mtune handling.
16447         (arm_file_start): Ditto.
16448
16449 2010-06-03  Alan Modra  <amodra@gmail.com>
16450
16451         PR target/44169
16452         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
16453         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
16454         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
16455         (rs6000_emit_load_toc_table): Likewise.
16456
16457 2010-06-02  Jan Hubicka  <jh@suse.cz>
16458
16459         * passes.c (init_optimization_passes): Put ipa reference
16460         after ipa pure-const.
16461
16462 2010-06-02  Jan Hubicka  <jh@suse.cz>
16463
16464         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
16465         calls_read_all and calls_write_all.
16466         (get_reference_optimization_summary): Fix formatting.
16467         (is_proper_for_analysis): Check that decl is not readonly.
16468         (propagate_bits): Check CONST/PURE/noreturn flags.
16469         (ipa_init): Move all_module_statics to optimization_summary_obstack.
16470         (analyze_function): Ignore indirect edges.
16471         (copy_global_bitmap): For all module statics, do nothing.
16472         (generate_summary): Do not print calls_read_all/calls_write_all.
16473         (read_write_all_from_decl): Take node as argument; check
16474         cgraph_node_cannot_return.
16475         (propagate): Reorganize read_all/write_all computation;
16476         check indirect edges; check ecf flags; use all_module_statics
16477         in the results; do not free all_module_statics.
16478         (stream_out_bitmap): Handle all_module_statics.
16479         (ipa_reference_write_optimization_summary): Likewise; use
16480         varpool/cgraph encoders to get boundaries.
16481         (ipa_reference_read_optimization_summary): Read in all_module_statics;
16482         use it when possible.
16483
16484 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16485
16486         PR target/44218
16487         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
16488         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
16489
16490         * doc/extend.texi (powerpc builtins): Document vec_recip,
16491         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
16492
16493         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
16494         (rs6000_emit_swrsqrt): Ditto.
16495         (rs6000_emit_swdivsf): Delete.
16496         (rs6000_emit_swdivdf): Ditto.
16497         (rs6000_emit_swrsqrtsf): Ditto.
16498
16499         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
16500         describe the reciprocal estimate support for each type.
16501         (recip_options): Map -mrecip=<opt> into option bits.
16502         (gen_2arg_fn_t): New typedef for binary rtx gen function.
16503         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
16504         reciprocal estimate instructions.
16505         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
16506         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
16507         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
16508         cost information if -mdebug=cost or -mdebug=reg.
16509         (rs6000_override_options): Set -mrecip-precision for power6, and
16510         power7 machines.  If -mvsx or -mdfp, enable various options that
16511         came in previous instruction set ISAs, unless the option was
16512         explicitly disabled by the command line option.  Parse
16513         -mrecip=<opt> options.
16514         (rs6000_builtin_vectorized_function): Add support for vectorizing
16515         the reciprocal estimate builtins and expansions.
16516         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
16517         (bdesc_2arg): Add reciprocal estimate builtins.
16518         (bdesc_1arg): Add reciprocal square root estimate builtins.
16519         (rs6000_expand_builtin): Rewrite to use a switch statement,
16520         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
16521         (rs6000_init_builtins): Create declarations for reciprocal
16522         estimate builtins.
16523         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
16524         sized, prefer traditional floating point registers, if integer
16525         vector types, prefer altivec registers.  Don't actually look at
16526         the memory address any more.
16527         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
16528         builtins.
16529         (rs6000_load_constant_and_splat): New helper function to load up
16530         the constant for reciprocal estimate instructions.
16531         (rs6000_emit_madd): New helper function for generating
16532         multiply/add type instructions, based on the current switches.
16533         (rs6000_emit_msub): Ditto.
16534         (rs6000_emit_mnsub): Ditto.
16535         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
16536         replace a divide with a reciprocal estimate and fixup, adding
16537         support for machines with high precision and vectors.
16538         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
16539         low precision machines.
16540         (rs6000_emit_swdiv): New common function to be called to replace a
16541         division with reciprocal estimate and fixup.
16542         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
16543         for double and vector types.  Add support for high precision machines.
16544
16545         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
16546         the reciprocal estimate instructions can be generated.
16547         (TARGET_FRE): Ditto.
16548         (TARGET_FRSQRTES): Ditto.
16549         (TARGET_FRSQRTE): Ditto.
16550         (RS6000_RECIP_*): New macros for reciprocal estimate support.
16551
16552         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
16553         square root estimate on vectors.
16554         (re<mode>2): New insn for reciprocal division estimate on vectors.
16555
16556         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
16557         New builtin.
16558         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
16559         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
16560         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
16561         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
16562         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
16563         (RS6000_BUILTIN_RSQRT): Ditto.
16564         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
16565         floating point builtin.
16566
16567         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16568         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
16569         __RECIP_PRECISION__ based on the command line switches.
16570         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
16571
16572         * config/rs6000/rs6000.opt (-mrecip): Document add support for
16573         replacing division instructions with reciprocal estimate and fixup.
16574         (-mrecip=<opt>): New option.
16575         (-mrecip-precision): Ditto.
16576
16577         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
16578         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
16579         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
16580         precision scalar.
16581
16582         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
16583         (UNSPEC_VREFP): Ditto.
16584         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
16585         conterparts with regard to support of -mno-fused-madd and -ffast-math.
16586         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
16587         reciprocal estimate instructions to be generated.
16588         (altivec_vrefp): Ditto.
16589
16590         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
16591         estimate support.
16592         (rreg): New mode attribute for reciprocal estimate support.
16593         (recip<mode>3): New insn for division using reciprocal estimate
16594         and fixup builtins.
16595         (divide define_split): New define_split to convert floating point
16596         division to use reciprocal estimate if the user used the
16597         appropriate options and the split is run when we can add new
16598         pseudo registers for the fixup.
16599         (rsqrt<mode>2): New insn for reciprocal square root support.
16600         (recipsf3): Move into recip<mode>3.
16601         (recipdf3): Ditto.
16602         (fres): Use TARGET_FRES.
16603         (rsqrtsf2): Move into rsqrt<mode>2.
16604         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
16605         (copysignsf3): Add support for VSX.
16606         (fred): Use TARGET_FRE.
16607         (fred_fpr): Ditto.
16608         (rsqrtdf_internal1): New function for frsqrte instruciton.
16609
16610         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
16611         (vec_rsqrt): Ditto.
16612
16613 2010-06-03  Richard Guenther  <rguenther@suse.de>
16614
16615         PR middle-end/44291
16616         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
16617         (set_user_assembler_libfunc): Likewise.
16618
16619 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16620
16621         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
16622         defaults.h.
16623         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
16624         to defaults.h
16625         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
16626         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
16627         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
16628         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
16629         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
16630         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
16631         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
16632         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
16633         * defaults.h: Updated for above mentioned changes.
16634
16635 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
16636
16637         * c-common.c: Remove header include of tm_p.h.
16638         * Makefile.in (c-common.o): Remove TM_P_H dependency.
16639
16640 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
16641
16642         * tree.h (struct tree_decl_map): New type.
16643         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
16644         (tree_decl_map_hash): New prototype.
16645         (debug_expr_for_decl, value_expr_for_decl): Change into
16646         tree_decl_map hashtab from tree_map.
16647         (init_ttree): Adjust initialization.
16648         (tree_decl_map_hash): New function.
16649         (decl_debug_expr_lookup, decl_debug_expr_insert,
16650         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
16651
16652 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16653
16654         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
16655         linker emulations.
16656         * configure: Regenerate.
16657         * config.in: Regenerate.
16658
16659         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
16660         (X86_64_EMULATION): Define.
16661         (TARGET_LD_EMULATION): Use them.
16662
16663         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
16664         (SPARC64_EMULATION): Define.
16665         (LINK_ARCH_SPEC): Use them.
16666
16667 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16668
16669         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
16670         smallest_mode_for_size for computing the precision types of new
16671         graphite IVs.  Do not call lang_hooks.types.type_for_size.
16672
16673 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16674
16675         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
16676         information.
16677         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
16678
16679 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16680
16681         PR middle-end/44363
16682         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
16683         return false instead.
16684
16685 2010-06-02  Jan Hubicka  <jh@suse.cz>
16686
16687         PR middle-end/44295
16688         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
16689         create new cgraph node to check callee.
16690
16691 2010-06-02  Richard Guenther  <rguenther@suse.de>
16692
16693         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
16694
16695 2010-06-02  Richard Guenther  <rguenther@suse.de>
16696
16697         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
16698         (lto_wrapper_cleanup): ... this.  Do not exit.
16699         (fatal): Adjust.  Exit here.
16700         (fatal_perror): Likewise.
16701         (fatal_signal): New function.
16702         (main): Set up signal handlers to cleanup temporary files.
16703         * Makefile.in (lto-wrapper.o): Adjust dependencies.
16704
16705 2010-06-02  Richard Guenther  <rguenther@suse.de>
16706
16707         PR tree-optimization/44377
16708         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
16709
16710 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16711
16712         * config/s390/2097.md (z10_fhex): Remove insn reservation.
16713         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
16714         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
16715         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
16716         instruction.
16717         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
16718
16719 2010-06-02  Jan Hubicka  <jh@suse.cz>
16720
16721         * bitmap.c (bitmap_descriptor): Add search_iter.
16722         (bitmap_find_bit): Increment it.
16723         (print_statistics): Print it.
16724
16725 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
16726
16727         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
16728         instead of gimple_build_call_vec.  Delete unnecessary local variable.
16729
16730 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16731
16732         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
16733         change from yesterday.
16734
16735 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16736
16737         * c-ada-spec.c: Clean up redundant includes.
16738
16739 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
16740
16741         * gimplify.c: Do not include except.h and optabs.h.
16742         (gimplify_body): Do not initialize RTL profiling.
16743         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
16744         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
16745         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
16746         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
16747         langhooks.h.
16748
16749         * tree-pretty-print.h: Include pretty-print.h.
16750         * gimple-pretty-print.h: Include pretty-print.h.
16751
16752         * tree-pretty-print.c: Do not include diagnostic.h.
16753         * tree-vrp.c: Likewise.
16754         * tree-tailcall.c: Likewise
16755         * tree-scalar-evolution.c: Likewise
16756         * tree-ssa-dse.c: Likewise
16757         * tree-chrec.c: Likewise
16758         * tree-ssa-sccvn.c: Likewise
16759         * tree-ssa-copyrename.c: Likewise
16760         * tree-nomudflap.c: Likewise
16761         * tree-call-cdce.c: Likewise
16762         * tree-stdarg.c: Likewise
16763         * tree-ssa-math-opts.c: Likewise
16764         * tree-nrv.c: Likewise
16765         * tree-ssa-sink.c: Likewise
16766         * tree-browser.c: Likewise
16767         * tree-ssa-loop-ivcanon.c: Likewise
16768         * tree-ssa-loop.c: Likewise
16769         * tree-parloops.c: Likewise
16770         * tree-ssa-address.c: Likewise
16771         * tree-ssa-ifcombine.c: Likewise
16772         * tree-if-conv.c: Likewise
16773         * tree-data-ref.c: Likewise
16774         * tree-affine.c: Likewise
16775         * tree-ssa-phiopt.c: Likewise
16776         * tree-ssa-coalesce.c: Likewise
16777         * tree-ssa-pre.c: Likewise
16778         * tree-ssa-live.c: Likewise
16779         * tree-predcom.c: Likewise
16780         * tree-ssa-forwprop.c: Likewise
16781         * tree-ssa-dce.c: Likewise
16782         * tree-ssa-ter.c: Likewise
16783         * tree-ssa-loop-prefetch.c: Likewise
16784         * tree-optimize.c: Likewise
16785         * tree-ssa-phiprop.c: Likewise
16786         * tree-object-size.c: Likewise
16787         * tree-outof-ssa.c: Likewise
16788         * tree-ssa-structalias.c: Likewise
16789         * tree-switch-conversion.c: Likewise
16790         * tree-ssa-reassoc.c: Likewise
16791         * tree-ssa-operands.c: Likewise
16792         * tree-vectorizer.c: Likewise
16793         * tree-vect-data-refs.c: Likewise
16794         * tree-vect-generic.c: Likewise
16795         * tree-vect-stmts.c: Likewise
16796         * tree-vect-patterns.c: Likewise
16797         * tree-vect-slp.c: Likewise
16798         * tree-vect-loop.c: Likewise
16799         * tree-ssa-loop-ivopts.c: Likewise
16800         * tree-ssa-loop-im.c: Likewise
16801         * tree-ssa-loop-niter.c: Likewise
16802         * tree-ssa-loop-unswitch.c: Likewise
16803         * tree-ssa-loop-manip.c: Likewise
16804         * tree-ssa-loop-ch.c: Likewise
16805         * tree-dump.c: Likewise
16806         * tree-complex.c: Likewise
16807
16808         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
16809         * tree-ssa-uninit.c: Likewise
16810         * tree-ssa-threadupdate.c: Likewise
16811         * tree-ssa-uncprop.c: Likewise
16812         * tree-ssa-ccp.c: Likewise
16813         * tree-ssa-dom.c: Likewise
16814         * tree-ssa-propagate.c: Likewise
16815         * tree-ssa-alias.c: Likewise
16816         * tree-dfa.c: Likewise
16817         * tree-cfgcleanup.c: Likewise
16818         * tree-sra.c: Likewise
16819         * tree-ssa-copy.c: Likewise
16820         * tree-ssa.c: Likewise
16821         * tree-profile.c: Likewise
16822         * tree-cfg.c: Likewise
16823         * tree-ssa-threadedge.c: Likewise
16824         * tree-vect-loop-manip.c: Likewise
16825
16826         * tree-inline.c: Do not include diagnostic.h and expr.h.
16827         Include rtl.h.
16828         (copy_decl_for_dup_finish): Do not use NULL_RTX.
16829
16830         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
16831         * tree-loop-distribution.c: Likewise.
16832
16833 2010-06-01  Jan Hubicka  <jh@suse.cz>
16834
16835         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
16836
16837 2010-06-01  Jan Hubicka  <jh@suse.cz>
16838
16839         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
16840         remove return value.
16841         (split_bbs_on_noreturn_calls) .... here.
16842         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
16843         * tree-flow.h (fixup_noreturn_call): New.
16844
16845 2010-06-01  Jan Hubicka  <jh@suse.cz>
16846
16847         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
16848
16849 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
16850
16851         * tree.h (build_nt_call_list): Delete.
16852         * tree.c (build_nt_call_list): Delete.
16853
16854 2010-06-01  Jan Hubicka  <jh@suse.cz>
16855
16856         * fwprop.c: Make emit-rtl.h include last.
16857         * rtlanal.c: Include emit-rtl.h.
16858         * genautomata.c: Output emit-rtl include into insn-automata.c
16859         * df-scan.c: Include emit-rtl.h.
16860         * haifa-sched.c: Indlude emit-rtl.h.
16861         * mode-switching.c: Indlude emit-rtl.h.
16862         * graph.c: Indlude emit-rtl.h.
16863         * sel-sched.c: Include emit-rtl.h.
16864         * sel-sched-ir.c: Include emit-rtl.h.
16865         * ira-build.c: Include emit-rtl.h.
16866         * emit-rtl.c (first_insn, last_insn): Remove defines.
16867         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
16868         Move to emit-rtl.h.
16869         (set_new_first_and_last_insn, get_last_insn_anywhere,
16870         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
16871         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
16872         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
16873         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
16874         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
16875         Use accessor functions.
16876         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16877          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16878         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
16879         mem_expr_equal_p): Move here from rtl.h.
16880         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
16881         Move here from emit-rtl.c; make inline.
16882         * cfglayout.h: Include emit-rtl.h.
16883         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16884          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16885         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
16886         mem_expr_equal_p, get_insns, set_first-insn,
16887         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
16888         * reg-stack.c: Include emit-rtl.h.
16889         * dce.c: Likewise.
16890
16891 2010-06-01  Jan Hubicka  <jh@suse.cz>
16892
16893         * cgraph.h (tree_function_versioning): Update prototype.
16894         (cgraph_function_versioning): Update prototype.
16895         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
16896         bitmap.
16897         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
16898         (cgraph_materialize_clone, save_inline_function_body): Update use of
16899         tree_function_versioning.
16900         * tree-inline.c (copy_bb): Look for previous copied block to link
16901         after; fix debug output.
16902         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
16903         (copy_body): Likewise.
16904         (expand_call_inline): Update use of copy_body.
16905         (tree_function_versioning): Update use of copy body; accept
16906         blocks_to_copy and new_entry.
16907
16908 2010-06-01  Jan Hubicka  <jh@suse.cz>
16909
16910         * gegenrtl.c: Remove unnecesary prototypes.
16911         (gendecl): Remove.
16912         (gendef): Produce static inline.
16913         (gencode): Remove.
16914         (main): Do not decode parameters; generate header only.
16915         * Makefile.in (genrtl.c): Remove.
16916
16917 2010-06-01  Jan Hubicka  <jh@suse.cz>
16918
16919         * tree-switch-conversion.c (build_one_array): Make it readonly.
16920
16921 2010-06-01  Richard Guenther  <rguenther@suse.de>
16922
16923         * optabs.c (init_optabs): Guard all accesses to reinit.
16924         * ipa-pure-const.c (propagate): Fix another typo.
16925         * opts.c (common_handle_option): Split assignment to bool.
16926         * c-opts.c (c_common_handle_option): Likewise.
16927
16928 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
16929             Matthew Gingell  <gingell@adacore.com>
16930
16931         * doc/invoke.texi: Mention -fdump-ada-spec.
16932         * tree-dump.c (dump_files): Add ada-spec.
16933         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
16934         * tree-pass.h (tree_dump_index): Add TDI_ada.
16935         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
16936         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
16937         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
16938         * c-decl.c: Include c-ada-spec.h.
16939         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
16940         functions.
16941         (c_write_global_declarations): Add handling of -fdump-ada-spec.
16942         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
16943         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
16944         * c-ada-spec.h, c-ada-spec.c: New files.
16945
16946 2010-06-01  Richard Guenther  <rguenther@suse.de>
16947
16948         PR lto/43853
16949         * ipa-pure-const.c (get_function_state): Hand back varying state
16950         if we do not have one.
16951         (has_function_state): New function.
16952         (duplicate_node_data): Adjust.
16953         (remove_node_data): Likewise.
16954         (pure_const_write_summary): Likewise.
16955         (propagate): Likewise.  Fix typo.
16956
16957 2010-06-01  Jan Hubicka  <jh@suse.cz>
16958
16959         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
16960         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
16961         (execute_all_ipa_transforms): Do not play with the states.
16962
16963 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
16964
16965         * config/arm/t-linux-androideabi: New.
16966         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
16967
16968 2010-06-01  Jan Hubicka  <jh@suse.cz>
16969
16970         * tree-inline.c (estimate_num_insns): For stdarg functions look
16971         into call statement to count cost of argument passing.
16972
16973 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
16974
16975         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
16976         argument for fprintf.
16977         (ix86_output_addr_diff_elt): Likewise.
16978         (x86_function_profiler): Likewise.
16979         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
16980         (LPREFIX): Likewise.
16981         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
16982
16983 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
16984
16985         PR target/44338
16986         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
16987         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
16988         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
16989         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
16990         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
16991         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
16992         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
16993         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
16994         TARGET_FUSED_MADD.
16995
16996 2010-05-31  Jan Hubicka  <jh@suse.cz>
16997
16998         * tree.h (tree_range_check_failed): Declare noreturn.
16999
17000 2010-05-31  Jan Hubicka  <jh@suse.cz>
17001
17002         * gimple.c (gimple_call_builtin_p): New function.
17003         * gimple.h (gimple_call_builtin_p): Declare.
17004         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
17005         to exit.
17006         (execute_warn_function_return): BUILT_IN_RETURN is return.
17007         (split_critical_edges): Return edges are not critical.
17008         (is_ctrl_altering_stmt): Builtin_in_return is altering.
17009         (gimple_verify_flow_info): Handle built_in_return.
17010         (execute_warn_function_return): Handle built_in_return.
17011         * ipa-pure-const.c (check_call): Ignore builtin_return.
17012
17013 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
17014
17015         PR middle-end/44337
17016         * expr.c (expand_assignment): Don't store anything for out-of-bounds
17017         array accesses with non-MEM.
17018
17019         PR tree-optimization/44182
17020         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
17021         newly needs to end a bb is followed by debug stmts, instead return
17022         true from the function at the end.
17023         (maybe_move_debug_stmts_to_successors): New function.
17024         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
17025
17026 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
17027
17028         PR target/44161
17029         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
17030
17031 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
17032
17033         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
17034         for nested functions in non-optimized compilation.
17035
17036 2010-05-31  Richard Guenther  <rguenther@suse.de>
17037
17038         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
17039
17040 2010-05-30  Jan Hubicka  <jh@suse.cz>
17041
17042         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
17043
17044 2010-05-30  Richard Guenther  <rguenther@suse.de>
17045
17046         PR lto/42975
17047         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
17048         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
17049         no longer needed.
17050
17051 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
17052
17053         * config/darwin.c (output_objc_section_asm_op): Add comment.
17054         (name_needs_quotes): Add '_' to list of valid comment chars.
17055         (machopic_output_function_base_name): Remove unneeded quotes.
17056         (darwin_encode_section_info): Adjust asm whitespace.
17057         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
17058         (ASM_OUTPUT_LOCAL): Ditto.
17059         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
17060         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
17061         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
17062
17063 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
17064
17065         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
17066         RS6000_OUTPUT_BASENAME unconditionally.
17067         (rs6000_output_function_epilogue): Likewise.
17068
17069 2010-05-30  Jan Hubicka  <jh@suse.cz>
17070
17071         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
17072         nodes.
17073
17074 2010-05-30  Richard Guenther  <rguenther@suse.de>
17075
17076         * tree-cfg.c (verify_gimple_assign_single): Implement
17077         verification for COND_EXPR rhs.
17078
17079 2010-05-30  Jan Hubicka  <jh@suse.cz>
17080
17081         * cgraph.h (cgraph_dump_file): Declare.
17082         * cgraphunit.c (cgraph_dump_file): Export.
17083         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
17084
17085 2010-05-30  Jan Hubicka  <jh@suse.cz>
17086
17087         * dwarf2out.c (reference_to_unused,
17088         premark_types_used_by_global_vars_helper): Avoid creation of new
17089         varpool nodes.
17090
17091 2010-05-30  Jan Hubicka  <jh@suse.cz>
17092
17093         * cgraph.h (cgraph_node_cannot_return,
17094         cgraph_edge_cannot_lead_to_return): New functions.
17095         * cgraph.c (cgraph_node_cannot_return,
17096         cgraph_edge_cannot_lead_to_return): Use them.
17097         * ipa-pure-const.c (pure_const_names): New static var.
17098         (check_call): Handle calls not leading to return.
17099         (pure_const_read_summary): Dump info read.
17100         (propagate): Dump info about propagation process; ignore side effects
17101         of functions not leading to exit; fix handling of pure functions.
17102
17103 2010-05-30  Jan Hubicka  <jh@suse.cz>
17104
17105         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
17106         for tail call epilogues.
17107
17108 2010-05-30  Jan Hubicka  <jh@suse.cz>
17109
17110         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
17111         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
17112         dump files.
17113
17114 2010-05-29  Jan Hubicka  <jh@suse.cz>
17115
17116         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
17117         node; remove references in node we no longer keep in cgrpah but need
17118         body of.
17119
17120 2010-05-29  Jan Hubicka  <jh@suse.cz>
17121
17122         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
17123
17124 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17125
17126         PR target/44165
17127         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
17128
17129 2010-05-29  Jan Hubicka  <jh@suse.cz>
17130
17131         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
17132         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
17133         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
17134         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
17135         debug_names_replaced_by, debug_update_ssa): Likewise.
17136         * sbitmap.c (debug_sbitmap): Likewise.
17137         * genrecog.c (debug_decision, debug_decision_list): Likewise.
17138         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
17139         debug_tree_chain): Likewise.
17140         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
17141         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
17142         * optabs.c (debug_optab_libfuncs): Likewise.
17143         (verify_loop_closed_ssa): Likewise.
17144         * value-prof.c (verify_histograms): Likewise.
17145         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
17146         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
17147         * cfghooks.c (verify_flow_info): Likewise.
17148         * fold-const.c (debug_fold_checksum): Likewise.
17149         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
17150         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
17151         Likewise.
17152         * omega.c (debug_omega_problem): Likewise.
17153         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
17154         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
17155         * dominance.c (verify_dominators, debug_dominance_info,
17156         debug_dominance_tree): Likewise.
17157         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
17158         * df_regno_debug, df_ref_debug,
17159         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
17160         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
17161         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
17162         * sel-sched.c (debug_state): Likewise.
17163         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
17164         Likewise.
17165         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
17166         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
17167         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
17168         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
17169         Likewise.
17170         * c-pretty-print.c (debug_c_tree): Likewise.
17171         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
17172         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
17173         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
17174         * ebitmap.c (debug_ebitmap): Likewise.
17175         * function.c (debug_find_var_in_block_tree): Likewise.
17176         * print-rtl.c (debug_rtx): Likewise.
17177         (debug_rtx_count): Likewise.
17178         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
17179         * stor-layout.c (debug_rli): Likewise.
17180         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
17181         * tree-data-ref.c (debug_data_references,
17182         debug_data_dependence_relations, debug_data_reference,
17183         debug_data_dependence_relation, debug_rdg_vertex,
17184         debug_rdg_component, debug_rdg): Likewise.
17185         * tree-affine.c (debug_aff): Likewise.
17186         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
17187         Likewise.
17188         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
17189         * emit-rtl.c (verify_rtl_sharing): Likewise.
17190         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
17191         debug_value_expressions): Likewise.
17192         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
17193         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
17194         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
17195         * cfglayout.c (verify_insn_chain): Likewise.
17196         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
17197         debug_clast_stmt, debug_generated_program): Likewise.
17198         * ggc-page.c (debug_print_page_list): Likewise.
17199         * tree-ssa-ter.c (debug_ter): Likewise.
17200         * graphite-dependences.c (debug_pddr): Likewise.
17201         * sched-deps.c (debug_ds): Likewise.
17202         * tree-ssa.c (verify_ssa): Likewise.
17203         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
17204         debug_scattering_functions, debug_iteration_domains, debug_pdr,
17205         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
17206         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
17207         * tree-inline.c (debug_find_tree): Likewise.
17208         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
17209         debug_ppl_powerset_matrix): Likewise.
17210         * var-tracking.c (debug_dv): Likewise.
17211         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
17212         * cfgloop.c (verify_loop_structure): Likewise.
17213         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
17214         * c-common.c (verify_sequence_points): Likewise.
17215         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
17216         debug_candidates, debug_rgn_dependencies): Likewise.
17217         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
17218         * debug_constraint_graph, debug_solution_for_var,
17219         debug_sa_points_to_info): Likewise.
17220         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
17221         Likewie.
17222         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
17223         debug_loops, debug_loop, debug_loop_num): Likewise.
17224         * passes.c (debug_pass): Likewise.
17225         (dump_properties): Likewise; add cfglayout property.
17226         (debug_properties): Likewise.
17227         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
17228         * varpool.c (debug_varpool): Likewise.
17229         * regcprop.c (debug_value_data): Likewise.
17230         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
17231         debug_immediate_uses_for): Likewise.
17232
17233 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17234
17235         PR bootstrap/44315
17236         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
17237         Filter out insn-flags.h.
17238
17239 2010-05-29  Jan Hubicka  <jh@suse.cz>
17240
17241         * cgraph.h (struct varpool_node_set_def,
17242         struct cgraph_node_set_def): Remove unused AUX pointer.
17243         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
17244         VEC_empty macro.
17245
17246 2010-05-29  Jan Hubicka  <jh@suse.cz>
17247
17248         PR middle-end/44324
17249         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
17250
17251 2010-05-29  Richard Guenther  <rguenther@suse.de>
17252
17253         * lto-streamer.c (cached_bp): New global variable.
17254         (bitpack_create): Return the cached bitpack, if available.
17255         (bitpack_delete): Clear and cache the bitpack, if appropriate.
17256         (bp_pack_value): Remove redundant asserts.
17257
17258 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
17259
17260         PR middle-end/44306
17261         * tree-if-conv.c (is_true_predicate): New.
17262         (is_predicated): Use is_true_predicate.
17263         (add_to_predicate_list): Same.  Do not use unshare_expr.
17264         (add_to_dst_predicate_list): Same.
17265
17266 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
17267
17268         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
17269         field on edges.
17270         (predicate_bbs): Same.
17271         (clean_predicate_lists): Same.
17272         (find_phi_replacement_condition): Do not AND the predicate from
17273         edge->aux.
17274
17275 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17276
17277         PR bootstrap/44315
17278         * Makefile.in (build/gencondmd.o): Add a missing `\'.
17279
17280 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17281
17282         PR target/44261
17283         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
17284         (negdf2): Adjust expander pattern and use negdf2_slow.
17285         (negsf2): Likewise.
17286
17287 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
17288
17289         * basic-block.h (struct control_flow_graph): Move last_label_uid field
17290         up.
17291         * df.h (struct df_base_ref): Move regno field up.
17292         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
17293         * expr.h (struct separate_ops): Move location field up.
17294         * optabs.h (struct optab_d): Move libcall_basename field down.
17295         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
17296         * config/i386/i386.h (struct machine_function): Convert call_abi field
17297         into a bitfield.  Move cfa field to the end of the structure.
17298
17299 2010-05-29  Jan Hubicka  <jh@suse.cz>
17300
17301         * varpool.c (varpool_get_node): Fix lookup.
17302
17303 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17304
17305         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
17306         RTL specific prototypes with #ifdef RTX_CODE.
17307         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
17308         * config/spu/t-spu-elf: Fix dependencies.
17309
17310         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
17311
17312 2010-05-29  Mike Stump  <mikestump@comcast.net>
17313
17314         PR bootstrap/44315
17315         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
17316         TM_H when building to avoid dependency loops.
17317
17318 2010-05-29  Jan Hubicka  <jh@suse.cz>
17319
17320         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
17321         refs and body; not the whole node for masters of materialized clones.
17322
17323 2010-05-29  Mike Stump  <mikestump@comcast.net>
17324
17325         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
17326
17327 2010-05-29  Jan Hubicka  <jh@suse.cz>
17328
17329         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
17330         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
17331         use of clone_function_name.
17332         * cgraph.h (cgraph_create_virtual_clone,
17333         cgraph_function_versioning): update prototypes.
17334         (clone_function_name): Declare.
17335         * ipa-cp.c (ipcp_insert_stage): Update call of
17336         cgraph_create_virtual_clone.
17337         * omp-low.c (create_omp_child_function_name): Use
17338         cgraph_create_virtual_clone.
17339         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
17340         (cgraph_function_versioning): Take SUFFIX argument; produce new name
17341         and make decl local.
17342
17343 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17344
17345         * vec.h: Include statistics.h
17346         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
17347         with VEC_H.
17348
17349 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17350
17351         * c-lex.c: Do not include c-tree.h.
17352         * c-pretty-print.c: Likewise.
17353         * c-opts.c: Likewise.
17354         * c-gimplify.c: Likewise.
17355         * c-common.c: Likewise.
17356         * c-dump.c: Likewise.  Include c-common.h.
17357
17358 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17359
17360         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
17361         before including diagnostic-core.h.
17362         (c_cpp_error): New prototype moved from c-tree.h.
17363         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
17364         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
17365         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
17366         (c_cpp_error): Prototype moved to c-common.h.
17367         * Makefile.in: Update dependency for C_COMMON_H.
17368
17369 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17370
17371         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
17372         * c-common.c (c_register_addr_space): Remove here.
17373         * c-decl.c (c_register_addr_space): Re-add here.
17374
17375 2010-05-28  Mike Stump  <mikestump@comcast.net>
17376
17377         * config/darwin-c.c: Remove c-tree.h include.
17378
17379 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17380
17381         * gcc.c: Include diagnostic.h.
17382         (error_count): Remove.  All users changed to use errorcount.
17383         (programname): Remove.  All users changed to use progname.
17384         (fancy_abort, internal_error, fatal_error, error, warning, inform,
17385         fnotice): Remove.
17386         (execute): Don't include "Internal error" and bug reporting
17387         information in argument of internal_error call.
17388         (process_command): Don't increment error_count after calling
17389         perror_with_name.
17390         (input_filename): Rename to gcc_input_filename.  All users
17391         changed.
17392         (main): Call diagnostic_initialize.  Register delete_temp_files
17393         with atexit.  Use seen_error to test for errors.
17394         * gcc.h: Include diagnostic-core.h.
17395         (fatal_error, error, warning): Remove.
17396         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
17397         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
17398         (gcc.o): Update dependencies.
17399
17400 2010-05-28  Jeff Law  <law@redhat.com>
17401
17402         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
17403         functions.
17404         * ira.h (ira_bad_reload_regno): Declare
17405         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
17406
17407         * ira-color.c (update_curr_costs): Free updated hard reg costs.
17408         (ira_reassign_conflict_allocnos): Remove bogus asserts.
17409         (allocno_reload_assign): Likewise.
17410
17411 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
17412
17413         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
17414         build1_stat.
17415
17416 2010-05-28  Richard Guenther  <rguenther@suse.de>
17417
17418         PR lto/44312
17419         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
17420         Stream fixed-point constants mode.
17421         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
17422         and TYPE_PRECISION.
17423         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
17424         Stream fixed-point constants mode.
17425         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
17426         and TYPE_PRECISION.
17427
17428 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17429
17430         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
17431         only place it was called from.
17432         (number_of_latch_executions): Do not return chrec_dont_know when the
17433         may_be_zero is a runtime condition: instead, return a COND_EXPR
17434         including the may_be_zero condition.
17435         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
17436         of nb_iterations.
17437         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
17438         COND_EXPRs.
17439
17440 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17441
17442         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
17443         generate COND_EXPRs for degenerate_phi_result.
17444
17445 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17446
17447         PR middle-end/44293
17448         * tree-if-conv.c (if_convertible_loop_p): Check the
17449         if-convertibility of phi nodes in non predicated BBs.
17450
17451 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17452
17453         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
17454
17455 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17456
17457         PR driver/15303
17458         * gcc.c (inform, warning, inform): New functions.
17459         (fatal_ice): Rename to internal_error; change cmsgid parameter to
17460         gmsgid.  All callers changed.
17461         (notice): Rename to fnotice; add parameter fp.  All callers changed.
17462         (fatal_error): Rename to fatal_signal.  All users changed.
17463         (fatal): Rename to fatal_error; change cmsgid parameter to
17464         gmsgid.  All callers changed.
17465         (process_command): Use warning instead of error for warnings.
17466         (end_going_arg): Don't use _() around argument of error.
17467         (do_spec_1): Use inform for message from %n specs.  Use warning
17468         instead of error for warnings.
17469         (main): Use inform for comparison messages.  Use warning for
17470         message about unused linker input.
17471         (error): Increment error_count.  Print "error: ".
17472         * gcc.h (fatal): Change to fatal_error.
17473         (warning): Declare.
17474         * config/darwin-driver.c (darwin_default_min_version): Use warning
17475         instead of fprintf for warnings.
17476         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
17477
17478 2010-05-28  Julian Brown  <julian@codesourcery.com>
17479
17480         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
17481         (*thumb2_addsi3_compare0_scratch): New.
17482         * config/arm/constraints.md (Pv): New.
17483         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
17484         for ARM mode only.
17485         (*addsi3_compare0_scratch): Likewise.
17486
17487 2010-05-28  Jan Hubicka  <jh@suse.cz>
17488
17489         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
17490         check.
17491         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
17492         only on local statics.
17493
17494 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
17495
17496         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
17497
17498 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17499
17500         PR bootstrap/44314
17501         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
17502         (OPTION_GLIBC): Define.
17503
17504 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17505
17506         PR debug/41048
17507         * dwarf2out.c (double_int_type_size_in_bits): New function.
17508         (round_up_to_align): Change first argument and return value to
17509         double_int.
17510         (field_byte_offset): Work internally on double_ints.
17511
17512         PR target/43636
17513         * builtins.c (expand_movstr): Use a temporary pseudo instead
17514         of target even when target is not NULL and not const0_rtx, but
17515         fails movstr predicate.
17516         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
17517
17518 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17519
17520         * final.c (rest_of_clean_state): Use %m in errors instead of
17521         strerror (errno).
17522         * gengtype.c (read_input_list, close_output_files): Use xstrerror
17523         instead of strerror.
17524         * toplev.c (process_options): Use %m in errors instead of strerror
17525         (errno).
17526         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
17527         (errno).
17528
17529 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
17530
17531         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
17532         (ix86_canonical_va_list_type): Make static.  Add declaration.
17533         (ix86_enum_va_list): Make static.  Reindent.
17534         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
17535         (ix86_canonical_va_list_type): Ditto.
17536         (ix86_enum_va_list): Ditto.
17537
17538 2010-05-28  Richard Guenther  <rguenther@suse.de>
17539
17540         * lto-wrapper.c (run_gcc): With -save-temps generate a
17541         user-visible ltrans filename.  Fixup ltrans unit numbering.
17542
17543 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
17544
17545         * c-common.c (c_common_nodes_and_builtins): Replace use
17546         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
17547         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
17548         to ix86_enum_va_list.
17549         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
17550         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
17551         (TARGET_ENUM_VA_LIST_P): Add hook description.
17552         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
17553         * target.h (gcc_target): Add enum_va_list hook.
17554
17555         PR bootstrap/44299
17556         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
17557         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
17558         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
17559
17560 2010-05-28  Alan Modra  <amodra@gmail.com>
17561
17562         PR target/44266
17563         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17564         emit_library_call machinery to set up __tls_get_addr calls.
17565
17566 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17567
17568         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
17569
17570 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
17571
17572         Revert fix for PR c++/44188
17573         * c-common.c (is_typedef_decl): Revert the moving of  this
17574         definition ...
17575         * tree.c (is_typedef_decl): ... here.
17576         (typdef_variant_p): Revert the moving of this  definition
17577         here from cp/tree.c.
17578         * c-common.h (is_typedef_decl): Revert the moving of this
17579         declaration ...
17580         * tree.h (is_typedef_decl): ... here.
17581         (typedef_variant_p): Revert the moving of this  declaration here
17582         from cp/cp-tree.h
17583         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
17584         (gen_tagged_type_die): Revert the splitting out of ...
17585         (gen_type_die_with_usage): ... this function. Revert the anonymous
17586         tagged type handling.
17587         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
17588         typedefs naming anonymous tagged types.
17589
17590 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
17591
17592         * config/rs6000/rs6000-modes.def (PSImode): Delete.
17593
17594 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
17595
17596         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
17597         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
17598         throughout.
17599         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
17600         "xer" to "ca".
17601         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
17602         XER_REGS to CA_REGS throughout.
17603         * config/rs6000/rs6000.h: Same.
17604         (ADDITIONAL_REGISTER_NAMES): Add "xer".
17605         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
17606         that mode_iterator "P" is the size for arithmetic carries as well.
17607         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
17608
17609 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17610
17611         PR bootstrap/44255
17612         * combine.c (struct rtx_subst_pair): Define unconditionally.
17613         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
17614         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
17615         Call make_compound_operation on pair->to.
17616         (propagate_for_debug): Don't call make_compound_operation here.
17617         Always use simplify_replace_fn_rtx.
17618
17619 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
17620
17621         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
17622         * config/xtensa/xtensa.c (override_options): Check
17623           TARGET_FORCE_NO_PIC and set flag_pic.
17624         * config/xtensa/xtensa.opt: Document -mforce-no-pic
17625
17626 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
17627
17628         PR bootstrap/44299
17629         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
17630         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
17631
17632 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
17633
17634         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
17635         toplev.h.
17636         * diagnostic.c: Don't include toplev.h.
17637         (progname): Define.  Moved from toplev.c.
17638         (seen_error): New function.
17639         * diagnostic.h: Include diagnostic-core.h.
17640         (diagnostic_t, emit_diagnostic): Don't declare here.
17641         * toplev.c (progname): Move to toplev.c.
17642         (emit_debug_global_declarations, compile_file, finalize,
17643         do_compile, toplev_main): Use seen_error.
17644         * toplev.h: Include diagnostic-core.h.
17645         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
17646         internal_error, warning, warning_at, error, error_n, error_at,
17647         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
17648         verbatim, fnotice, progname): Move to diagnostic-core.h.
17649         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
17650         (expand_builtin_expect): Use seen_error.
17651         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
17652         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
17653         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
17654         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
17655         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
17656         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
17657         errorcount for errors.
17658         * c-opts.c (c_common_finish): Use seen_error.
17659         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17660         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
17661         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
17662         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
17663         (get_coverage_counts): Use seen_error.
17664         * dwarf2out.c (dwarf2out_finish): Use seen_error.
17665         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
17666         gimplify_body): Use seen_error.
17667         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
17668         * ipa-pure-const.c (gate_pure_const): Use seen_error.
17669         * ipa-reference.c (gate_reference): Use seen_error.
17670         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
17671         * lambda-code.c: Include diagnostic-core.h instead of
17672         diagnostic.h.
17673         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17674         * lto-compress.c: Include diagnostic-core.h instead of
17675         diagnostic.h.
17676         * lto-section-in.c: Include diagnostic-core.h instead of
17677         diagnostic.h.
17678         * lto-streamer-out.c: Include diagnostic-core.h instead of
17679         diagnostic.h.
17680         * lto-streamer.c: Include diagnostic-core.h instead of
17681         diagnostic.h.
17682         (gate_lto_out): Use seen_error.
17683         * matrix-reorg.c: Include diagnostic-core.h instead of
17684         diagnostic.h.
17685         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
17686         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
17687         (gate_expand_omp, lower_omp_1): Use seen_error.
17688         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
17689         (rest_of_decl_compilation, rest_of_type_compilation,
17690         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
17691         * tree-cfg.c (label_to_block_fn): Use seen_error.
17692         * tree-inline.c (optimize_inline_calls): Use seen_error.
17693         * tree-mudflap.c (mudflap_finish_file): Use
17694         seen_error.
17695         * tree-optimize.c (gate_all_optimizations,
17696         gate_all_early_local_passes, gate_all_early_optimizations): Use
17697         seen_error.
17698         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
17699         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
17700         (varpool_remove_unreferenced_decls,
17701         varpool_assemble_pending_decls): Use seen_error.
17702         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
17703         (TOPLEV_H, DIAGNOSTIC_H): Update.
17704         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
17705         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
17706         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
17707         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
17708         coverage.o, lambda-code.o): Update dependencies.
17709
17710 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
17711
17712         PR c++/44188
17713         * c-common.c (is_typedef_decl): Move this definition ...
17714         * tree.c (is_typedef_decl): ... here.
17715         (typdef_variant_p): Move definition here from cp/tree.c.
17716         * c-common.h (is_typedef_decl): Move this declaration ...
17717         * tree.h (is_typedef_decl): ... here.
17718         (typedef_variant_p): Move declaration here from cp/cp-tree.h
17719         * dwarf2out.c (is_naming_typedef_decl): New function.
17720         (gen_tagged_type_die): Split out of ...
17721         (gen_type_die_with_usage): ... this function. When an anonymous
17722         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
17723         is emitted for the typedef.
17724         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
17725         anonymous tagged types.
17726
17727 2010-05-27  Jason Merrill  <jason@redhat.com>
17728
17729         * print-tree.c (debug_vec_tree): New fn.
17730         (print_vec_tree): New fn.
17731         * tree.h: Declare them.
17732         * gdbinit.in (pvt): New command.
17733
17734         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
17735
17736         * gdbinit.in (pdd): New command.
17737
17738 2010-05-27  Jan Hubicka  <jh@suse.cz>
17739
17740         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
17741         (update_caller_keys): Return early if there are no callers;
17742         only update fibheap when decresing the key.
17743         (update_callee_keys): Avoid recursion.
17744         (decide_inlining_of_small_functions): When badness does not match;
17745         re-insert into fibheap.
17746
17747 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
17748
17749         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
17750         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
17751         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
17752         (ALL_HOST_OBJS): Now a union of the above two.
17753         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
17754         all files in ALL_HOST_FRONTEND_OBJS.
17755         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
17756
17757         * c-common.c: Pretend to be a backend file by undefining
17758         IN_GCC_FRONTEND (still need rtl.h here).
17759
17760 2010-05-27  Jan Hubicka  <jh@suse.cz>
17761
17762         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
17763         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
17764
17765 2010-05-27  Jan Hubicka  <jh@suse.cz>
17766
17767         * sched-ebb.c: Rename struct deps to struct deps_desc.
17768         * ddg.c: Likewise.
17769         * sel-sched-ir.c: Likewise.
17770         * sched-deps.c: Likewise.
17771         * sched-int.h: Likewise.
17772         * sched-rgn.c: Likewise.
17773
17774 2010-05-27  Jon Beniston  <jon@beniston.com>
17775
17776         PR 43726
17777         * config/lm32/lm32.h: Remove definition of
17778         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
17779
17780 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
17781
17782         PR lto/44230
17783         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
17784
17785 2010-05-27  Richard Guenther  <rguenther@suse.de>
17786
17787         PR tree-optimization/44284
17788         * tree-vect-stmts.c (vectorizable_assignment): Handle
17789         sign-changing conversions as simple copy.
17790
17791 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17792
17793         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
17794         Bionic C library.
17795         (__gthread_active_p): Check for pthread_create if compiling against
17796         Bionic C library.
17797
17798 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17799
17800         Support compilation for Android platform.  Reimplement -mandroid.
17801
17802         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
17803         (*android*): Set ANDROID_DEFAULT.
17804         (arm*-*-linux*): Include linux-android.h.
17805         (arm*-*-eabi*): Don't include previous -mandroid implementation.
17806         * config/arm/eabi.h: Remove, move Android-specific parts ...
17807         * config/linux-android.h: ... here.  New file.
17808         * config/arm/eabi.opt: Rename to ...
17809         * config/linux-android.opt: ... this.
17810         (mandroid): Allow -mno-android option.  Initialize based on
17811         ANDROID_DEFAULT.
17812         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
17813         Move logic to corresponding LINUX_TARGET_* macros.
17814         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
17815         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
17816         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
17817         Android definitions.
17818         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
17819         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
17820         Document.
17821
17822 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17823
17824         Add support for Bionic C library
17825
17826         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
17827         macro.
17828         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
17829         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
17830
17831         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
17832         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
17833         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
17834         to support multiple C libraries.  Handle Bionic.
17835         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
17836         (BIONIC_DYNAMIC_LINKER64): Define.
17837         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
17838         Update.
17839         (TARGET_HAS_SINCOS): Enable for Bionic.
17840
17841         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
17842         the last option specified on command line take effect.
17843         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
17844         (mbionic): New.
17845         (mglibc, muclibc): Update.
17846
17847         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
17848         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
17849         DEFAULT_LIBC.
17850
17851         * doc/invoke.texi (-mglibc, -muclibc): Update.
17852         (-mbionic): Document.
17853
17854 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17855
17856         * c-common.h (c_register_addr_space): Add prototype.
17857         (ADDR_SPACE_KEYWORD): Remove.
17858         * c-common.c (c_register_addr_space): New function.
17859         (c_addr_space_name): Reimplement.
17860         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
17861
17862         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
17863         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
17864
17865         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
17866         Remove TARGET_ADDR_SPACE_KEYWORDS.
17867
17868 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
17869
17870         * input.c: New file.
17871         * input.h (main_input_filename): Move declaration to toplev.h.
17872         * toplev.c (input_location, line_table): Move to input.c
17873         * toplev.h (main_input_filename): Move declaration from input.h.
17874         * tree.c (expand_location): Move to input.c.
17875         * Makefile.in (OBJS-common): Add input.o.
17876         (input.o): Add dependencies.
17877
17878 2010-05-27  Richard Guenther  <rguenther@suse.de>
17879
17880         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
17881         for non-existant files.
17882         (fork_execute): Mark args_name file as deleted.
17883
17884 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
17885
17886         PR bootstrp/44287
17887         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
17888         (narrow_signed_type): Likewise.
17889
17890 2010-05-26  Jan Hubicka  <jh@suse.cz>
17891
17892         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
17893         edge only when checking is enabled; check using former_clone_of;
17894         check inline clones too.
17895         (cgraph_materialize_clone): Record former_clone_of pointer.
17896         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
17897         combining redirections; dump args_to_skip bitmap
17898         (cgraph_materialize_all_clones): Do no redirection here.
17899         * ipa-inline.c (inline_transform): Do redirection here.
17900         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
17901         cheking only).
17902
17903 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17904
17905         * config/avr/avr-c.c: Do not include regs.h.
17906         Include cpplib.h for cpp_define and tree.h for c-common.h.
17907         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
17908         * config/avr/t-avr: Fix dependencies for avr-c.o.
17909
17910 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17911
17912         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
17913         string instead of SYMBOL_REF rtx.
17914         * rtl.h (set_stack_check_libfunc): Move prototype from here...
17915         * libfuncs.h: ...to here.  Adjust for explow.c change.
17916
17917 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
17918
17919         * pretty-print.c: Don't include ggc.h.
17920         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
17921         (identifier_to_locale): Use them for allocation.
17922         * pretty-print.h (identifier_to_locale_alloc,
17923         identifier_to_locale_free): Declare.
17924         * toplev.c (alloc_for_identifier_to_locale): New.
17925         (general_init): Set identifier_to_locale_alloc and
17926         identifier_to_locale_free.
17927         * Makefile.in (pretty-print.o): Update dependencies.
17928
17929 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
17930
17931         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
17932         pointer types if they have different alignment or mode.
17933
17934 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
17935
17936         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17937         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17938         * config/sparc/sparc-protos.h (function_value): Remove declaration.
17939         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
17940         sparc_function_value_regno_p): New functions.
17941         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17942         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17943         (function_value): Rename to...
17944         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
17945         argument to 'outgoing'.
17946         (function_arg_record_value, function_arg_union_value,
17947         function_arg_vector_value): Update comment.
17948
17949 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
17950
17951         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
17952         (fde_needed_for_eh_p): New predicate.
17953         (output_call_frame_info): Use it throughout to decide whether FDEs
17954         are needed for EH purpose.
17955         (dwarf2out_begin_prologue): Reorder assignments.
17956
17957 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17958
17959         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
17960         special case loop->header.
17961         (is_predicated): New.
17962         (if_convertible_loop_p): Call it.
17963
17964 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17965
17966         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
17967         iterator in parameter.  Do not generate code during the analysis.
17968         (tree_if_convert_cond_stmt): Removed.
17969         (tree_if_convert_stmt): Removed.
17970         (predicate_bbs): New.
17971         (if_convertible_loop_p): Call predicate_bbs.
17972         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
17973         now contains all the analysis part.
17974
17975 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17976
17977         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
17978         statements in the analysis part.
17979         (tree_if_convert_stmt): Update comment.
17980         (remove_conditions_and_labels): New.
17981         (combine_blocks): Call remove_conditions_and_labels.
17982         (tree_if_conversion): Update comment.
17983
17984 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17985
17986         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
17987         than 2 predecessors or more than 2 successors.
17988
17989 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17990
17991         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
17992         of loops in which the data dependence analysis fails.
17993
17994 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17995
17996         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
17997         CDI_POST_DOMINATORS.
17998         (tree_if_conversion): Same.
17999
18000 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18001
18002         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
18003
18004 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18005
18006         * tree-if-conv.c: Update copyright years.  Fix comments.
18007         Fix indentation.
18008
18009 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
18010
18011         * builtin-types.def (BT_INT128): New primitive type.
18012         (BT_UINT128): Likewise.
18013         * c-common.c (c_common_r): Add __int128 keyword.
18014         (c_common_type_for_size): Handle __int128.
18015         (c_common_type_for_mode): Likewise.
18016         (c_common_signed_or_unsigned_type): Likewise.
18017         (c_common_nodes_and_builtins): Add builtin type
18018         if target supports 128-bit integer scalar.
18019         * c-common.h (enum rid): Add RID_INT128.
18020         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
18021         if target supports 128-bit integer scalar.
18022         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
18023         (finish_declspecs): Likewise.
18024         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
18025         (c_token_starts_declspecs): Likewise.
18026         (c_parser_declspecs): Likewise.
18027         (c_parser_attributes): Likewise.
18028         (c_parser_objc_selector): Likewise.
18029         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
18030         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
18031         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
18032         * tree.c (make_or_reuse_type): Likewise.
18033         (make_unsigned_type): Likewise.
18034         (build_common_tree_nodes_2): Likewise.
18035         * tree.h (enum integer_type_kind): Add itk_int128 and
18036         itk_unsigned_int128.
18037         (int128_integer_type_node): New define.
18038         (int128_unsigned_type_node): New define.
18039         * doc/extend.texi: Add documentation about __int128 type.
18040
18041 2010-05-26  Richard Guenther  <rguenther@suse.de>
18042
18043         * tree-ssa-sccvn.c (copy_nary): Adjust.
18044         (copy_phis): Rename to ...
18045         (copy_phi): ... this.  Adjust.
18046         (copy_references): Rename to ...
18047         (copy_reference): ... this.  Adjust.
18048         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
18049         result into the valid table.
18050
18051 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18052
18053         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
18054         insn-config.h, insn-codes.h, recog.h, and optabs.h.
18055
18056 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18057
18058         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
18059
18060 2010-05-26  Richard Guenther  <rguenther@suse.de>
18061
18062         * opts.c (common_handle_option): Handle OPT_Ofast.
18063
18064 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
18065
18066         * diagnostic.c: Don't include opts.h.
18067         (permissive_error_option): Define.
18068         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
18069         for classify_diagnostic.  Don't use memset for
18070         classify_diagnostic.  Initialize new and recently added fields.
18071         (diagnostic_classify_diagnostic): Use context->n_opts instead of
18072         N_OPTS.
18073         (diagnostic_report_diagnostic): Pass context parameter to
18074         diagnostic_report_warnings_p.  Use option_enabled and option_name
18075         hooks from context.
18076         (emit_diagnostic): Use permissive_error_option.
18077         (permerror): Likewise.
18078         * diagnostic.h: Don't include options.h.
18079         (struct diagnostic_context): Add n_opts, opt_permissive,
18080         inhibit_warnings, warn_system_headers, option_enabled and
18081         option_name fields.  Change classify_diagnostic to a pointer.
18082         * opts-diagnostic.h: New file.
18083         * opts.c: Include opts-diagnostic.h.
18084         (common_handle_option): Set global_dc fields for -Wfatal-errors,
18085         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
18086         (option_name): New function.
18087         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
18088         (c_common_handle_option): Set global_dc->permissive for
18089         -fpermissive.
18090         * c-common.c (c_cpp_error): Save and restore
18091         global_dc->warn_system_headers, not variable warn_system_headers.
18092         * toplev.c: Include opts-diagnostic.h.
18093         (general_init): Update call to diagnostic_initialize.  Set
18094         global_dc->show_column, global_dc->option_enabled and
18095         global_dc->option_name.
18096         (process_options): Don't set global_dc fields here.
18097         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
18098         (diagnostic.o, opts.o, toplev.o): Update dependencies.
18099
18100 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
18101
18102         * config/picochip/picochip.md (movsi): Split a movsi from a
18103         const after reload.
18104
18105 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18106
18107         * ggc-zone.c: Update copyright year.
18108         (poison_region): Mark memory for Valgrind as undefined before
18109         memset () call and inaccessible afterwards.
18110         (ggc_pch_total_size): Change type of i to int.
18111
18112 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18113
18114         * ggc-common.c (ggc_free_overhead): Allow empty slot.
18115
18116 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18117
18118         * ggc-common.c: Update copyright year.
18119         (ggc_rlimit_bound): Remove prototype.  Compile only if
18120         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
18121         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
18122         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
18123         (ggc_min_heapsize_heuristic): Likewise.
18124
18125 2010-05-26  Richard Guenther  <rguenther@suse.de>
18126
18127         PR rtl-optimization/44164
18128         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
18129         no-common access-path disambiguation.
18130         (indirect_ref_may_alias_decl_p): Adjust.
18131         (indirect_refs_may_alias_p): Likewise.
18132         (refs_may_alias_p_1): Likewise.
18133
18134 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18135
18136         * c-typeck.c: Do not include expr.h.
18137
18138 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18139
18140         * rtl.h (decl_default_tls_model): Move prototype from here...
18141         * output.h: ...to here.
18142         * c-decl.c: Do not include rtl.h.
18143         * c-pragma.c: Likewise.
18144         * c-parser.c: Likewise.
18145         * c-gimplify.c: Likewise.  And also not hard-reg-set.
18146         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
18147         FIXME note for it.  Add a FIXME note for expr.h.
18148         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
18149         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
18150         defined.
18151
18152 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
18153
18154         PR target/44199
18155         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
18156         or total_size is larger than red zone size for non-V4 ABI, emit a
18157         stack_tie resp. frame_tie insn before stack pointer restore.
18158         * config/rs6000/rs6000.md (frame_tie): New insn.
18159
18160 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
18161
18162         * function.h (struct function): Add can_throw_non_call_exceptions bit.
18163         * lto-streamer-in.c (input_function): Stream it in.
18164         * lto-streamer-out.c (output_function): Stream it out.
18165         * function.c (allocate_struct_function): Set it.
18166         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
18167         for flag_non_call_exceptions.
18168         * cfgbuild.c (control_flow_insn_p): Likewise.
18169         (make_edges): Likewise.
18170         * cfgexpand.c (expand_stack_alignment): Likewise.
18171         * combine.c (distribute_notes): Likewise.
18172         * cse.c (cse_extended_basic_block): Likewise.
18173         * except.c (insn_could_throw_p): Likewise.
18174         * gcse.c (simple_mem): Likewise.
18175         * ipa-pure-const.c (check_call): Likewise.
18176         (check_stmt ): Likewise.
18177         * lower-subreg.c (lower-subreg.c): Likewise.
18178         * optabs.c (emit_libcall_block): Likewise.
18179         (prepare_cmp_insn): Likewise.
18180         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
18181         * postreload.c (rest_of_handle_postreload): Likewise.
18182         * reload1.c (reload_as_needed): Likewise.
18183         (emit_input_reload_insns): Likewise.
18184         (emit_output_reload_insns): Likewise.
18185         (fixup_abnormal_edges): Likewise.
18186         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
18187         * store-motion.c (find_moveable_store): Likewise.
18188         * tree-eh.c (stmt_could_throw_p): Likewise.
18189         (tree_could_throw_p): Likewise.
18190         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
18191         * config/arm/arm.c (arm_expand_prologue): Likewise.
18192         (thumb1_expand_prologue): Likewise.
18193         * config/rx/rx.md (cbranchsf4): Likewise.
18194         (cmpsf): Likewise.
18195         * config/s390/s390.c (s390_emit_prologue): Likewise.
18196         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
18197         (inline_forbidden_into_p): New predicate.
18198         (expand_call_inline): Use it to forbid inlining.
18199         (tree_can_inline_p): Likewise.
18200
18201 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18202
18203         * config/i386/i386-c.c: Do not include rtl.h.
18204         * config/i386/t-i386: Update dependencies.
18205
18206 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18207
18208         * attribs.c: Do not include rtl.h.
18209         * Makefile.in: Update dependencies.
18210
18211 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
18212
18213         * double-int.h (double_int_and): New.
18214         * combine.c (try_combine): Clean up, use double_int_* and
18215         immed_double_int_const functions.
18216
18217 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18218
18219         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
18220         stderr to /dev/null instead of grep -q.
18221         * configure: Regenerate.
18222
18223 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18224
18225         * Makefile.in (EXCEPT_H): Fix typo.
18226
18227 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
18228
18229         * ira-build.c (update_conflict_hard_reg_costs): New.
18230         (ira_build): Call update_conflict_hard_reg_costs.
18231
18232 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
18233
18234         PR debug/41371
18235         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
18236         ENABLE_CHECKING.
18237         (intersect_loc_chains): Walk the s2var's loc_chain together
18238         with s1node chain as long as the locations are equal, don't
18239         call find_loc_in_1pdv in that case.
18240
18241         PR debug/42801
18242         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
18243         (copy_bind_expr): ... instead of here.
18244         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
18245         if the block hasn't been remapped.
18246         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
18247         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
18248
18249 2010-05-25  Richard Guenther  <rguenther@suse.de>
18250
18251         PR middle-end/44069
18252         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
18253         out-of-bounds array accesses.
18254
18255 2010-05-25  Richard Guenther  <rguenther@suse.de>
18256
18257         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
18258         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
18259         (run_gcc): Re-organize to make cleanup easier.
18260
18261 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18262
18263         * config/s390/s390.c (optimization_options): Fix and move the
18264         flag_prefetch_loop_arrays override ...
18265         (override_options): ... here.
18266
18267 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
18268
18269         * diagnostic.c: Don't include plugin.h.
18270         (diagnostic_report_diagnostic): Don't handle plugins specially
18271         here.  Pass context to internal_error callback.
18272         * diagnostic.h (struct diagnostic_context): Add context parameter
18273         to internal_error callback.
18274         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
18275         * plugin.h (struct diagnostic_context): Declare.
18276         (warn_if_plugins, plugins_internal_error_function): Declare.
18277         * toplev.c (general_init): Set global_dc->internal_error.
18278         * Makefile.in (diagnostic.o): Update dependencies.
18279
18280 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
18281
18282         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
18283         * config/rs6000/t-darwin64: New.
18284         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
18285         build crt2.
18286
18287 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
18288
18289         PR 44203
18290         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
18291         match the original (and intended) behaviour before r159557.  This
18292         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
18293         in two ways.
18294
18295 2010-05-25  Richard Guenther  <rguenther@suse.de>
18296
18297         * doc/invoke.texi: Document -Ofast.
18298         * target.h (struct gcc_target): Add handle_ofast.
18299         * target-def.h (TARGET_HANDLE_OFAST): Add.
18300         (TARGET_INITIALIZER): Adjust.
18301         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
18302         * common.opt (Ofast): Add.
18303
18304 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
18305
18306         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
18307         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
18308
18309 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
18310
18311         PR target/43610
18312         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
18313         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
18314         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
18315         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
18316
18317 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
18318
18319         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
18320         DW_OP_minus with negated offset instead of DW_OP_plus.
18321         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
18322
18323 2010-05-25  Wei Guozhi  <carrot@google.com>
18324
18325         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
18326         tst instruction and a new alternative.
18327         * config/arm/constraints.md (Pu): New constraint.
18328
18329 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
18330
18331         * function.c (assign_stack_local_1): Initialize variable
18332         to avoid warning when bootstrapping at -O3.
18333
18334 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
18335
18336         * configure.ac (all_lang_makefiles): Remove everything related to it.
18337         * configure: Regenerate.
18338         * Makefile.in: Fix reference to ada Make-lang.in.
18339         Remove support for LANG_MAKEFILES.
18340
18341 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
18342             Sandra Loosemore  <sandra@codesourcery.com>
18343
18344         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
18345         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
18346         description.  Add arm_neon_fp16_ok.
18347         (Add Options): Add arm_neon and arm_neon_fp16.
18348
18349 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
18350
18351         * diagnostic.c: Don't include flags.h.
18352         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
18353         context parameters.  Check flags in the context passed as a parameter.
18354         (diagnostic_build_prefix): Add context parameter.  Check
18355         show_column flag in context.
18356         (diagnostic_action_after_output): Check fatal_errors flag in context.
18357         (diagnostic_report_current_module): Check show_column flag in context.
18358         (default_diagnostic_starter): Update call to
18359         diagnostic_build_prefix.
18360         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
18361         (emit_diagnostic): Pass context to permissive_error_kind.
18362         (permerror): Pass context to permissive_error_kind.
18363         * diagnostic.h (struct diagnostic_context): Add show_column,
18364         pedantic_errors, permissive and fatal_errors fields.
18365         (diagnostic_build_prefix): Update prototype.
18366         * langhooks.c
18367         * toplev.c (process_options): Set flags in global_dc from
18368         flag_show_column, flag_pedantic_errors, flag_permissive,
18369         flag_fatal_errors.
18370         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
18371         to diagnostic_build_prefix.
18372         * Makefile.in (diagnostic.o): Update dependencies.
18373
18374 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
18375
18376         * config/i386/ia32intrin.h (__crc32q): Define only if
18377         __SSE4_2__ is defined.
18378
18379 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
18380
18381         PR target/44132
18382         PR middle-end/43602
18383         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
18384         DECL_VISIBILITY_SPECIFIED.
18385         (emutls_decl): Set DECL_PRESERVE_P and copy
18386         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
18387         (emutls_finalize_control_var): New callback.
18388         (emutls_finish): Finalize emutls control variables.
18389         * toplev.c (compile_file): Move the call to emutls_finish ()
18390         before varpool_assemble_pending_decls ().
18391
18392 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
18393
18394         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
18395         added to the preprocessor condition.
18396
18397 2010-05-24  Paul Brook  <paul@codesourcery.com>
18398
18399         * gengtype-lex.l: Add HARD_REG_SET.
18400         * expr.c (expand_expr_real_1): Record writes to hard registers.
18401         * function.c (rtl_data): Add asm_clobbers.
18402         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
18403         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
18404         Use crtl->asm_clobbers.
18405
18406 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18407
18408         * doc/makefile.texi (Makefile): Mention stages 'profile'
18409         and 'feedback' for profiledbootstrap.
18410
18411 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
18412
18413         PR target/44245
18414         * config/i386/i386.c (def_builtin): Properly check
18415         OPTION_MASK_ISA_64BIT.
18416
18417 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
18418
18419         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
18420         typedefs with different but compatible types.  Allow duplicate
18421         typedefs with the same type except for pedantic non-C1X, but give
18422         warning for variably modified types.
18423         * c-typeck.c (tagged_types_tu_compatible_p,
18424         function_types_compatible_p, type_lists_compatible_p,
18425         comptypes_internal): Add parameter different_types_p; set
18426         *different_types_p for different but compatible types.  All
18427         callers changed.
18428         (comptypes_check_different_types): New.
18429         * c-tree.h (comptypes_check_different_types): Declare.
18430
18431 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
18432
18433         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
18434         * jump.c: Include basic-block.h.
18435         * profile.c: Likewise.
18436         * tree-profile.c: Likewise.
18437         * coverage.c: Likewise.
18438         * basic-block.h (optimize_function_for_size_p): Move to function.h.
18439         (optimize_function_for_speed_p): Likewise.
18440         * function.h (optimize_function_for_size_p,
18441         optimize_function_for_speed_p): Moved here from basic-block.h.
18442         * Makefile.in: Update dependencies.
18443
18444 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18445
18446         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
18447         before calling make; allow override through $MAKE.
18448         * doc/invoke.texi (Optimize Options): Document override.
18449
18450 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
18451
18452         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
18453         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18454         (rs6000_mode_dependent_address_ptr): Make static.
18455         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18456         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
18457         Remove.
18458
18459 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
18460
18461         PR target/43869
18462         * config/i386/i386.c: Make sure that the correct regparm is passed.
18463
18464 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
18465
18466         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
18467         * sbitmap.c: ...to here to internalize sbitmap element access.
18468         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
18469         Explain why basic-block.h is included.
18470         * function.h: Include tm.h for CUMULATIVE_ARGS.
18471         * Makefile.in: Update dependencies.
18472
18473 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18474
18475         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
18476         New core types.
18477         * sbitmap.h (struct sbitmap_def): Do not typedef here.
18478         * sbitmap.c: Include sbitmap.h.
18479         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
18480         hard-reg-set.h.  Split everything related to regsets out from here...
18481         * regset.h: ...to here.  New file.
18482         * df.h: Include regset.h and sbitmap.h.
18483         * tree-flow.h: Likewise.
18484         * cfgloop.h: Likewise.
18485         * except.h: Do not include sbitmap.h.  Include hashtab.h.
18486         * cgraph.h: Include vec.h and function.h.
18487         * reload.h (struct insn_chain): Change types of live_throughout
18488         and dead_or_set from regset_head to bitmap_head.
18489         (compute_use_by_pseudos): Be defined also if regset.h is not included.
18490         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
18491         spilled_regs from regset_head to bitmap_head to avoid dependency
18492         in regset.h.
18493         * sel-sched-ir.h: Include regset.h.
18494         * reload.c: Include df.h before reload.h.
18495         * caller-save.c: Likewise.
18496         * reload1.c: Likewise.
18497         * ira.c: Likewise.
18498         (mark_elimination): Update type of r to bitmap, consistent with
18499         DF_LR_IN.
18500         * dominance.c: Include bitmap.h.
18501         * modulo-sched.c: Include df.h.
18502         * cfganal.c: Include bitmap.h and sbitmap.h.
18503         * cfgbuild.c: Include sbitmap.h.
18504         * lcm.c: Include sbitmap.h.
18505         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
18506         * domwalk.c: Include sbitmap.h, exclude ggc.h.
18507         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
18508         * cselib.c: Include bitmap.h.
18509         * tree-optimize.c: Include regset.h.
18510         * stmt.c: Include bitmap.h.
18511         * Makefile.in: Update dependencies.
18512
18513 2010-05-22  Jan Hubicka  <jh@suse.cz>
18514
18515         * cgraph.h (struct varpool_node): Add same_comdat_group.
18516         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
18517         pointer.
18518         (output_varpool): Update call of lto_output_varpool_node.
18519         (input_varpool): Read same_comdat_group pointer.
18520         (input_varpool_1): Fixup same_comdat_group pointer.
18521         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
18522         group is needed, all are.
18523         * varpool.c (varpool_remove_node): Remove node from same comdat group
18524         linklist too.
18525         (varpool_analyze_pending_decls): Walk same comdat groups.
18526
18527 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18528
18529         * rtl.h (union rtunion_def): Remove rt_bit member.
18530         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
18531         * print-rtl (print_rtx): Do not print the member.
18532         * gengtype.c (adjust_field_rtx_def): Do not handle it.
18533         * gengenrtl.c (type_from_format): Likewise.
18534         (accessor_from_format): Likewise.
18535
18536 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
18537
18538         * dbgcnt.c: Include toplev.h instead of errors.h.
18539         * ira-emit.c: Don't include errors.h.
18540         * ira.c: Include toplev.h instead of errors.h.
18541         * lto-compress.c: Include toplev.h instead of errors.h.
18542         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
18543         ira.o, dbgcnt.o): Update dependencies.
18544
18545 2010-05-22  Richard Guenther  <rguenther@suse.de>
18546
18547         * gimple.c (gimple_types_compatible_p): Check type qualifications
18548         before merging pointer to complete and pointer to incomplete type.
18549         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
18550         we use our own resolution algorithm.  The gold linker plugin
18551         doesn't do the job we want it to do here.
18552
18553 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
18554
18555         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18556         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18557         (sparc_mode_dependent_address_p): New function.
18558
18559 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18560
18561         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
18562
18563         * timevar.c: Do not include any core headers.
18564         (timevar_print): De-i18n-ize.
18565         (print_time): Likewise.
18566         * timevar.h (timevar_push, timevar_pop): Make inline functions.
18567
18568 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
18569
18570         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
18571         langhooks-def.h.
18572         (diagnostic_initialize): Initialize x_data not last_function.
18573         (diagnostic_report_current_function): Move to tree-diagnostic.c.
18574         (default_diagnostic_starter): Call
18575         diagnostic_report_current_module not
18576         diagnostic_report_current_function.
18577         (diagnostic_report_diagnostic): Initialize x_data not
18578         abstract_origin.
18579         (verbatim): Likewise.
18580         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
18581         x_data.
18582         (struct diagnostic_context): Change last_function to x_data.
18583         (diagnostic_auxiliary_data): Replace with
18584         diagnostic_context_auxiliary_data and
18585         diagnostic_info_auxiliary_data.
18586         (diagnostic_last_function_changed, diagnostic_set_last_function,
18587         diagnostic_report_current_function): Move to tree-diagnostic.h.
18588         (print_declaration, dump_generic_node, print_generic_stmt,
18589         print_generic_stmt_indented, print_generic_expr,
18590         print_generic_decl, debug_c_tree, dump_omp_clauses,
18591         print_call_name, debug_generic_expr, debug_generic_stmt,
18592         debug_tree_chain, default_tree_printer): Move to
18593         tree-pretty-print.h.
18594         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
18595         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
18596         gimple-pretty-print.h.
18597         * pretty-print.c: Don't include tree.h
18598         (pp_base_format): Don't handle %K here.
18599         (pp_base_tree_identifier): Move to tree-pretty-print.c.
18600         * pretty-print.h (text_info): Change abstract_origin to x_data.
18601         (pp_tree_identifier, pp_unsupported_tree,
18602         pp_base_tree_identifier): Move to tree-pretty-print.h.
18603         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
18604         tree-pretty-print.h: New files.
18605         * tree-pretty-print.c: Include tree-pretty-print.h.
18606         (percent_K_format): New.  Moved from pretty-print.c.
18607         (pp_base_tree_identifier): Move from pretty-print.c.
18608         * c-objc-common.c: Include tree-pretty-print.h.
18609         (c_tree_printer): Handle %K here.
18610         * langhooks.c: Include tree-diagnostic.h.
18611         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
18612         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
18613         (default_tree_printer): Handle %K using percent_K_format.
18614         (general_init): Use default_tree_diagnostic_starter.
18615         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
18616         (free_lang_data): Use default_tree_diagnostic_starter.
18617         * c-pretty-print.c: Include tree-pretty-print.h.
18618         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18619         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18620         * dwarf2out.c: Include tree-pretty-print.h.
18621         * except.c: Include tree-pretty-print.h.
18622         * gimple-pretty-print.c: Include tree-pretty-print.h and
18623         gimple-pretty-print.h.
18624         * gimplify.c: Include tree-pretty-print.h.
18625         * graphite-poly.c: Include tree-pretty-print.h and
18626         gimple-pretty-print.h.
18627         * ipa-cp.c: Include tree-pretty-print.h.
18628         * ipa-inline.c: Include gimple-pretty-print.h.
18629         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18630         * ipa-pure-const.c: Include gimple-pretty-print.h.
18631         * ipa-struct-reorg.c: Include tree-pretty-print.h and
18632         gimple-pretty-print.h.
18633         * ipa-type-escape.c: Include tree-pretty-print.h.
18634         * print-rtl.c: Include tree-pretty-print.h.
18635         * print-tree.c: Include gimple-pretty-print.h.
18636         * sese.c: Include tree-pretty-print.h.
18637         * tree-affine.c: Include tree-pretty-print.h.
18638         * tree-browser.c: Include tree-pretty-print.h.
18639         * tree-call-cdce.c: Include gimple-pretty-print.h.
18640         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18641         * tree-chrec.c: Include tree-pretty-print.h.
18642         * tree-data-ref.c: Include tree-pretty-print.h and
18643         gimple-pretty-print.h.
18644         * tree-dfa.c: Include tree-pretty-print.h.
18645         * tree-if-conv.c: Include tree-pretty-print.h and
18646         gimple-pretty-print.h.
18647         * tree-inline.c: Include tree-pretty-print.h.
18648         * tree-into-ssa.c: Include tree-pretty-print.h and
18649         gimple-pretty-print.h.
18650         * tree-nrv.c: Include tree-pretty-print.h.
18651         * tree-object-size.c: Include tree-pretty-print.h and
18652         gimple-pretty-print.h.
18653         * tree-outof-ssa.c: Include tree-pretty-print.h and
18654         gimple-pretty-print.h.
18655         * tree-parloops.c: Include tree-pretty-print.h and
18656         gimple-pretty-print.h.
18657         * tree-predcom.c: Include tree-pretty-print.h and
18658         gimple-pretty-print.h.
18659         * tree-scalar-evolution.c: Include tree-pretty-print.h and
18660         gimple-pretty-print.h.
18661         * tree-sra.c: Include tree-pretty-print.h.
18662         * tree-ssa-address.c: Include tree-pretty-print.h.
18663         * tree-ssa-alias.c: Include tree-pretty-print.h.
18664         * tree-ssa-ccp.c: Include tree-pretty-print.h and
18665         gimple-pretty-print.h.
18666         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
18667         * tree-ssa-copy.c: Include tree-pretty-print.h and
18668         gimple-pretty-print.h.
18669         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
18670         * tree-ssa-dce.c: Include tree-pretty-print.h and
18671         gimple-pretty-print.h.
18672         * tree-ssa-dom.c: Include tree-pretty-print.h and
18673         gimple-pretty-print.h.
18674         * tree-ssa-dse.c: Include gimple-pretty-print.h.
18675         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
18676         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
18677         * tree-ssa-live.c: Include tree-pretty-print.h and
18678         gimple-pretty-print.h.
18679         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
18680         gimple-pretty-print.h.
18681         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
18682         gimple-pretty-print.h.
18683         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
18684         gimple-pretty-print.h.
18685         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
18686         gimple-pretty-print.h.
18687         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
18688         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
18689         * tree-ssa-operands.c: Include tree-pretty-print.h and
18690         gimple-pretty-print.h.
18691         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
18692         gimple-pretty-print.h.
18693         * tree-ssa-pre.c: Include tree-pretty-print.h and
18694         gimple-pretty-print.h.
18695         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
18696         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
18697         gimple-pretty-print.h.
18698         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
18699         gimple-pretty-print.h.
18700         * tree-ssa-sink.c: Include gimple-pretty-print.h.
18701         * tree-ssa-ter.c: Include tree-pretty-print.h and
18702         gimple-pretty-print.h.
18703         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
18704         * tree-ssa.c: Include tree-pretty-print.h and
18705         gimple-pretty-print.h.
18706         * tree-stdarg.c: Include gimple-pretty-print.h.
18707         * tree-switch-conversion.c: Include gimple-pretty-print.h.
18708         * tree-tailcall.c: Include tree-pretty-print.h and
18709         gimple-pretty-print.h.
18710         * tree-vect-data-refs.c: Include tree-pretty-print.h and
18711         gimple-pretty-print.h.
18712         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
18713         gimple-pretty-print.h.
18714         * tree-vect-loop.c: Include tree-pretty-print.h and
18715         gimple-pretty-print.h.
18716         * tree-vect-patterns.c: Include gimple-pretty-print.h.
18717         * tree-vect-slp.c: Include tree-pretty-print.h and
18718         gimple-pretty-print.h.
18719         * tree-vect-stmts.c: Include tree-pretty-print.h and
18720         gimple-pretty-print.h.
18721         * tree-vectorizer.c: Include tree-pretty-print.h.
18722         * tree-vrp.c: Include tree-pretty-print.h and
18723         gimple-pretty-print.h.
18724         * value-prof.c: Include tree-pretty-print.h and
18725         gimple-pretty-print.h.
18726         * var-tracking.c: Include tree-pretty-print.h.
18727         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
18728         (tree-diagnostic.o): New dependencies.
18729         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
18730         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
18731         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
18732         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
18733         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
18734         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
18735         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
18736         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
18737         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
18738         tree-ssa-address.o, tree-ssa-loop-niter.o,
18739         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
18740         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
18741         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
18742         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
18743         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
18744         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
18745         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
18746         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
18747         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
18748         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
18749         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
18750         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
18751         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
18752         tree-switch-conversion.o, var-tracking.o, value-prof.o,
18753         cfgexpand.o, pretty-print.o): Update dependencies.
18754
18755 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
18756
18757         * tree-ssa-structalias.c: Remove tm_p.h from include.
18758
18759 2010-05-21  Jeff Law  <law@redhat.com>
18760
18761         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
18762
18763 2010-05-21  Jason Merrill  <jason@redhat.com>
18764
18765         * tree-eh.c (cleanup_is_dead_in): New.
18766         (lower_try_finally): Don't generate a dead cleanup region.
18767         (lower_cleanup): Likewise.
18768
18769 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
18770
18771         PR debug/44223
18772         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
18773         unchain each use from the cyclic next_regno_use chain first.
18774
18775 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18776
18777         * real: Do not include gmp.h, mpfr.h, and mpc.h.
18778         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
18779         (real_value_negate, real_value_abs): New prototypes.
18780         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
18781         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
18782         new include file for interface between MPFR and REAL_VALUE_TYPE.
18783         * real.c: Include realmpfr.h.
18784         (real_arithmetic2): Remove legacy function.
18785         (real_value_negate): New.
18786         (real_value_abs): New.
18787         (mfpr_from_real, real_from_mpfr): Move from here...
18788         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
18789         * builtins.c: Include realmpfr.h.
18790         * fold-const.c: Include realmpfr.h.
18791         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
18792         (fold_negate_const): Likewise.
18793         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
18794         * toplev.c: Include realmpfr.h.
18795         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
18796         and real_value_negate.
18797         * fixed-value.c (check_real_for_fixed_mode): Likewise.
18798         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
18799         (vfp3_const_double_index): Likewise.
18800         (arm_print_operand): Likewise.
18801         * Makefile.in: Update dependencies.
18802
18803 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18804
18805         * config/s390/s390.c (override_options): Increase the default
18806         of max-completely-peel-times.
18807
18808 2010-05-21  Julian Brown  <julian@codesourcery.com>
18809             Mark Mitchell  <mark@codesourcery.com>
18810
18811         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
18812         sibling calls for Thumb-1.
18813         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
18814         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
18815         Thumb-2.
18816         (*call_insn, *call_value_insn): Don't use for Thumb-2.
18817         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
18818         for Thumb-2.
18819         (return): New expander.
18820         (*arm_return): New name for ARM return insn.
18821         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
18822
18823 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
18824
18825         * config.gcc (sparc64-*-rtems*): New target.
18826
18827 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
18828
18829         * tree.c (build_function_decl_skip_args): Fix grammar.
18830         (build_function_type_list_1): Fix typos, adjust formatting.
18831
18832 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18833
18834         * tree.h: Include real.h and fixed-value.h as basic datatypes.
18835         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
18836         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
18837         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
18838         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
18839         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
18840         tree-pretty-print.c, tree-loop-distribution.c,
18841         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
18842         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
18843         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
18844         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
18845         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
18846         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
18847         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
18848         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
18849         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
18850         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
18851         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
18852         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
18853         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
18854         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
18855         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
18856         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
18857         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
18858         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
18859         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
18860         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
18861         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
18862         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
18863         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
18864         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
18865         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
18866         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
18867         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
18868         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
18869         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
18870         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
18871         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
18872         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
18873         config/score/score7.c, config/score/score.c, config/arm/arm.c,
18874         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
18875         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
18876         config/bfin/bfin.c: Clean up redundant includes.
18877         * Makefile.in: Update accordingly.
18878
18879 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
18880
18881         PR middle-end/44204
18882         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
18883         statement has no arguments.
18884
18885 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
18886
18887         PR/44139
18888         * varasm.c (emutls_decl): Merge attributes to new decl.
18889
18890 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
18891
18892         PR middle-end/44101
18893         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
18894         around the uniquized constructor if its type requires a conversion.
18895
18896 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
18897
18898         PR debug/44205
18899         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
18900         at -O0 goto_locus of any of the incoming edges differs from
18901         goto_locus of outgoing edge, or gimple_location of any of the
18902         labels differs.
18903
18904 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
18905
18906         * ira.c (ira_non_ordered_class_hard_regs): Define.
18907         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
18908         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
18909         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
18910         cost of unaligned hard regs when allocating multi-reg pseudos.
18911
18912 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
18913
18914         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
18915         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
18916         for TARGET_NO_FLOAT.
18917         * config/mips/mips.c (mips_file_start): Expand conditional expression
18918         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
18919         (mips_override_options): Move -mno-float override -msoft-float and
18920         -mhard-float.
18921         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
18922         Condition(TARGET_SUPPORTS_NO_FLOAT).
18923         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
18924         __mips_no_float here.
18925         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
18926         (TARGET_SUPPORTS_NO_FLOAT): Define.
18927         * config/mips/sdemtk.opt: Delete.
18928
18929 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
18930
18931         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
18932
18933 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
18934
18935         PR target/43733
18936         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
18937         * configure: Regenerate.
18938         * config.in: Regenerate.
18939         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
18940         instead of sahf only for 64bit targets.
18941
18942 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
18943
18944         PR debug/44178
18945         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
18946         setup_ref_regs for DEBUG_INSNs.
18947
18948 2010-05-20  Jan Hubicka  <jh@suse.cz>
18949
18950         PR middle-end/44197
18951         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
18952
18953 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
18954
18955         PR bootstrap/43870
18956         * df-scan.c (df_ref_compare): Stabilize sort.
18957
18958 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
18959
18960         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
18961         argument.  Don't use DW_OP_piece if offset is non-zero,
18962         put offset into second DW_OP_bit_piece argument.
18963         (dw_sra_loc_expr): Adjust callers.  For memory expressions
18964         compute offset.
18965
18966 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
18967
18968         PR target/44202
18969         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
18970         settings for 16-bit-constant "addo" alternative.
18971
18972 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
18973
18974         * config/mips/mips-dsp.md (add<DSPV:mode>3,
18975         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
18976
18977         PR target/43764
18978         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
18979         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
18980         Use it.
18981
18982 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
18983
18984         * diagnostic.c (FLOAT, FFS): Don't undefine.
18985         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
18986         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
18987         include ordering.
18988
18989 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
18990
18991         * combine.c (propagate_for_debug): Call make_compound_operation
18992         on the source value.
18993         (try_combine): When implementing a split chosen by find_split_point,
18994         either copy i2src or set it to null.  Assert that i2src is not null
18995         before substituting into CALL_INSN_FUNCTION_USAGE.
18996
18997 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
18998
18999         * double-int.h (double_int_ior): New function.
19000         * tree.h (build_int_cst_wide_type): Remove.
19001         * tree.c (build_int_cst_wide_type): Remove.
19002         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
19003         of build_int_cst_wide_type.
19004         * stor-layout.c (set_sizetype): (Ditto.).
19005         * dojump.c (do_jump): Use build_int_cstu instead of
19006         build_int_cst_wide_type.
19007
19008 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
19009
19010         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
19011         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
19012         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
19013         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
19014         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
19015         propagate the 'data' argument to copy_tree_r.
19016         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
19017         Propagate 'data' argument to walk_tree.
19018         (copy_if_shared): New function.
19019         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
19020         (unmark_visited): New function.
19021         (unshare_body): Call copy_if_shared instead of doing it manually.
19022         (unvisit_body): Call unmark_visited instead of doing it manually.
19023
19024 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
19025
19026         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
19027         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
19028         * hooks.c: Likewise.
19029         * target-def.h (TARGET_FOLD_BUILTIN): Define to
19030         hook_tree_tree_int_treep_bool_null.
19031         * target.h (struct gcc_target): Update signature of fold_builtin
19032         field.
19033         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
19034         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
19035         instead of the call expression.
19036         (fold_builtin_call_array): Pass n and argarray directly.
19037         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
19038         consing a list.
19039         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
19040         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
19041         `i' and use it in place of `arity'.
19042         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
19043         Dereference `args' directly.
19044         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
19045
19046 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19047
19048         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19049         3dnow, sse3, sse2.
19050         (Directives): Document optional dg-require-effective-target
19051         selector.
19052
19053 2010-05-19  Richard Guenther  <rguenther@suse.de>
19054
19055         PR lto/44196
19056         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
19057
19058 2010-05-19  Richard Guenther  <rguenther@suse.de>
19059
19060         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
19061         * common.opt (fwhopr=): New.
19062         * opts.c (common_handle_option): Handle OPT_fwhopr.
19063         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
19064         * collect2.c (main): Match -fwhopr*.
19065         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
19066         Execute ltrans stage in parallel when jobs is bigger than 1.
19067
19068 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19069
19070         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19071         pentiumpro on Solaris 8/x86 with Sun as.
19072         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
19073         hidden alias bug.
19074         (gcc_cv_as_ix86_quad): Check for .quad directive.
19075         * configure: Regenerate.
19076         * config.in: Regenerate.
19077         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
19078
19079 2010-05-19  Martin Jambor  <mjambor@suse.cz>
19080
19081         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
19082         also for indirect edges.  Actual printing moved...
19083         (ipa_print_node_jump_functions_for_edge): ...here.
19084         (ipa_compute_jump_functions): Renamed to
19085         ipa_compute_jump_functions_for_edge and made static.
19086         (ipa_compute_jump_functions): New function.
19087         (make_edge_direct_to_target): Check if the number of arguments on
19088         the newly direct edge is the same as the number of parametrs of
19089         the callee.
19090         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
19091         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
19092         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
19093         analysis functions unconditionally, call the new
19094         ipa_analyze_params_uses on the node instead of every edge.
19095
19096 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
19097
19098         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
19099         to tree.
19100         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
19101         also checks for a constant int vs.  non-constant but
19102         loop-invariant steps.
19103         (find_or_create_group): Change the sort algorithm to only consider
19104         steps that are constant ints.
19105         (idx_analyze_ref): Adopt code to handle a tree instead of a
19106         HOST_WIDE_INT for step.
19107         (gather_memory_references_ref): Handle tree instead of int and be
19108         prepared to see a NULL_TREE.
19109         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
19110         prefetches if the step cannot be calculated at compile time.
19111         (issue_prefetch_ref): Issue prefetches for non-constant but
19112         loop-invariant steps.
19113
19114 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
19115
19116         Revert:
19117         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
19118
19119         * tree.h (build_call_list): Remove.
19120         * tree.c (build_call_list): Remove.
19121
19122 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
19123
19124         * tree.h (build_call_list): Remove.
19125         * tree.c (build_call_list): Remove.
19126
19127 2010-05-18  Jan Hubicka  <jh@suse.cz>
19128
19129         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
19130
19131 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
19132
19133         PR rtl-optimization/43332
19134         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
19135
19136 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
19137
19138         * tree.h (build_int_cstu): Implement as static inline.
19139         * tree.c (build_int_cstu): Remove function.
19140         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
19141         sign extended.
19142
19143 2010-05-18  Richard Guenther  <rguenther@suse.de>
19144
19145         PR lto/44143
19146         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
19147         (debug): Initialize from -save-temps.
19148         (collect_execute): Print command-line when verbose.
19149         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
19150         for ltrans invocation.  Produce -dumpbase flag again.
19151         (process_args): Remove.
19152         (main): Simplify.
19153         * collect2.c (maybe_run_lto_and_relink): Only pass object
19154         files to lto-wrapper.
19155         * gcc.c (LINK_COMMAND_SPEC): Likewise.
19156
19157 2010-05-18  Jan Hubicka  <jh@suse.cz>
19158
19159         * opts.c (decode_options): Do not disable whopr at ipa_cp.
19160         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
19161
19162 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
19163
19164         PR lto/44184
19165         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
19166         in a GIMPLE_ASM.
19167         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
19168         in a GIMPLE_ASM.
19169
19170 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
19171
19172         PR debug/41371
19173         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
19174         rtx_equal_p inline.
19175
19176 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
19177
19178         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
19179         lto-macho as lto_binary_reader.
19180
19181         * darwin.c (darwin_asm_named_section): Do not add assembler comment
19182         after .section directive; just print it before the directive instead.
19183
19184 2010-05-17  Jan Hubicka  <jh@suse.cz>
19185
19186         * cgraph.c (cgraph_create_virtual_clone): Only check
19187         versionable_function_p when not in wpa and checking is enabled.
19188         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
19189         there are no more functions to materialize.
19190
19191 2010-05-17  Jan Hubicka  <jh@suse.cz>
19192
19193         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
19194         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
19195         New functions.
19196         (output_cgraph): Call output_cgraph_opt_summary.
19197         (input_cgrpah): Call input_cgraph_opt_summary.
19198         (output_cgraph_opt_summary_p, output_node_opt_summary,
19199         input_node_opt_summary, input_cgraph_opt_section): New functions.
19200         * lto-section-in.c (lto_section_name): Add cgraphopt.
19201         * tree-inline.c (tree_function_versioning): Handle parm_num.
19202         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
19203         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
19204
19205 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
19206
19207         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
19208         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
19209         the insn to prefetch ratio heuristic to loops with known trip count.
19210
19211 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
19212
19213         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
19214         (schedule_prefetches): Do not generate a prefetch if the unroll factor
19215         is far from what is required by the prefetch.
19216
19217 2010-05-17  Jan Hubicka  <jh@suse.cz>
19218
19219         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
19220         (ipcp_estimate_growth): Likewise.
19221         (ipcp_const_param_count): Likewise.
19222         (ipcp_insert_stage): Likewise.
19223         * ipa-prop.c (visit_load_for_mod_analysis): New function.
19224         (visit_store_addr_for_mod_analysis): Set used flag.
19225         (ipa_detect_param_modifications): Set used flag for SSE params;
19226         update use of walk_stmt_load_store_addr_ops.
19227         (ipa_print_node_params): Print used flag.
19228         (ipa_write_node_info): Stream used flag.
19229         (ipa_read_node_info): Likewise.
19230         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
19231         (ipa_is_param_used): New function.
19232         (lto_ipa_fixup_call_notes): Remove unused declaration.
19233
19234 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19235
19236         PR target/44074
19237         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
19238         * configure: Regenerate.
19239         * config.in: Regenerate.
19240         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
19241         !HAVE_AS_IX86_REP_LOCK_PREFIX.
19242         Don't emit whitespace.
19243         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
19244         (*rep_movsi): Likewise.
19245         (*rep_movsi_rex64): Likewise.
19246         (*rep_movqi): Likewise.
19247         (*rep_movqi_rex64): Likewise.
19248         (*rep_stosdi_rex64): Likewise.
19249         (*rep_stossi): Likewise.
19250         (*rep_stossi_rex64): Likewise.
19251         (*rep_stosqi): Likewise.
19252         (*rep_stosqi_rex64): Likewise.
19253         (*cmpstrnqi_nz_1): Use {%;} after repz.
19254         (*cmpstrnqi_nz_rex_1): Likewise.
19255         (*cmpstrnqi_1): Likewise.
19256         (*cmpstrnqi_rex_1): Likewise.
19257         (*strlenqi_1): Use {%;} after repnz.
19258         (*strlenqi_rex_1): Likewise.
19259         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
19260         (*sync_compare_and_swap<mode>): Likewise.
19261         (sync_double_compare_and_swap<mode>): Likewise.
19262         (*sync_double_compare_and_swapdi_pic): Likewise.
19263         (sync_old_add<mode>): Likewise.
19264         (sync_add<mode>): Likewise.
19265         (sync_sub<mode>): Likewise.
19266         (sync_<code><mode>): Likewise.
19267
19268 2010-05-17  Martin Jambor  <mjambor@suse.cz>
19269
19270         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
19271         otr_token and polymorphic.
19272         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
19273         (cgraph_clone_edge): Copy the above fields.
19274         * tree.c (get_binfo_at_offset): New function.
19275         * tree.h (get_binfo_at_offset): Declare.
19276         * ipa-prop.h (enum jump_func_type): Added known_type jump function
19277         type, reordered items, updated comments.
19278         (union jump_func_value): Added base_type field, reordered fields.
19279         (enum ipa_lattice_type): Moved down in the file.
19280         (struct ipa_param_descriptor): New field polymorphic.
19281         (ipa_is_param_polymorphic): New function.
19282         * ipa-prop.c: Include gimple.h and gimple-fold.h.
19283         (ipa_print_node_jump_functions): Print known type jump functions.
19284         (compute_complex_pass_through): Renamed to...
19285         (compute_complex_assign_jump_func): this.
19286         (compute_complex_ancestor_jump_func): New function.
19287         (compute_known_type_jump_func): Likewise.
19288         (compute_scalar_jump_functions): Create known type and complex ancestor
19289         jump functions.
19290         (ipa_note_param_call): New parameter polymorphic, set the corresponding
19291         flag in the call note accordingly.
19292         (ipa_analyze_call_uses): Renamed to...
19293         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
19294         variable var only in the block where it is used.
19295         (ipa_analyze_virtual_call_uses): New function.
19296         (ipa_analyze_call_uses): Likewise.
19297         (combine_known_type_and_ancestor_jfs): Likewise.
19298         (update_jump_functions_after_inlining): Implemented handling of a
19299         number of new jump function types combination.
19300         (print_edge_addition_message): Removed.
19301         (make_edge_direct_to_target): New function.
19302         (try_make_edge_direct_simple_call): Likewise.
19303         (try_make_edge_direct_virtual_call): Likewise.
19304         (update_call_notes_after_inlining): Renamed to...
19305         (update_indirect_edges_after_inlining): this.  Moved edge creation for
19306         indirect calls to try_make_edge_direct_simple_call, also calls
19307         try_make_edge_direct_virtual_call for virtual calls.
19308         (ipa_print_node_params): Changed the header message.
19309         (ipa_write_jump_function): Stream also known type jump functions.
19310         (ipa_read_jump_function): Likewise.
19311         (ipa_write_indirect_edge_info): Stream new fields in
19312         cgraph_indirect_call_info.
19313         (ipa_read_indirect_edge_info): Likewise.
19314         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
19315         GIMPLE_FOLD_H.
19316
19317 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19318
19319         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
19320
19321 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
19322
19323         * tree.h (CALL_EXPR_ARGS): Delete.
19324         (call_expr_arglist): Delete.
19325         * tree.c (call_expr_arglist): Delete.
19326         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
19327         targetm.fold_builtin.
19328         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
19329         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
19330         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
19331         arglist parameter.  Use CALL_EXPR_ARG.
19332         (picochip_expand_builtin_3op): Likewise.
19333         (picochip_expand_builtin_2opvoid): Likewise.
19334         (picochip_expand_array_get): Likewise.
19335         (picochip_expand_array_put): Likewise.
19336         (picochip_expand_array_testport): Likewise.
19337         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
19338         rather than arglist.
19339         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
19340         CALL_EXPR_ARGS.
19341         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
19342         than TREE_VALUE and TREE_CHAIN.
19343         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
19344         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
19345         the arglist.
19346
19347 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
19348
19349         PR bootstrap/42347
19350         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
19351         to have no fallthru edge.
19352
19353         PR middle-end/44102
19354         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
19355         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
19356         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
19357         add BARRIER after previous bb if needed.
19358
19359 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
19360
19361         * tree.c (build_function_type_list_1): Remove bogus assert condition.
19362
19363 2010-05-17  Alan Modra  <amodra@gmail.com>
19364
19365         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
19366         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
19367         with copy_reg rtx param.
19368         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
19369         Correct cases where code for ABI_V4 did not initialise the reg
19370         used to access frame.  Also leave frame_reg_rtx as sp for large
19371         frames that save no regs.
19372
19373 2010-05-17  Martin Jambor  <mjambor@suse.cz>
19374
19375         PR middle-end/44133
19376         * tree-sra.c (create_access_replacement): New parameter rename, mark
19377         the replaement for renaming only when it is true.
19378         (get_access_replacement): Pass true in the rename parameter of
19379         create_access_replacement.
19380         (get_unrenamed_access_replacement): New function.
19381         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
19382         replacement declaration from it.
19383
19384 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
19385
19386         * function.c (try_fit_stack_local, add_frame_space): New static
19387         functions.
19388         (assign_stack_local_1): Use them.  Look for opportunities to use
19389         space previously wasted on alignment.
19390         * function.h (struct frame_space): New.
19391         (struct rtl_data): Add FRAME_SPACE_LIST member.
19392         * reload1.c (something_was_spilled): New static variable.
19393         (alter_reg): Set it.
19394         (reload): Test it in addition to testing if the frame size changed.
19395
19396 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
19397
19398         * config/s390/s390.c: Define sane prefetch settings and activate
19399         flag_prefetch_loop_arrays on -O3.
19400         * config/s390/s390.h: Declare that read can use write prefetch.
19401
19402 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
19403
19404         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
19405         build.
19406
19407 2010-05-16  Jan Hubicka  <jh@suse.cz>
19408
19409         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
19410         function body; do not check stdarg field of struct function.
19411
19412 2010-05-16  Jan Hubicka  <jh@suse.cz>
19413
19414         * cgraph.c (dump_cgraph_node): Dump versionable flag.
19415         * cgraph.h (cgraph_local_info): Add versionable flag.
19416         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
19417         (ipcp_versionable_function_p): Use it.
19418         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
19419         versionable flag.
19420
19421 2010-05-16  Jan Hubicka  <jh@suse.cz>
19422
19423         * cgraph.c (cgraph_clone_node): Take decl argument and insert
19424         clone into hash when it is different from orig.
19425         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
19426         * cgraph.h (cgraph_clone_node): Update prototype.
19427         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
19428         (lto_cgraph_encoder_delete): Delete body map.
19429         (lto_cgraph_encoder_size): Move to header.
19430         (lto_cgraph_encoder_encode_body_p,
19431         lto_set_cgraph_encoder_encode_body): New.
19432         (lto_output_node): Do not take written_decls argument; output clone_of
19433         pointer.
19434         (add_node_to): Add include_body_argument; call
19435         lto_set_cgraph_encoder_encode_body on master of the clone.
19436         (add_references): Update use of add_node_to.
19437         (compute_ltrans_boundary): Likewise.
19438         (output_cgraph): Do not create written_decls bitmap.
19439         (input_node): Take nodes argument; stream in clone_of correctly.
19440         (input_cgraph_1): Update use of input_node.
19441         * lto-streamer-out.c (lto_output): Use encoder info to decide
19442         what bodies to output.
19443         * ipa-inline.c (cgraph_clone_inlined_nodes,
19444         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
19445         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
19446         (lto_cgraph_encoder_size): Define here.
19447         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
19448         Declare.
19449
19450 2010-05-16  Richard Guenther  <rguenther@suse.de>
19451
19452         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
19453         -fipa-type-escape.
19454         * ipa-type-escape.c (gate_type_escape_vars): Run when
19455         -fipa-struct-reorg runs.
19456         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
19457         * common.opt (fipa-type-escape): Remove.
19458
19459 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19460
19461         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
19462         (decode_options): Likewise.
19463         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
19464
19465 2010-05-16  Jan Hubicka  <jh@suse.cz>
19466
19467         * ipa.c (function_and_variable_visibility): Also bring local all
19468         aliases.
19469
19470 2010-05-16  Richard Guenther  <rguenther@suse.de>
19471
19472         * alias.c (nonoverlapping_memrefs_p): Remove use of
19473         IPA type-escape information.
19474
19475 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
19476
19477         * c-common.c (c_common_reswords): Add _Static_assert for C.
19478         * c-parser.c (c_token_starts_declaration,
19479         c_parser_next_token_starts_declaration,
19480         c_parser_static_assert_declaration_no_semi,
19481         c_parser_static_assert_declaration): New.
19482         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
19483         Handle static assertions if static_assert_ok.
19484         (c_parser_external_declaration, c_parser_declaration_or_fndef,
19485         c_parser_compound_statement_nostart, c_parser_label,
19486         c_parser_for_statement, c_parser_objc_methodprotolist,
19487         c_parser_omp_for_loop): All callers of
19488         c_parser_declaration_or_fndef changed.
19489         (c_parser_struct_declaration): Handle static assertions.
19490         (c_parser_compound_statement_nostart): Use
19491         c_parser_next_token_starts_declaration and
19492         c_token_starts_declaration to detect start of declarations.
19493         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
19494         Likewise.
19495
19496 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
19497
19498         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19499         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19500         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19501         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19502         (mmix_function_outgoing_value): Rename to...
19503         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
19504         (mmix_function_value_regno_p): Make static.
19505         (mmix_libcall_value): New function.
19506         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
19507         mmix_function_value_regno_p): Remove declaration.
19508
19509 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19510
19511         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
19512         BUILT_IN_ALLOCA if stack checking is enabled.
19513
19514 2010-05-16  Richard Guenther  <rguenther@suse.de>
19515
19516         * var-tracking.c (vars_copy_1): Inline ...
19517         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19518         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
19519         (variable_merge_over_cur): Adjust.  Merge asserts.
19520         (variable_merge_over_src): Likewise.
19521         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
19522         (variable_post_merge_new_vals): Merge asserts.
19523         (variable_post_merge_perm_vals): Likewise.
19524         (find_mem_expr_in_1pdv): Likewise.
19525         (dataflow_set_different_value): Remove.
19526         (onepart_variable_different_p): Merge asserts.
19527         (variable_different_p): Likewise.
19528         (dataflow_set_different_1): Inline ...
19529         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19530         (emit_notes_for_differences_1): Merge asserts.
19531
19532 2010-05-16  Richard Guenther  <rguenther@suse.de>
19533
19534         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
19535         * optabs.c (libfunc_decl_hash): Likewise.
19536         * varasm.c (emutls_decl): Likewise.
19537
19538 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
19539
19540         * c-decl.c: Don't include gimple.h.
19541         (merge_decls): Do not copy gimple_body.
19542
19543 2010-05-15  Jason Merrill  <jason@redhat.com>
19544
19545         * c.opt: Add -fnothrow-opt.
19546
19547 2010-05-15  Jan Hubicka  <jh@suse.cz>
19548
19549         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
19550         analyzed.
19551         * passes.c (ipa_write_summaries): Write all analyzed nodes.
19552
19553 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
19554
19555         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
19556         * Makefile.in: Add it.
19557         Fix all other Makefile dependencies for changes below.
19558         * tree.h: Include it instead of defining VEC primitives here.
19559         * gimple.h: Likewise.
19560         * rtl.h: Likewise.
19561         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
19562         * except.h: Include vecir.h, break dependence on tree.h.
19563
19564         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
19565         Move from here...
19566         * tree-iterator.c: ...to here.
19567         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
19568
19569         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
19570         tm_p.h.
19571         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
19572         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
19573         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
19574         tree-mudflap.h, and target.h.
19575         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
19576         predict.h, tree-inline.h, gimple.h, and langhooks.h.
19577         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
19578         Add FIXME for why gimple.h is still included (should be unnecessary
19579         since GCC 4.5 gimplification unit-at-a-time).
19580         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
19581         * c-pragma.c: Add FIXME for why function.h needs to be included just
19582         for cfun, at front-end level.
19583         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
19584         Do not include ggc.h, but include vecprim.h for VEC(char).
19585         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
19586         Explain why target.h is included.
19587         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
19588         Explain why gimple.h is included.
19589         * c-ppoutput.c: Do not include tm.h.
19590         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
19591         * c-parses.c: Explain why rtl.h is included, and that this (and only
19592         this) is also why tm.h must be included.
19593         Do not include except.h.
19594         * c-lang.c: Do not include ggc.h.
19595
19596 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
19597
19598         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
19599
19600 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
19601
19602         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
19603         unions by default if those structs and unions have no tags.  Do
19604         not condition anonymous struct and unions handling on flag_iso.
19605         Allow anonymous structs and unions for C1X.
19606         (finish_struct): Do not diagnose lack of named fields when
19607         anonymous structs and unions present for C1X.  Accept flexible
19608         array members in structure with anonymous structs or unions but no
19609         directly named fields.
19610         * doc/extend.texi (Unnamed Fields): Update.
19611
19612 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
19613
19614         * gimple.h (compare_field_offset): Rename into...
19615         (gimple_compare_field_offset): ...this.
19616         * gimple.c (compare_field_offset): Rename into...
19617         (gimple_compare_field_offset): ...this.  Compare the full access if
19618         the offset is self-referential.
19619         (gimple_types_compatible_p): Adjust for above renaming.
19620         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
19621         DECL_NONADDRESSABLE_P flag of fields before merging them.
19622
19623 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
19624
19625         * tree.h (ctor_to_list): Delete.
19626         * tree.c (ctor_to_list): Delete.
19627
19628 2010-05-15  Jan Hubicka  <jh@suse.cz>
19629
19630         * ipa-reference.c: Include toplev.h
19631         (is_proper_for_analysis): Only add to all_module_statics
19632         if it is allocated.
19633         (write_node_summary_p, stream_out_bitmap,
19634         ipa_reference_write_optimization_summary,
19635         ipa_reference_read_optimization_summary): New.
19636         (struct ipa_opt_pass_d pass_ipa_reference): Add
19637         optimization summary streaming.
19638         * lto-cgraph.c (referenced_from_this_partition_p,
19639         reachable_from_this_partition_p): New functions.
19640         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
19641         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
19642         * opts.c (decode_options): Enable ipa_reference.
19643         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
19644         * lto-streamer.h (referenced_from_this_partition_p,
19645         reachable_from_this_partition_p): Declare.
19646
19647 2010-05-15  Richard Guenther  <rguenther@suse.de>
19648
19649         PR tree-optimization/44038
19650         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
19651         taking the address of a V_C_E of a constant.
19652
19653 2010-05-14  Jan Hubicka  <jh@suse.cz>
19654
19655         * tree.h (memory_identifier_string): Remove.
19656         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
19657         (ipa_reference_global_vars_info_d): Remove statics_not_read and
19658         statics_not_written.
19659         (ipa_reference_optimization_summary_d): New structure.
19660         (ipa_reference_optimization_summary_t): New type and vector.
19661         (ipa_reference_vars_info_d): Embedd structures instead of using
19662         pointers.
19663         (reference_vars_to_consider): Remove out of GGC space.
19664         (module_statics_escape): Remove.
19665         (global_info_obstack): Rename to ...
19666         (optimization_summary_obstack): ... this one.
19667         (initialization_status_t): Remove.
19668         (memory_identifier_string): Remove.
19669         (get_reference_vars_info): Fix indenting.
19670         (set_reference_vars_info): Likewise.
19671         (get_reference_optimization_summary): New.
19672         (set_reference_optimization_summary): New.
19673         (get_global_reference_vars_info): Remove.
19674         (ipa_reference_get_read_global): Remove.
19675         (ipa_reference_get_written_global): Remove.
19676         (ipa_reference_get_not_read_global): Update.
19677         (ipa_reference_get_not_written_global): Update.
19678         (is_proper_for_analysis): Outlaw addressable.
19679         (propagate_bits): Update for new datastructures.
19680         (analyze_variable): Remove.
19681         (init_function_info): Update for new datastructures.
19682         (clean_function_local_data): Remove.
19683         (clean_function): Remove.
19684         (copy_global_bitmap): Use optimizations_summary_obstack.
19685         (duplicate_node_data): Duplicate optimization summary only.
19686         (remove_node_data): Remove optimization summary only.
19687         (generate_summary): Do not analyze variables; do not compute
19688         module_statics_escape; do not prune solutions by it.
19689         (read_write_all_from_decl): Fix typos in comments.
19690         (propagate): Doscover readonly and nonaddressable first;
19691         update for new datastructures; share global bitmaps.
19692         * ipa-reference.h (ipa_reference_get_read_global,
19693         ipa_reference_get_written_global): Remove.
19694         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
19695         * Makefile.in: Remove ipa-refereference from GT files.
19696
19697 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
19698
19699         PR debug/44112
19700         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
19701         for all SYMBOL_REF_DECLs.
19702
19703 2010-05-14  Jan Hubicka  <jh@suse.cz>
19704
19705         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
19706         (varpool_all_refs_explicit_p): New inline function.
19707         * ipa-reference.c: Update comment.
19708         (module_statics_written): Remove.
19709         (get_static_decl): Remove.
19710         (ipa_init): Do not initialize module_statics_written.
19711         (analyze_function): Likewise.
19712         (generate_summary): Likewise; do not compute module_statics_readonly
19713         and do not update variable flags.
19714         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
19715         * ipa.c: Inlucde flags.h
19716         (cgraph_local_node_p): New.
19717         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
19718         promote functions to local.
19719         (ipa_discover_readonly_nonaddressable_vars): New function.
19720         (function_and_variable_visibility): Use cgraph_local_node_p.
19721         * varpool.c (varpool_finalize_decl): Set force_output for
19722         DECL_PRESERVE_P vars.
19723
19724 2010-05-14  Jan Hubicka  <jh@suse.cz>
19725
19726         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
19727
19728 2010-05-14  Richard Guenther  <rguenther@suse.de>
19729
19730         PR tree-optimization/44119
19731         * tree-ssa-pre.c (eliminate): Properly mark replacement of
19732         a PHI node necessary.
19733
19734 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
19735
19736         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
19737
19738 2010-05-14  Jason Merrill  <jason@redhat.com>
19739
19740         PR c++/44127
19741         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
19742         (gimple_call_set_nothrow): New.
19743         * gimple.c (gimple_build_call_from_tree): Call it.
19744         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
19745
19746         PR c++/44127
19747         * gimplify.c (gimplify_seq_add_stmt): No longer static.
19748         * gimple.h: Declare it.
19749         * gimple.c (gimple_build_eh_filter): No ops.
19750
19751 2010-05-14  Jan Hubicka  <jh@suse.cz>
19752
19753         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
19754         nodes already in queue.
19755         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
19756         re-enqueueing node.
19757
19758 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
19759
19760         PR debug/44136
19761         * cfgexpand.c (expand_debug_expr): If non-memory op0
19762         has BLKmode, return NULL.
19763
19764 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
19765
19766         * config.gcc: Add support for --with-cpu option for bdver1.
19767         * config/i386/i386.h (TARGET_BDVER1): New macro.
19768         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
19769         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19770         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
19771         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19772         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
19773         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
19774         (processor_type): Add PROCESSOR_BDVER1.
19775         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
19776         processor_type in config/i386/i386.h.
19777         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
19778         movaps <reg, reg> instead of movapd <reg, reg> when replacing
19779         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
19780         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
19781         to emit packed xor instead of packed double/packed integer
19782         xor for SSE and AVX when moving a zero value.
19783         * config/i386/sse.md: Add check for
19784         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
19785         movapd/movdqa for SSE and AVX.
19786         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
19787         single logical operations i.e and, or and xor instead of packed double
19788         logical operations for SSE and AVX.
19789         * config/i386/i386-c.c (ix86_target_macros_internal):
19790         Add PROCESSOR_BDVER1.
19791         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
19792         (has_fma4, has_xop): New.
19793         * config/i386/i386.c (bdver1_cost): New variable.
19794         (m_BDVER1): New macro.
19795         (m_AMD_MULTIPLE): Add m_BDVER1.
19796         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
19797         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
19798         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
19799         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
19800         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
19801         x86_tune_sse_partial_reg_dependency,
19802         x86_tune_sse_unaligned_load_optimal,
19803         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
19804         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
19805         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
19806         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
19807         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
19808         Enable/disable for bdver1.
19809         (processor_target_table): Add bdver1_cost.
19810         (cpu_names): Add bdver1.
19811         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
19812          processor_alias_table.
19813         (ix86_expand_vector_move_misalign): Change.
19814         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
19815         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
19816         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
19817         of movupd/movdqu for SSE and AVX.
19818         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
19819         (ix86_tune_adjust_cost): Add code for bdver1.
19820         (standard_sse_constant_opcode): Add check for
19821         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
19822         of packed double xor for SSE and AVX.
19823
19824 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
19825
19826         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
19827         result to unsigned.
19828
19829 2010-05-14  Tristan Gingold  <gingold@adacore.com>
19830
19831         * toplev.c (default_debug_hooks): Remove this variable.
19832         (process_options): Remove assignments to default_debug_hooks.
19833
19834 2010-05-14  Martin Jambor  <mjambor@suse.cz>
19835
19836         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
19837         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
19838         * langhooks.h (struct lang_hooks_for_decls): Removed field
19839         fold_obj_type_ref.
19840         * tree.c (free_lang_data): Remove assignment to
19841         lang_hooks.fold_obj_type_ref.
19842         * tree.def (OBJ_TYPE_REF): Update comment.
19843
19844 2010-05-14  Richard Guenther  <rguenther@suse.de>
19845
19846         PR tree-optimization/44124
19847         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
19848
19849 2010-05-14  Alan Modra  <amodra@gmail.com>
19850
19851         PR target/44075
19852         * config/rs6000/rs6000.c (struct machine_function): Reorder
19853         fields for better packing.  Add lr_save_state.
19854         (rs6000_ra_ever_killed): Return lr_save_state if set.
19855         (rs6000_emit_eh_reg_restore): Set lr_save_state.
19856
19857 2010-05-13  Jan Hubicka  <jh@suse.cz>
19858
19859         * varpool.c (decide_is_variable_needed): Drop code checking
19860         TREE_SYMBOL_REFERENCED.
19861
19862 2010-05-13  Jan Hubicka  <jh@suse.cz>
19863
19864         * final.c (output_addr_const): Do not call mark_decl_referenced.
19865         * cgraphunit.c (process_function_and_variable_attributes): Use
19866         mark_needed_node dirrectly.
19867         (assemble_thunk): Do not call mark_decl_referenced.
19868
19869 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
19870
19871         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
19872
19873 2010-05-13  Jeff Law  <law@redhat.com>
19874
19875         * ira-conflicts.c (print_allocno_conflicts): New function broken out
19876         from...
19877         (print_conflicts): Call print_allocno_conflicts.
19878
19879 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
19880
19881         PR debug/44104
19882         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
19883         if it is NULL.
19884
19885 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
19886
19887         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
19888         t-mingw-w64 or t-mingw-w32 for multilib configuration.
19889         * config/i386/t-mingw-w32: New.
19890         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
19891
19892 2010-05-13  Martin Jambor  <mjambor@suse.cz>
19893
19894         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
19895         gimple-fold.c).
19896         * gimple-fold.c (get_base_binfo_for_type): New function.
19897         (gimple_get_relevant_ref_binfo): Likewise.
19898         (gimple_fold_obj_type_ref_known_binfo): Likewise.
19899         (gimple_fold_obj_type_ref): Likewise.
19900         (fold_gimple_call): Simplify condition for folding virtual calls
19901         and call gimple_fold_obj_type_ref.
19902         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
19903         (gimple_fold_obj_type_ref_known_binfo): Likewise.
19904
19905 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
19906
19907         * config/rs6000/rs6000-protos.h
19908         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
19909         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
19910         (rs6000_debug_mode_dependent_address)
19911         (rs6000_mode_dependent_address_ptr): Likewise.
19912
19913 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
19914
19915         PR debug/43983
19916         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
19917         by SRA.
19918         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
19919         * tree-sra.c (create_access_replacement): Call unshare_expr before
19920         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
19921         * dwarf2out.c: Include tree-flow.h.
19922         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
19923         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
19924         Handle DW_OP_bit_piece.
19925         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
19926         construct_piece_list, adjust_piece_list): New functions.
19927         (add_var_loc_to_decl): Handle SRA optimized variables.
19928         Adjust for var_loc_note to loc field renaming.
19929         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
19930         in VAR_LOCATION note.
19931         (new_loc_descr_op_bit_piece): New function.
19932         (dw_sra_loc_expr): New function.
19933         (dw_loc_list): Use it.  Don't handle the last range after the
19934         loop, handle it inside of the loop.  Adjust for var_loc_note
19935         to loc field renaming.
19936         (add_location_or_const_value_attribute): Only special case
19937         single entry loc lists if loc is NOTE_P.  Adjust for
19938         var_loc_note to loc field renaming.
19939         (dwarf2out_var_location): Don't set newloc->var_loc_note
19940         and newloc->next here.
19941
19942 2010-05-12  Jan Hubicka  <jh@suse.cz>
19943
19944         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
19945         flag.
19946         * cgraph.h (cgraph_only_called_directly_p,
19947         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
19948         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
19949         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
19950         (assemble
19951         * ipa.c (cgraph_remove_unreachable_nodes): Use
19952         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
19953         flags.
19954         * tree-inline.c (copy_bb): Check address_taken flag.
19955         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
19956         externally_visible flag.
19957
19958 2010-05-12  Jason Merrill  <jason@redhat.com>
19959
19960         PR bootstrap/44048
19961         PR target/44099
19962         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
19963         * sdbout.c (plain_type_1): Likewise.
19964         * dwarf2out.c (is_base_type): Likewise.
19965         (gen_type_die_with_usage): Likewise.  Generate
19966         DW_TAG_unspecified_type for any LANG_TYPE.
19967
19968 2010-05-12  Jan Hubicka  <jh@suse.cz>
19969
19970         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
19971         indrect edges too.
19972         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
19973         (cgraph_clone_edge): Update.
19974         (cgraph_node_remove_callees): Remove indirect calls too.
19975         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
19976         (cgraph_create_indirect_edge): Update prototype.
19977         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
19978         is_proper_for_analysis.
19979         (add_new_function, visited_nodes, function_insertion_hook_holder,
19980         get_local_reference_vars_info, mark_address_taken, mark_address,
19981         mark_load, mark_store, check_asm_memory_clobber, check_call,
19982         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
19983         (ipa_init): Do not initialize visited_nodes;
19984         function_insertion_hook_holder.
19985         (analyze_variable): Rewrite.
19986         (analyze_function): Rewrite.
19987         (copy_local_bitmap): Remove.
19988         (duplicate_node_dat): Do not duplicate local info.
19989         (generate_summary): Simplify to only walk cgraph.
19990         (write_node_summary_p, ipa_reference_write_summary,
19991         ipa_reference_read_summary): Remove.
19992         (propagate): Do not remove function insertion;
19993         generate summary.
19994         (pass_ipa_reference): NULLify summary handling fields.
19995         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
19996         (input_edge): Input ecf_flags.
19997         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
19998         (update_indirect_edges_after_inlining): Ignore edges with unknown
19999         param.
20000
20001 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
20002
20003         * implicit-zee.c: New file.
20004         * tree-pass.h (pass_implicit_zee): Declare.
20005         * passes.c (init_optimization_passes): Add zee pass.
20006         * common.opt (fzee): New flag.
20007         * timevar.def (TV_ZEE): Define.
20008         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
20009         and beyond.
20010         * Makefile.in (implicit-zee.o): Add new build file.
20011
20012 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
20013             Nathan Froyd  <froydnj@codesourcery.com>
20014
20015         * c-common.c (sync_resolve_params): Remove write-only variable.
20016
20017 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
20018
20019         * target.h (struct gcc_target): Add mode_dependent_address_p field.
20020         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
20021         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
20022         * targhooks.c (default_mode_dependent_address_p): New function.
20023         * targhooks.h (default_mode_dependent_address_p): Declare function.
20024         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
20025         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
20026         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
20027         target hook. Change return type to bool.
20028         * recog.h (mode_dependent_address_p): Change return type to bool.
20029
20030 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
20031             Nathan Froyd  <froydnj@codesourcery.com>
20032
20033         * tree-mudflap.c (build_function_type_0, build_function_type_1,
20034         build_function_type_2, build_function_type_3): Remove.
20035         (mudflap_init): Use build_function_type_list.
20036
20037 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
20038             Nathan Froyd  <froydnj@codesourcery.com>
20039
20040         * coverage.c (build_fn_info_value): Call build_constructor instead of
20041         build_constructor_from_list.
20042         (build_ctr_info_value): Likewise.
20043         (build_gcov_info): Likewise.
20044
20045 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
20046
20047         * tree.c (build_constructor): Compute TREE_CONSTANT for the
20048         resultant constructor.
20049         (build_constructor_single): Don't set TREE_CONSTANT.
20050         (build_constructor_from_list): Don't compute TREE_CONSTANT.
20051
20052 2010-05-12  Jan Hubicka  <jh@suse.cz>
20053
20054         * cgraph.h (struct varpool_node): Add aux.
20055         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
20056         * varpool.c (varpool_remove_node): Do not remove initializer.
20057         (varpool_reset_queue): Export.
20058         (varpool_finalize_decl): Volatile vars are forced to be output.
20059         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
20060         replaced decl.
20061         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
20062         process_references, varpool_can_remove_if_no_refs): New functions.
20063         (cgraph_remove_unreachable_nodes): Handle variables too.
20064
20065 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
20066
20067         PR target/44088
20068         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
20069
20070 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
20071
20072         PR middle-end/44085
20073         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
20074         change value of ORT_TASK.
20075         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
20076         (omp_notice_threadprivate_variable): New function.
20077         (omp_notice_variable): Call it for threadprivate variables.
20078         If enclosing ctx is a task, print enclosing task rather than
20079         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
20080         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
20081         if task has untied clause.
20082
20083         PR debug/42278
20084         * dwarf2out.c (base_type_die): Don't add name attribute here.
20085         (modified_type_die): Instead of sizetype use
20086         its underlying original type.  If a DW_TAG_base_type doesn't
20087         have name added, add __unknown__.
20088         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
20089         always call force_type_die instead.
20090
20091 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
20092
20093         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
20094         for __stack_chk_guard.
20095
20096 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
20097
20098         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
20099         don't call start_source_file debug hook here...
20100         (finish_options): ... but here, after outputting predefined and
20101         command line defines and undefs.
20102
20103         PR middle-end/44071
20104         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
20105         no fallthru edge.
20106         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
20107         optimizing away empty bb with no successors, move over its
20108         footer chain to fallthru predecessor.
20109         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
20110         (rtl_split_edge): For asm goto call patch_jump_insn even if
20111         splitting fallthru edge.
20112
20113         PR c++/44059
20114         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
20115         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
20116         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
20117         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
20118         on DW.ref.* decls.
20119
20120         PR c++/44062
20121         * c-parser.c (c_parser_expression): Mark LHS of a comma
20122         expression as read if it is a decl, handled component or
20123         COMPOUND_EXPR with that on the RHS.
20124         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
20125         if it is a decl or handled component.
20126
20127 2010-05-11  Jan Hubicka  <jh@suse.cz>
20128
20129         * lto-symtab.c (lto_symtab_free): New function.
20130         * lto-streamer.h (lto_symtab_free): Declare.
20131
20132 2010-05-11  Jan Hubicka  <jh@suse.cz>
20133
20134         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
20135         that if function is needed it is reachable.
20136         (lto_output_node): See if it the function is reachable or referenced.
20137         (output_cgraph): Update call of lto_output_node.
20138         * lto-streamer.h (reachable_from_other_partition_p): Declare.
20139
20140 2010-05-11  Jan Hubicka  <jh@suse.cz>
20141
20142         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
20143         Mark as used.
20144
20145 2010-05-11  Jan Hubicka  <jh@suse.cz>
20146
20147         PR tree-optimize/44063
20148         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
20149         queue.
20150         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
20151         limits.
20152         (estimate_function_body_sizes): Compute sizes even when disregarding.
20153
20154 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
20155
20156         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
20157
20158 2010-05-11  Jan Hubicka  <jh@suse.cz>
20159
20160         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
20161         into every boundary.
20162
20163 2010-05-11  Jan Hubicka  <jh@suse.cz>
20164
20165         * matrix-reorg.c (matrix_reorg): Rebuild edges.
20166
20167 2010-05-11  Jan Hubicka  <jh@suse.cz>
20168
20169         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
20170         lto_streamer_cache_delete): Put nodes into heap.
20171         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
20172         heap.
20173
20174 2010-05-11  Jan Hubicka  <jh@suse.cz>
20175
20176         * cgraphbuild.c (cgraph_rebuild_references): New.
20177         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
20178         out extern inlines.
20179         * cgraph.h (cgraph_rebuild_references): Declare.
20180         * tree-inline.c (tree_function_versioning): Use it.
20181         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
20182
20183 2010-05-11  Jan Hubicka  <jh@suse.cz>
20184
20185         * cgraph.c: Include ipa-utils.h
20186         (cgraph_create_virtual_clone): Update references.
20187         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
20188
20189 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
20190
20191         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
20192         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
20193         cache size.
20194
20195 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
20196
20197         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
20198
20199 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
20200
20201         * gcc.c (execute): For -### don't quote arguments that
20202         contain just alphanumerics and _/-. characters.
20203         * doc/invoke.texi: Document that change for -###.
20204
20205         PR debug/44023
20206         * df-problems.c (struct dead_debug): Add to_rescan field.
20207         (dead_debug_init): Clear to_rescan field.
20208         (dead_debug_finish): Rescan all debug insns in to_rescan
20209         bitmap and free the bitmap.
20210         (dead_debug_insert_before): Instead of rescanning debug insns
20211         immediately queue their rescanning until dead_debug_finish.
20212         (df_note_bb_compute): After dead_debug_add do continue instead
20213         of break.
20214
20215 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
20216
20217         PR debug/44028
20218         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
20219         clear also INSN_REG_USE_LIST.
20220
20221 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20222
20223         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
20224
20225 2010-05-10  Jan Hubicka  <jh@suse.cz>
20226
20227         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
20228         commited change.
20229
20230 2010-05-10  Jan Hubicka  <jh@suse.cz>
20231
20232         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
20233         Allocate encoders.
20234         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
20235         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
20236         (lto_streamer_cache_create): Init alloc pool.
20237         (lto_streamer_cache_delete): Free alloc pool.
20238         * lto-streamer.h: Include alloc pool.
20239         (lto_streamer_cache_d): Use alloc pool.
20240         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
20241
20242 2010-05-10  Jan Hubicka  <jh@suse.cz>
20243
20244         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
20245         * cgraphbuild.c: Include except.h
20246         (record_type_list, record_eh_tables): New function.
20247         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
20248
20249 2010-05-10  Jan Hubicka  <jh@suse.cz>
20250
20251         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
20252         __frame_dummy_init_array_entry, force_to_data): Attribute as used
20253         rather than unused.
20254
20255 2010-05-10  Michael Matz  <matz@suse.de>
20256
20257         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
20258         (can_reassociate_p): Use FLOAT_TYPE_P.
20259         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
20260         (vect_force_simple_reduction): ... this.
20261         * tree-parloops.c (gather_scalar_reductions): Use
20262         vect_force_simple_reduction.
20263         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
20264         vect_is_simple_reduction, add modify argument, if true rewrite
20265         "a-b" into "a+(-b)".
20266         (vect_is_simple_reduction, vect_force_simple_reduction): New
20267         functions.
20268         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
20269
20270 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
20271             Vladimir Makarov  <vmakarov@redhat.com>
20272
20273         PR rtl-optimization/44012
20274         * ira-build.c (remove_unnecessary_allocnos): Nullify
20275         regno_allocno_map of the removed allocno.
20276
20277 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20278
20279         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
20280         to /dev/null.
20281         * configure: Regenerate.
20282
20283 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20284
20285         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
20286         unused.
20287         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
20288         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
20289         support in Sun ld.
20290         * configure: Regenerate.
20291
20292 2010-05-10  Richard Guenther  <rguenther@suse.de>
20293
20294         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
20295         marked if the entry identifier is marked.
20296
20297 2010-05-10  Richard Guenther  <rguenther@suse.de>
20298
20299         * c-common.c (struct c_common_attributes): Add fnspec attribute.
20300         (handle_fnspec_attribute): New function.
20301         * gimple.h (gimple_call_return_flags): Declare.
20302         (gimple_call_arg_flags): Likewise.
20303         * gimple.c (gimple_call_arg_flags): New function.
20304         (gimple_call_return_flags): Likewise.
20305         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
20306         New argument flags.
20307         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
20308         return value flags.
20309         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
20310         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
20311         main work to ...
20312         (make_heapvar_for): ... this new function.
20313         (handle_rhs_call): Handle fnspec attribute argument specifiers.
20314         (handle_lhs_call): Likewise.
20315         (find_func_aliases): Adjust.
20316
20317 2010-05-10  Richard Guenther  <rguenther@suse.de>
20318
20319         PR tree-optimization/44050
20320         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
20321
20322 2010-05-10  Wei Guozhi  <carrot@google.com>
20323
20324         PR target/42879
20325         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
20326
20327 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
20328
20329         PR c/10676
20330         * c-typeck.c (lookup_field): Take a type directly.  Update
20331         recursive calls.
20332         (build_component_ref): Update call to lookup_field.
20333         (set_init_label): Use lookup_field to find initialized field.
20334         Handle returned list of fields like a sequence of designators.
20335
20336 2010-05-09  Richard Guenther  <rguenther@suse.de>
20337
20338         PR middle-end/44024
20339         * fold-const.c (tree_single_nonzero_warnv_p): Properly
20340         handle &FUNCTION_DECL.
20341
20342 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
20343
20344         PR c/4784
20345         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
20346         structures and unions recursively.
20347         (detect_field_duplicates): Move duplicate detection with a hash to
20348         detect_field_duplicates_hash.  Always use a hash if anonymous
20349         structures or unions are present.
20350         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
20351         give errors.
20352
20353 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
20354
20355         PR target/44046
20356         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
20357         detect Atom, Core 2 and Core i7.
20358
20359 2010-05-09  Richard Guenther  <rguenther@suse.de>
20360
20361         * gcc.c (store_arg): Handle temporary file deletion for
20362         joined arguments.
20363
20364 2010-05-09  Richard Guenther  <rguenther@suse.de>
20365
20366         PR middle-end/44043
20367         * ipa-inline.c (estimate_function_body_sizes): Return after
20368         disregarding inline limits.
20369
20370 2010-05-09  Richard Guenther  <rguenther@suse.de>
20371
20372         * gcc.c (store_arg): Revert last change.
20373
20374 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
20375
20376         PR middle-end/28685
20377         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
20378         (optimize_ops_list): Call it.
20379
20380 2010-05-08  Richard Guenther  <rguenther@suse.de>
20381
20382         PR tree-optimization/44030
20383         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
20384         NECESSARY flag if we propagate from a inserted expression.
20385
20386 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
20387
20388         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
20389         domain types as equal if they are both PLACEHOLDER_EXPRs.
20390
20391 2010-05-08  Richard Guenther  <rguenther@suse.de>
20392
20393         * lto-wrapper.c (run_gcc): Remove linker output from
20394         command line for LTRANS invocation.
20395
20396 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
20397
20398         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
20399         lto-macho as lto_binary_reader.
20400         * target.h (struct gcc_target): New hooks lto_start and lto_end.
20401         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
20402         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
20403         in lto_start and lto_end calls.
20404         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
20405         magic numbers.
20406         (scan_prog_file): Update is_elf_or_coff call.
20407         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
20408
20409         * collect2.c (main): Fix enum comparison.
20410
20411         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
20412         Add prototypes.
20413         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
20414         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
20415         and TARGET_ASM_LTO_END.
20416         * darwin.c: Include obstack.h and lto-streamer.h.
20417         (lto_section_names_offset, lto_section_names_obstack,
20418         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
20419         global variables.
20420         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
20421         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
20422         to a temporary file.
20423         (darwin_asm_lto_end): New function.  Restore asm_out_file.
20424         (darwin_asm_named_section): For LTO sections, replace the name with
20425         the offset of the section name in a string table, and build this
20426         table.
20427         (darwin_file_start): Initialize global vars for LTO support.
20428         (darwin_file_end): If output to asm_out_file was redirected, append it
20429         to the proper asm_out_file here.  Add the section names section.
20430
20431 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
20432
20433         * c-pragma.c (pending_weak_d, pending_weak): New.
20434         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
20435         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
20436         handle_pragma_weak): Update the uses of pending_weaks.
20437
20438 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20439
20440         PR documentation/44016
20441         * doc/standards.texi (Standards): Link to unversioned
20442         cxx0x_status.html page.
20443
20444 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
20445
20446         PR target/43708
20447         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
20448         in addition to TREE_USED, to avoid "set but unused" warnings.
20449
20450 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20451
20452         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
20453         (is_loop_prefetching_profitable): Do not insert prefetches
20454         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
20455         times the prefetch ahead distance.
20456
20457 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20458
20459         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
20460         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
20461         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
20462         the unroll_factor.
20463
20464 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20465
20466         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
20467         a diagnostic info when the insn-to-mem ratio is too small.
20468
20469 2010-05-07  Richard Guenther  <rguenther@suse.de>
20470
20471         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
20472         the linker plugin.
20473         (store_arg): Queue temp_filename for deletion instead of
20474         the whole argument.
20475
20476 2010-05-07  Richard Guenther  <rguenther@suse.de>
20477
20478         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
20479         (run_gcc): Handle LTRANS phase invocation.
20480         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
20481
20482 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
20483
20484         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
20485         this is also meaningful on PARM_DECLs and RESULT_DECLs.
20486
20487 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20488
20489         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
20490
20491 2010-05-07  Richard Guenther  <rguenther@suse.de>
20492
20493         PR tree-optimization/44020
20494         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
20495         code when PRE is not yet initialized.
20496
20497 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20498
20499         * config/mips/dbxmdebug.h: Remove.
20500         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
20501
20502 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
20503
20504         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
20505         with null pointer and also warn about ordered comparison of zero with
20506         pointer if -Wextra.
20507
20508 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
20509
20510         * graphite-blocking.c
20511         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
20512         * graphite-clast-to-gimple.c
20513         (clast_to_gcc_expression): Same.
20514         (precision_for_value): Same.
20515         (precision_for_interval): Same.
20516         (gcc_type_for_interval): Same.
20517         (graphite_create_new_guard): Same.
20518         (compute_bounds_for_level): Same.
20519         (graphite_create_new_loop_guard): Same.
20520         * graphite-interchange.c
20521         (build_linearized_memory_access): Same.
20522         (pdr_stride_in_loop): Same.
20523         (memory_strides_in_loop_1): Same.
20524         (memory_strides_in_loop): Same.
20525         (extend_scattering): Same.
20526         (psct_scattering_dim_for_loop_depth): Same.
20527         (pbb_number_of_iterations): Same.
20528         * graphite-poly.h
20529         (debug_iteration_domains): Same.
20530         * graphite-ppl.c
20531         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
20532         (ppl_set_inhomogeneous_gmp): Same.
20533         (ppl_strip_loop): Same.
20534         (ppl_lexico_compare_linear_expressions): Same.
20535         (ppl_read_polyhedron_matrix): Same.
20536         (ppl_max_for_le_pointset): Same.
20537         * graphite-ppl.h
20538         (ppl_read_polyhedron_matrix): Same.
20539         (tree_int_to_gmp): Same.
20540         (gmp_cst_to_tree): Same.
20541         (ppl_set_inhomogeneous): Same.
20542         (ppl_set_inhomogeneous_tree): Same.
20543         (ppl_set_coef): Same.
20544         (ppl_set_coef_tree): Same.
20545         * graphite-sese-to-poly.c
20546         (build_pbb_scattering_polyhedrons): Same.
20547         (build_scop_scattering): Same.
20548         (scan_tree_for_params_right_scev): Same.
20549         (scan_tree_for_params): Same.
20550         (find_params_in_bb): Same.
20551         (find_scop_parameters): Same.
20552         (add_upper_bounds_from_estimated_nit): Same.
20553         (build_loop_iteration_domains): Same.
20554         (add_condition_to_domain): Same.
20555         (pdr_add_memory_accesses): Same.
20556
20557 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
20558
20559         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
20560         CLooG's value_* macros to their respective mpz_* counterparts.
20561         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
20562         (graphite_create_new_loop_guard): Same.
20563         * graphite-interchange.c (build_linearized_memory_access): Same.
20564         (pdr_stride_in_loop): Same.
20565         (memory_strides_in_loop_1): Same.
20566         (1st_interchange_profitable_p): Same.
20567         * graphite-poly.c (extend_scattering): Same.
20568         (psct_scattering_dim_for_loop_depth): Same.
20569         (pbb_number_of_iterations): Same.
20570         (pbb_number_of_iterations_at_time): Same.
20571         * graphite-poly.h (new_1st_loop): Same.
20572         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
20573         (oppose_constraint): Same.
20574         (insert_constraint_into_matrix): Same.
20575         (ppl_set_inhomogeneous_gmp): Same.
20576         (ppl_set_coef_gmp): Same.
20577         (ppl_strip_loop): Same.
20578         (ppl_lexico_compare_linear_expressions): Same.
20579         (ppl_max_for_le_pointset): Same.
20580         (ppl_min_for_le_pointset): Same.
20581         (ppl_build_realtion): Same.
20582         * graphite-ppl.h (gmp_cst_to_tree): Same.
20583         (ppl_set_inhomogeneous): Same.
20584         (ppl_set_inhomogeneous_tree): Same.
20585         (ppl_set_coef): Same.
20586         (ppl_set_coef_tree): Same.
20587         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20588         (build_scop_scattering): Same.
20589         (add_value_to_dim): Same.
20590         (scan_tree_for_params_right_scev): Same.
20591         (scan_tree_for_params_int): Same.
20592         (scan_tree_for_params): Same.
20593         (find_params_in_bb): Same.
20594         (find_scop_parameters): Same.
20595         (add_upper_bounds_from_estimated_nit): Same.
20596         (build_loop_iteration_domains): Same.
20597         (create_linear_expr_from_tree): Same.
20598         (add_condition_to_domain): Same.
20599         (pdr_add_memory_accesses): Same.
20600
20601 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
20602             Jason Merrill  <jason@redhat.com>
20603
20604         * c-common.c (c_common_reswords): Add nullptr.
20605         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
20606         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
20607         (gen_type_die_with_usage): Likewise.
20608         * dbxout.c (dbxout_type): Likewise.
20609         * sdbout.c (plain_type_1): Likewise.
20610
20611 2010-05-06  Jason Merrill  <jason@redhat.com>
20612
20613         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
20614         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
20615         ret appropriately.
20616         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
20617
20618         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
20619         stripping WITH_SIZE_EXPR.
20620         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
20621         change.
20622
20623 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20624
20625         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
20626         list of obsolete configurations.
20627         Disabled check for obsolete configurations.
20628         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
20629         Removed support for previous versions.
20630         * config/mips/iris.h: Removed.
20631         * config/mips/iris5.h: Removed.
20632         * config/mips/iris6.h: Merged old iris.h contents.
20633         (TARGET_IRIX): Removed.
20634         (DRIVER_SELF_SPECS): Removed mabi=32.
20635         (IDENT_ASM_OP): Removed undef.
20636         (STARTFILE_SPEC): Removed mabi=32.
20637         (ENDFILE_SPEC): Likewise.
20638         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
20639         (MACHINE_TYPE): Update for IRIX 6.5.
20640         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
20641         TARGET_IRIX by TARGET_IRIX6.
20642         (mips_file_start): Likewise.
20643         (mips_output_external): Remove IRIX 5/6 O32 support.
20644         (mips_output_function_prologue): Likewise.
20645         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
20646         TARGET_IRIX6.
20647         (TARGET_CPU_CPP_BUILTINS): Likewise.
20648         (TARGET_IRIX): Removed.
20649         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
20650         (MULTILIB_DIRNAMES): Removed 32.
20651         (MULTILIB_OSDIRNAMES): Removed ../lib.
20652         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
20653         (Specific, mips-sgi-irix5): Document removal.
20654         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
20655         Remove references to older IRIX 6 releases and the O32 ABI.
20656
20657 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
20658
20659         PR bootstrap/43994
20660         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
20661         instead of DF_REF_REAL_REG.
20662
20663 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
20664
20665         PR target/43888
20666         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
20667         handling to still return true for x64 targets.
20668
20669 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
20670
20671         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
20672
20673 2010-05-06  Jan Hubicka  <jh@suse.cz>
20674
20675         PR tree-optimization/43791
20676         * ipa-inline.c (update_caller_keys): Remove bogus
20677         disregard_inline_limits check.
20678
20679 2010-05-06  Michael Matz  <matz@suse.de>
20680
20681         PR tree-optimization/43984
20682         * tree-ssa-pre.c (inserted_phi_names): Remove.
20683         (inserted_exprs): Change to bitmap.
20684         (create_expression_by_pieces): Set bits, don't append to vector.
20685         (insert_into_preds_of_block): Don't handle inserted_phi_names.
20686         (eliminate): Don't look at inserted_phi_names, remove deleted
20687         insns from inserted_exprs.
20688         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
20689         (init_pre, fini_pre): Allocate and free bitmaps.
20690         (execute_pre): Insert insns on edges before elimination.
20691
20692 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
20693
20694         * tree.c (initializer_zerop): Handle STRING_CST.
20695
20696 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20697
20698         PR 40989
20699         * doc/invoke.texi (Wimplicit): Document as C only.
20700         * opts.c (common_handle_option): Add argument kind.
20701         (handle_option): Rename as read_cmdline_option. Factor out code to...
20702         (handle_option): ... here. New.
20703         (handle_options): Rename as read_cmdline_options.
20704         (decode_options): Update call.
20705         (set_option): Use option index instead of option pointer. Classify
20706         diagnostics correctly.
20707         (enable_warning_as_error): Call handle_option.
20708         * opts.h (set_option): Update declaration.
20709         (handle_option): Declare.
20710         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
20711         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
20712         * c-opts.c (set_Wimplicit): Delete.
20713         (c_family_lang_mask): New static constant.
20714         (c_common_handle_option): Add argument kind. Use handle_option
20715         instead of set_Wimplicit.
20716         (c_common_post_options): warn_implicit and warn_implicit_int
20717         are disabled by default.
20718         * c-common.c (warn_implicit): Do not define here.
20719         * c-common.h (warn_implicit): Do not declare here.
20720         (c_common_handle_option): Update declaration.
20721         * lto-opts.c (lto_reissue_options): Update call to set_option.
20722
20723 2010-05-06  Richard Guenther  <rguenther@suse.de>
20724
20725         PR tree-optimization/43571
20726         * domwalk.c (walk_dominator_tree): Walk the dominator
20727         sons in more optimal order.
20728
20729 2010-05-06  Richard Guenther  <rguenther@suse.de>
20730
20731         PR tree-optimization/43934
20732         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
20733         (stmt_cost): Likewise.
20734         (extract_true_false_args_from_phi): New helper.
20735         (determine_max_movement): For PHI nodes verify we can hoist them
20736         and compute their cost.
20737         (determine_invariantness_stmt): Handle PHI nodes.
20738         (move_computations_stmt): Likewise.  Hoist PHI nodes in
20739         if-converted form using COND_EXPRs.
20740         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
20741         (tree_ssa_lim): Likewise.
20742         * tree-flow.h (tree_ssa_lim): Adjust prototype.
20743         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
20744
20745 2010-05-06  Richard Guenther  <rguenther@suse.de>
20746
20747         PR tree-optimization/43987
20748         * tree-ssa-structalias.c (could_have_pointers): For possibly
20749         address-taken variables force pointers to be recorded.
20750         (create_variable_info_for_1): Likewise.
20751         (push_fields_onto_fieldstack): Pass in wheter all fields
20752         must have pointers.
20753         (find_func_aliases): Query types instead of vars whether
20754         they contain pointers where appropriate.
20755
20756 2010-05-06  Jan Hubicka  <jh@suse.cz>
20757
20758         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
20759         (record_reference, mark_address, mark_load, mark_store): Record
20760         references.
20761         (record_references_in_initializer): Update call of record_references.
20762         (rebuild_cgraph_edges): Remove all references before rebuiding.
20763         * cgraph.c (cgraph_create_node): Clear ref list.
20764         (cgraph_remove_node): Remove references.
20765         (dump_cgraph_node): Dump references.
20766         (cgraph_clone_node): Clone references.
20767         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
20768         (struct cgraph_node, varpool_node): Add ref_lst.
20769         * ipa-ref.c: New file.
20770         * ipa-ref.h: New file.
20771         * ipa-ref-inline.h: New file.
20772         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
20773         (referenced_from_other_partition_p): New function.
20774         (lto_output_varpool_node): Take set arugment; call
20775         referenced_from_other_partition.
20776         (lto_output_ref): New.
20777         (add_references): New.
20778         (output_refs): New.
20779         (output_cgraph): Compute boundary based on references; output refs.
20780         (output_varpool): Accept cgraph_node_set argument.
20781         (input_ref): New.
20782         (input_refs): New.
20783         (input_cgraph): Call input_refs.
20784         * lto-section-in.c (lto_section_name): Add refs.
20785         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
20786         (ipa-ref.o): New file.
20787         * varpool.c (varpool_node): Clear ipa ref list.
20788         (varpool_remove_node): Remove references.
20789         (dump_varpool_node): Dump references.
20790         (varpool_assemble_decl): Only compile finalized ones.
20791         (varpool_extra_name_alias): Initialize ref list.
20792         * lto-streamer.c (lto-get_section_name): Add .refs section.
20793         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
20794         (referenced_from_other_partition_p): Declared.
20795
20796 2010-05-06  Ira Rosen  <irar@il.ibm.com>
20797
20798         PR tree-optimization/43901
20799         * tree-vect-stmts.c (vectorizable_call): Assert that vector
20800         type is not NULL if it's transformation phase, and return
20801         FALSE if it's analysis.
20802         (vectorizable_conversion, vectorizable_operation,
20803         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
20804
20805 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
20806
20807         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20808         Delete.
20809         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20810         New define.
20811         * config/mips/mips-protos.h
20812         (mips_small_register_classes_for_mode_p): Delete prototype.
20813
20814 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
20815
20816         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
20817         * config/arm/arm.c (multiple_operation_profitable_p,
20818         compute_offset_order): New static functions.
20819         (load_multiple_sequence, store_multiple_sequence): Use them.
20820         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
20821         memory offsets, not register numbers.
20822         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
20823
20824 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
20825
20826         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
20827         (get_pending_sizes, put_pending_size, put_pending_sizes):
20828         Update the uses of pending_sizes.
20829         * c-decl.c (store_parm_decls): Likewise.
20830         * c-tree.h (struct c_arg_info): Likewise.
20831         * tree.h: Update the prototype for get_pending_sizes and
20832         put_pending_sizes.
20833
20834 2010-05-05  Jason Merrill  <jason@redhat.com>
20835
20836         PR debug/43370
20837         * c-common.c (handle_aligned_attribute): Respect
20838         ATTR_FLAG_TYPE_IN_PLACE.
20839
20840         PR testsuite/43758
20841         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
20842         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20843         (TARGET_INITIALIZER): Use it.
20844         * c-common.c (attribute_takes_identifier_p): Call it.
20845         * c-common.h: Update prototype.
20846         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
20847         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20848
20849 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
20850
20851         PR debug/43950
20852         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
20853         DW_ID_down_case for Fortran compilation units.
20854
20855 2010-05-05  Jan Hubicka  <jh@suse.cz>
20856
20857         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
20858         handle aliases.
20859
20860 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
20861
20862         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
20863         a variable-sized RESULT_DECL.
20864
20865 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
20866
20867         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
20868
20869 2010-05-05  Jason Merrill  <jason@redhat.com>
20870
20871         PR c++/43787
20872         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
20873         returns GS_OK.
20874         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
20875
20876 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
20877             Jakub Jelinek  <jakub@redhat.com>
20878
20879         PR debug/43478
20880         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
20881         (dead_debug_init, dead_debug_finish): New functions.
20882         (dead_debug_add, dead_debug_insert_before): Likewise.
20883         (df_note_bb_compute): Initialize a dead_debug object, add dead
20884         debug uses to it, insert debug bind insns before death insns,
20885         reset debug insns that refer to pending uses at the end.
20886         * rtl.h (make_debug_expr_from_rtl): New prototype.
20887         * varasm.c (make_debug_expr_from_rtl): New function.
20888
20889 2010-05-05  Jan Hubicka  <jh@suse.cz>
20890
20891         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
20892         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
20893         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
20894         lto_varpool_encoder_deref, lto_varpool_encoder_size,
20895         lto_varpool_encoder_encode_initializer_p,
20896         lto_set_varpool_encoder_encode_initializer): New functions.
20897         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
20898         call output_varpool.
20899         (input_varpool_node): Do not always set analyzed.
20900         (input_cgraph_1): Return vector of cgraph nodes.
20901         (input_varpool_1): Return vector of varpools.
20902         (input_cgraph): Free the vectors.
20903         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20904         output only initializers needed.
20905         (lto_output): Only call output_cgraph.
20906         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
20907         * lto-section-out.c (lto_new_out_decl_state): Initialize
20908         state->varpool_node_encoder.
20909         * lto-streamer.h (lto_varpool_encoder_d): New.
20910         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
20911         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
20912         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
20913         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
20914         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
20915         Declare.
20916         (output_varpool, input_varpool): Remove declarations.
20917
20918 2010-05-05  Jan Hubicka  <jh@suse.cz>
20919
20920         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
20921         with body can prevail.
20922
20923 2010-05-05  Jan Hubicka  <jh@suse.cz>
20924
20925         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
20926         size.
20927
20928 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20929
20930         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
20931
20932         * gengtype.h (erro_at_line): Constify pos argument.
20933
20934         * gengtype.c: Include hashtab.h.
20935         (enum gc_used): Document GC_MAYBE_POINTED_TO.
20936         (error_at_line): Constify pos argument.
20937         (do_typedef): Initialize p->opt field.
20938         (get_file_gtfilename): Fix comment typo.
20939         (struct walk_type_data): Constify line field.
20940         (get_output_file_for_structure): New function.
20941         (write_local_func_for_structure): Constify orig_s argument.
20942         Use get_output_file_for_structure.
20943         (write_func_for_structure): Use get_output_file_for_structure.
20944         (INDENT): New define.
20945         (dump_pair, dump_type, dump_type_list, dump_typekind)
20946         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
20947         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
20948         functions.
20949         (seen_types): New variable.
20950         (main): New variable do_dump.  Process "-d" command line option.
20951         Call dump_everything if dump requested.
20952
20953 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
20954
20955         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
20956         in a temporary instead of invoking the macro multiple times.
20957         (track_expr_p): Likewise.
20958
20959 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
20960
20961         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
20962         per new semantics.
20963         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
20964         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
20965         conditions for printing notes.
20966         * common.opt (-Wcoverage-mismatch): Allow negative, default to
20967         true, update documentation.
20968         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
20969
20970 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
20971
20972         PR c/43981
20973         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
20974         on dimen.
20975
20976 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20977
20978         PR target/43799
20979         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
20980         (*sse_prologue_save_insn1): Likewise.
20981         (SSE prologue save splitter): Likewise.
20982
20983 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
20984
20985         * tree.c (free_lang_data_in_one_sizepos): New inline function.
20986         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
20987         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
20988         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
20989         all decls.  Call it on DECL_FIELD_OFFSET of fields.
20990         (find_decls_types_r): Follow DECL_VALUE_EXPR.
20991         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
20992
20993 2010-05-04  Martin Jambor  <mjambor@suse.cz>
20994
20995         * tree-sra.c (build_access_from_expr_1): The first parameter type
20996         changed to simple tree.
20997         (build_access_from_expr): Likewise, gsi parameter was eliminated.
20998         (scan_assign_result): Renamed to assignment_mod_result, enum elements
20999         renamed as well.
21000         (build_accesses_from_assign): Removed all parameters except for a
21001         simple gimple statement.  Now returns a simple bool.
21002         (scan_function): All non-analysis parts moved to separate functions
21003         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
21004         parameters and updated both callers.
21005         (sra_modify_expr): Removed parameter data.
21006         (sra_modify_function_body): New function.
21007         (perform_intra_sra): Call sra_modify_function_body to modify the
21008         function body.
21009         (replace_removed_params_ssa_names): Parameter data changed into
21010         adjustments vector.
21011         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
21012         changed the parameter dont_convert to convert with the opposite
21013         meaning.
21014         (sra_ipa_modify_assign): Parameter data changed into adjustments
21015         vector, return value changed to bool.
21016         (ipa_sra_modify_function_body): New function.
21017         (sra_ipa_reset_debug_stmts): Updated a comment.
21018         (modify_function): Use ipa_sra_modify_function_body to modify function
21019         body.
21020
21021 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
21022
21023         PR middle-end/43671
21024         * alias.c (true_dependence): Handle the same VALUE in x and mem.
21025         (canon_true_dependence): Likewise.
21026         (write_dependence_p): Likewise.
21027
21028 2010-05-04  Jan Hubicka  <jh@suse.cz>
21029
21030         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
21031         * cgraphbuild.c: Include ipa-utils.h
21032         (record_reference_ctx): New struct.
21033         (record_reference): Simplify to work on initializers; not statements.
21034         (mark_address, mark_load, mark_store): New.
21035         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
21036         walk PHI nodes too.
21037         (record_references_in_initializer): Update use of record_reference.
21038         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
21039         walk PHI nodes too.
21040
21041 2010-05-04  Jan Hubicka  <jh@suse.cz>
21042
21043         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
21044         node will be removed anyway.
21045         (lto_varpool_replace_node): Allow also unanalyzed nodes;
21046         relink aliases of node into prevailing node.
21047         * varpool.c (varpool_remove_node): Remove aliases properly;
21048         when removing node, remove all its aliases too; remove DECL_INITIAL
21049         of removed node; ggc_free the varpool node.
21050
21051 2010-05-04  Richard Guenther  <rguenther@suse.de>
21052
21053         PR tree-optimization/43879
21054         * tree-ssa-structalias.c (alias_get_name): Use
21055         DECL_ASSEMBLER_NAME if available.
21056         (create_function_info_for): Return the varinfo node.
21057         (ipa_pta_execute): Associate same-body aliases and extra names
21058         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
21059
21060 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21061
21062         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
21063
21064 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
21065
21066         PR bootstrap/43964
21067         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
21068         only if HONOR_REG_ALLOC_ORDER is not defined.
21069
21070 2010-05-04  Richard Guenther  <rguenther@suse.de>
21071
21072         PR tree-optimization/43949
21073         * tree-vrp.c (extract_range_from_binary_expr): Only handle
21074         TRUNC_MOD_EXPR.
21075
21076 2010-04-26  Jason Merrill  <jason@redhat.com>
21077
21078         * c.opt (-fstrict-enums): New.
21079         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
21080
21081 2010-05-03  David Ung  <davidu@mips.com>
21082             James E. Wilson  <wilson@codesourcery.com>
21083
21084         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
21085         emit the trap instruction before the divide for TUNE_74K.
21086
21087 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
21088
21089         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
21090         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
21091         based on the above, for new target hook.
21092
21093         * hooks.c (hook_bool_mode_true): New generic hook.
21094         * hooks.h (hook_bool_mode_true): Add prototype.
21095
21096         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
21097         target hook.
21098         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
21099         target hook, set to hook_bool_mode_false.
21100         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
21101         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
21102         with targetm.small_register_classes_for_mode_p.
21103         (find_reusable_reload): Likewise.
21104         (combine_reloads): Likewise.
21105         * reload1.c (reload_as_needed): Likewise.
21106         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
21107         * ifcvt.c (noce_process_if_block, check_cond_move_block,
21108         dead_or_predicable): Likewise.
21109         * regmove.c (optimize_reg_copy_1): Likewise.
21110         * calls.c (prepare_call_address): Likewise.
21111         (precompute_register_parameters): Likewise.
21112
21113         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
21114         hook definition.
21115         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
21116         implementation of the hook that considers all register classes
21117         small except for SH64.
21118         (sh_override_options): Use the new hook.
21119         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
21120         Add prototype.
21121
21122         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
21123         hook definition.
21124         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
21125         implementation of the hook that considers all register classes
21126         small for THUMB1.
21127         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
21128         Add prototype.
21129
21130         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
21131         hook definition.
21132         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
21133         implementation of the hook that considers all register classes
21134         small for MIPS16.
21135         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
21136         Add prototype.
21137
21138         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
21139         hook definition.
21140         * config/m32c/m32c.h: Likewise.
21141         * config/pdp11/pdp11.h: Likewise.
21142         * config/avr/avr.h: Likewise.
21143         * config/xtensa/xtensa.h: Likewise.
21144         * config/m68hc11/m68hc11.h: Likewise.
21145         * config/mn10300/mn10300.h: Likewise.
21146         * config/mcore/mcore.h: Likewise.
21147         * config/h8300/h8300.h: Likewise.
21148         * config/bfin/bfin.h: Likewise.
21149
21150         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
21151         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
21152
21153 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
21154
21155         * double-int.h (tree_to_double_int): Remove macro.
21156         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
21157         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
21158         (tree_to_double_int): New function.
21159         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
21160         Move ...
21161         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
21162
21163 2010-05-03  Richard Guenther  <rguenther@suse.de>
21164
21165         PR tree-optimization/43971
21166         * tree-ssa-structalias.c (get_constraint_for_1): Fix
21167         constraints in the !flag_delete_null_pointer_checks case.
21168
21169 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
21170
21171         PR debug/43972
21172         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
21173         result mode matches original rtl mode.
21174
21175 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
21176
21177         PR target/43888
21178         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
21179
21180 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21181
21182         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
21183         when processing flag options.
21184
21185 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21186
21187         * gcov-iov.c (main): Change format string placeholder
21188         from %#08x to 0x%08x.
21189         * genchecksum.c (dosum): Change format string placeholder
21190         from %#02x to 0x%02x.
21191
21192 2010-05-02  Richard Guenther  <rguenther@suse.de>
21193
21194         PR tree-optimization/43879
21195         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
21196
21197 2010-05-02  Bruno Haible  <bruno@clisp.org>
21198
21199         * doc/extend.texi (Function Attributes): Fix a typo.
21200
21201 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21202
21203         Revert:
21204         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
21205         placeholder from 0x%x to %#x.
21206         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21207         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
21208         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
21209         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
21210         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
21211         * config/i386/i386.c (ix86_target_string): Ditto.
21212         * config/i386/i386.c (output_pic_addr_const): Ditto.
21213         (print_operand): Ditto.
21214
21215 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21216
21217         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
21218         placeholder from 0x%x to %#x.
21219         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
21220         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
21221         (ASM_OUTPUT_DEBUG_DATA): Ditto.
21222         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
21223         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
21224         * optc-gen.awk: Ditto.
21225         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
21226         (HOST_WIDE_INT_PRINT_HEX): Ditto.
21227         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
21228         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21229
21230 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
21231
21232         * target.h (struct calls): Add function_value_regno_p field.
21233         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
21234         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
21235         * targhooks.c (default_function_value_regno_p): New function.
21236         * targhooks.h (default_function_value_regno_p): Declare function.
21237         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
21238         * builtins.c. (apply_result_size): (Ditto.).
21239         * combine.c. (likely_spilled_retval_p): (Ditto.).
21240         * mode-switching.c. Include 'target.h'.
21241         (create_pre_exit): Use function_value_regno_p hook.
21242         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
21243         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
21244         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
21245
21246         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
21247         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
21248         (ix86_function_value_regno_p): Declare as static, change argument
21249         type to const unsigned int.
21250         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
21251
21252 2010-05-01  Richard Guenther  <rguenther@suse.de>
21253
21254         PR tree-optimization/43949
21255         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
21256         types.
21257         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
21258
21259 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
21260
21261         * rtl.h (CONST_DOUBLE_P): Define.
21262         (rtx_to_double_int): Declare.
21263         * emit-rtl.c (rtx_to_double_int): New function.
21264         * dwarf2out.c (insert_double): New function.
21265         (loc_descriptor, add_const_value_attribute): Clean up, use
21266         rtx_to_double_int and insert_double functions.
21267
21268 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
21269
21270         * doc/extend.texi (Inline): Add missing return keyword to examples.
21271         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
21272         "command-line".
21273
21274 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
21275
21276         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
21277         the variable part of the offset as well.  Use highest_pow2_factor for
21278         all alignment checks.
21279
21280 2010-04-30  Richard Guenther  <rguenther@suse.de>
21281
21282         PR tree-optimization/43879
21283         * tree-ssa-structalias.c (type_could_have_pointers): Functions
21284         can have pointers.
21285
21286 2010-04-30  Jan Hubicka  <jh@suse.cz>
21287
21288         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
21289         varpool.
21290         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
21291
21292 2010-04-30  Jan Hubicka  <jh@suse.cz>
21293
21294         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
21295         New.
21296         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
21297         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
21298         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
21299         cgraph_node_set_needs_ltrans_p): Remove.
21300
21301 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
21302
21303         * sdbout.c: Include vec.h, do not include varray.h.
21304         (deferred_global_decls, sdbout_global_decl,
21305         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
21306         * toplev.c: Do not include varray.h.
21307         (dump_memory_report): Do not dump VARRAY statistics.
21308         * gengtype.c (open_base_file): Ignore varray.h.
21309         * Makefile.in: Update for abovementioned changes.
21310         Remove all traces of varray.c and varray.h.
21311         * varray.c: Remove file.
21312         * varray.h: Remove file.
21313
21314 2010-04-30  Jan Hubicka  <jh@suse.cz>
21315
21316         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
21317         references.
21318
21319 2010-04-30  Jan Hubicka  <jh@suse.cz>
21320
21321         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
21322         needed.
21323
21324 2010-04-30  Richard Guenther  <rguenther@suse.de>
21325
21326         * tree-ssa-structalias.c (get_constraint_for_1): Generate
21327         constraints for CONSTRUCTOR.
21328
21329 2010-04-30  Richard Guenther  <rguenther@suse.de>
21330
21331         PR lto/43946
21332         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
21333         first after all lowering passes.
21334
21335 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
21336
21337         * toplev.c: Include varray.h for statistics dumping.
21338         * tree.h: Do not declare varray_head_tag.
21339         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
21340         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
21341         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
21342         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
21343         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
21344         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
21345         c-common.c, c-common.h, reg-stack.c, basic-block.h,
21346         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
21347         include varray.h.
21348         * Makefile.in: Update for abovementioned changes.
21349
21350 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
21351
21352         PR debug/43942
21353         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
21354
21355 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
21356
21357         * config/picochip/picochip.c (picochip_legitimize_address): Define.
21358         Use this function to do machine-specific conversion.
21359         (picochip_legitimize_reload_address): Likewise.
21360         (picochip_legitimate_address_p): Check valid base register only if
21361         strict.
21362         (picochip_check_conditional_copy): Check for modw only if opnd is
21363         register.
21364         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
21365         to call the function in c.
21366         * config/picochip/picochip-protos.h
21367         (picochip_legitimize_reload_address): Define.
21368         * config/picochip/picochip.md (supported_compare1): Define.
21369
21370 2010-04-30  Jan Hubicka  <jh@suse.cz>
21371
21372         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
21373         (cgraph_global_info): Remove inlined.
21374         (LTO_cgraph_tag_names): Remove.
21375         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
21376         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
21377         simplify cgraph tags and document.
21378         (lto_output_node): Use only LTO_cgraph_unavail_node and
21379         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
21380         for_functions_valid, global info, process and output flags.
21381         (input_overwrite_node): Initialize estimated stack size and
21382         estimated growth.  Do not read flags we no longer store.
21383         (input_node): Likewise do not read info no longer stored.
21384         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
21385         flag.
21386
21387 2010-04-30  Richard Guenther  <rguenther@suse.de>
21388
21389         PR tree-optimization/43879
21390         * tree-ssa-structalias.c (get_constraint_for_1): Properly
21391         handle non-zero initializers.
21392
21393 2010-04-30  Richard Guenther  <rguenther@suse.de>
21394
21395         * builtins.c (fold_builtin_1): Delete free (0).
21396
21397 2010-04-29  Jan Hubicka  <jh@suse.cz>
21398
21399         * gengtype.c (open_base_files): Add lto-streamer.h
21400         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
21401         (pass_ipa_cp): GGC collect.
21402         * toplev. (compile_file): Do not output symbols.
21403         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
21404         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
21405         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
21406         * lto-section-in.c: Include ggc.h
21407         (lto_new_in_decl_state): Alloc in GGC.
21408         (lto_delete_in_decl_state): Likewise.
21409         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
21410         Collect.
21411
21412 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
21413
21414         PR target/42895
21415         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
21416         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
21417         (HONOR_REG_ALLOC_ORDER): Describe new macro.
21418         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
21419         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
21420         account only if HONOR_REG_ALLOC_ORDER is not defined.
21421         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
21422         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
21423
21424 2010-04-29  Jon Grant  <04@jguk.org>
21425
21426         * collect2.c (vflag): Change type from int to bool.
21427         (debug): Likewise.
21428         (helpflag): New global bool.
21429         (main): Set vflag and debug with boolean, not integer truth values.
21430         Accept new "--help" option and output usage text if found.
21431         * collect2.h (vflag): Update prototype.
21432         (debug): Likewise.
21433
21434 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21435
21436         PR bootstrap/43936
21437         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
21438
21439 2010-04-29  Richard Guenther  <rguenther@suse.de>
21440
21441         PR bootstrap/43935
21442         * plugin.h (invoke_plugin_callbacks): Annotate arguments
21443         with ATTRIBUTE_UNUSED.
21444
21445 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21446
21447         PR target/43921
21448         * config/i386/i386.c (get_some_local_dynamic_name): Replace
21449         INSN_P with NONDEBUG_INSN_P.
21450         (distance_non_agu_define): Likewise.
21451         (distance_agu_use): Likewise.
21452
21453 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
21454
21455         From Dominique d'Humieres  <dominiq@lps.ens.fr>
21456         PR bootstrap/43858
21457         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
21458         test_set.
21459
21460 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
21461
21462         * plugin.h (invoke_plugin_callbacks): New inline function.
21463         * plugin.c (flag_plugin_added): New global flag.
21464         (add_new_plugin): Initialize above flag.
21465         (invoke_plugin_callbacks): Rename to ...
21466         (invoke_plugin_callbacks_full): ... this.
21467
21468 2010-04-28  Jan Hubicka  <jh@suse.cz>
21469
21470         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
21471         (lto_varpool_replace_node): New.
21472         (lto_symtab_resolve_symbols): Resolve varpool nodes.
21473         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
21474         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
21475         * cgraph.h (varpool_node_ptr): New type.
21476         (varpool_node_ptr): New vector.
21477         (varpool_node_set_def): New structure.
21478         (varpool_node_set): New type.
21479         (varpool_node_set): New vector.
21480         (varpool_node_set_element_def): New structure.
21481         (varpool_node_set_element, const_varpool_node_set_element): New types.
21482         (varpool_node_set_iterator): New type.
21483         (varpool_node): Add prev pointers, add used_from_other_partition,
21484         in_other_partition.
21485         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
21486         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
21487         varpool_get_node, varpool_remove_node): Declare.
21488         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
21489         varpool_node_set_size): New inlines.
21490         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
21491         * tree-pass.h (varpool_node_set_def): Forward declare.
21492         (ipa_opt_pass_d): Summary writting takes vnode sets too.
21493         (ipa_write_optimization_summaries): Update prototype.
21494         * ipa-cp.c (ipcp_write_summary): Update.
21495         * ipa-reference.c (ipa_reference_write_summary): Update.
21496         * lto-cgraph.c (lto_output_varpool_node): New static function.
21497         (output_varpool): New function.
21498         (input_varpool_node): New static function.
21499         (input_varpool_1): New function.
21500         (input_cgraph): Input varpool.
21501         * ipa-pure-const.c (pure_const_write_summary): Update.
21502         * lto-streamer-out.c (lto_output): Update, output varpool too.
21503         (write_global_stream): Kill WPA hack.
21504         (produce_asm_for_decls): Update.
21505         (output_alias_pair_p): Handle variables.
21506         (output_unreferenced_globals): Output only needed partition of varpool.
21507         * ipa-inline.c (inline_write_summary): Update.
21508         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
21509         cgraph.
21510         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
21511         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
21512         varpool_node_set_new, varpool_node_set_add,
21513         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
21514         debug_varpool_node_set): New functions.
21515         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
21516         (execute_one_pass): Process new decls too.
21517         (ipa_write_summaries_2): Pass around vsets.
21518         (ipa_write_summaries_1): Likewise.
21519         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
21520         to add.
21521         (ipa_write_optimization_summaries_1): Pass around vsets.
21522         (ipa_write_optimization_summaries): Likewise.
21523         * varpool.c (varpool_get_node): New.
21524         (varpool_node): Update doubly linked lists.
21525         (varpool_remove_node): New.
21526         (dump_varpool_node): More dumping.
21527         (varpool_enqueue_needed_node): Update doubly linked lists.
21528         (decide_is_variable_needed): Kill ltrans hack.
21529         (varpool_finalize_decl): Kill lto hack.
21530         (varpool_assemble_decl): Skip decls in other partitions.
21531         (varpool_assemble_pending_decls): Update doubly linkes lists.
21532         (varpool_empty_needed_queue): Likewise.
21533         (varpool_extra_name_alias): Likewise.
21534         * lto-streamer.c (lto_get_section_name): Add vars section.
21535         * lto-streamer.h (lto_section_type): Update.
21536         (output_varpool, input_varpool): Declare.
21537
21538 2010-04-28  Mike Stump  <mikestump@comcast.net>
21539
21540         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
21541
21542 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21543
21544         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
21545         record or union type with RECORD_OR_UNION_TYPE_P predicate.
21546         (lto_input_ts_type_tree_pointers): Likewise.
21547         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
21548         (lto_output_ts_type_tree_pointers): Likewise.
21549
21550 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21551
21552         Uniquization of constants at the Tree level
21553         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
21554         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
21555         bit to the end.
21556         (tree_output_constant_def): Declare.
21557         * gimplify.c (gimplify_init_constructor): When using block copy, first
21558         uniquize the constant constructor on the RHS.
21559         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
21560         DECL_IN_CONSTANT_POOL flag.
21561         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
21562         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
21563         constant pool.
21564         (assemble_variable): Deal with symbols belonging to the tree constant
21565         pool.
21566         (get_constant_section): Add ALIGN parameter and simplify.
21567         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
21568         (assemble_constant_contents): Use the expression of the VAR_DECL.
21569         (output_constant_def_contents): Use the alignment of the VAR_DECL.
21570         (tree_output_constant_def): New global function.
21571         (mark_constant): Use the expression of the VAR_DECL.
21572         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
21573         its expression.
21574         (output_object_block): Likewise and assemble the expression.
21575
21576 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21577
21578         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
21579         hash_tree, eq_tree): New tree hash table.
21580         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
21581         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
21582         lto_orig_address_remove): Reimplement.
21583
21584 2010-04-28  Xinliang David Li  <davidxl@google.com>
21585
21586         PR c/42643
21587         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
21588         (compute_uninit_opnds_pos): New function.
21589         (is_non_loop_exit_postdominating): New function.
21590         (compute_control_dep_chain): New function.
21591         (find_pdom): New function.
21592         (convert_control_dep_chain_into_preds): New function.
21593         (find_predicates): New function.
21594         (find_control_equiv_block): New function.
21595         (collect_phi_def_edges): New function.
21596         (find_def_preds): New function.
21597         (find_dom): New function.
21598         (dump_predicates): New function.
21599         (get_cmp_code): New function.
21600         (is_value_included_in): New function.
21601         (find_matching_predicate_in_rest_chains): New function.
21602         (use_pred_not_overlap_with_undef_path_pred): New function.
21603         (is_use_properly_guarded): New function.
21604         (normalize_cond_1): New function.
21605         (is_and_or_or): New function.
21606         (normalize_cond): New function.
21607         (is_gcond_subset_of): New function.
21608         (is_subset_of_any): New function.
21609         (is_or_set_subset_of): New function.
21610         (is_and_set_subset_of): New function.
21611         (is_norm_cond_subset_of): New function.
21612         (is_pred_expr_subset_of): New function.
21613         (is_pred_chain_subset_of): New function.
21614         (is_included_in): New function.
21615         (is_superset_of): New function.
21616         (find_uninit_use): New function.
21617         (warn_uninitialized_phi): New function.
21618         (compute_possibly_undefined_names): New function.
21619         (ssa_undefined_value_p): New function.
21620         (execute_late_warn_uninitialized): New function.
21621         * tree-ssa.c (ssa_undefined_value_p): Removed.
21622         (warn_uninit): Changed to extern.
21623         (warn_uninitialized_phi): Removed.
21624         (warn_uninitialized_vars): Changed to extern.
21625         (execute_late_warn_uninitialized): Removed
21626         * tree-flow.h: Add new prototypes.
21627         * timevar.def: Add new time variable.
21628         * Makefile.in: Add new build file.
21629
21630 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
21631
21632         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
21633         type if available.
21634
21635 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21636
21637         PR target/22224
21638         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
21639
21640 2010-04-28  Martin Jambor  <mjambor@suse.cz>
21641
21642         * cgraph.h (struct cgraph_node): New field indirect_calls.
21643         (struct cgraph_indirect_call_info): New type.
21644         (struct cgraph_edge): Removed field indirect_call. New fields
21645         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
21646         (cgraph_create_indirect_edge): Declare.
21647         (cgraph_make_edge_direct): Likewise.
21648         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
21649         * ipa-prop.h (struct ipa_param_call_note): Removed.
21650         (struct ipa_node_params): Removed field param_calls.
21651         (ipa_create_all_structures_for_iinln): Declare.
21652         * cgraph.c: Described indirect edges and uids in initial comment.
21653         (cgraph_add_edge_to_call_site_hash): New function.
21654         (cgraph_edge): Search also among the indirect edges, use
21655         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
21656         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
21657         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
21658         site hash.
21659         (initialize_inline_failed): Assign a reason to indirect edges.
21660         (cgraph_create_edge_1): New function.
21661         (cgraph_create_edge): Moved some functionality to
21662         cgraph_create_edge_1.
21663         (cgraph_create_indirect_edge): New function.
21664         (cgraph_edge_remove_callee): Add an assert checking for
21665         non-indirectness.
21666         (cgraph_edge_remove_caller): Special-case indirect edges.
21667         (cgraph_remove_edge): Likewise.
21668         (cgraph_set_edge_callee): New function.
21669         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
21670         (cgraph_make_edge_direct): New function.
21671         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
21672         the declaration of the call statement matches.
21673         (cgraph_node_remove_callees): Special-case indirect edges.
21674         (cgraph_clone_edge): Likewise.
21675         (cgraph_clone_node): Clone also the indirect edges.
21676         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
21677         indirect_call, dump count of indirect_calls edges.
21678         * ipa-prop.c (iinlining_processed_edges): New variable.
21679         (ipa_note_param_call): Create indirect edges instead of
21680         creating notes.  New parameter node.
21681         (ipa_analyze_call_uses): New parameter node, pass it on to
21682         ipa_note_param_call.
21683         (ipa_analyze_stmt_uses): Likewise.
21684         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
21685         (print_edge_addition_message): Work on edges rather than on notes.
21686         (update_call_notes_after_inlining): Likewise, renamed to
21687         update_indirect_edges_after_inlining.
21688         (ipa_create_all_structures_for_iinln): New function.
21689         (ipa_free_node_params_substructures): Do not free notes.
21690         (ipa_edge_duplication_hook): Propagate bits within
21691         iinlining_processed_edges bitmap.
21692         (ipa_node_duplication_hook): Do not duplicate notes.
21693         (free_all_ipa_structures_after_ipa_cp): Renamed to
21694         ipa_free_all_structures_after_ipa_cp.
21695         (free_all_ipa_structures_after_iinln): Renamed to
21696         ipa_free_all_structures_after_iinln.
21697         (ipa_write_param_call_note): Removed.
21698         (ipa_read_param_call_note): Removed.
21699         (ipa_write_indirect_edge_info): New function.
21700         (ipa_read_indirect_edge_info): Likewise.
21701         (ipa_write_node_info): Do not stream notes, do stream information
21702         in indirect edges.
21703         (ipa_read_node_info): Likewise.
21704         (lto_ipa_fixup_call_notes): Removed.
21705         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
21706         * ipa-inline.c (pass_ipa_inline): Likewise.
21707         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
21708         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
21709         * tree-inline.c (copy_bb): Removed an unnecessary double check for
21710         is_gimple_call.
21711         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
21712         edges.
21713         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
21714         (output_cgraph): Stream also indirect edges.
21715         (lto_output_edge): Added capability to stream indirect edges.
21716         (input_edge): Likewise.
21717         (input_cgraph_1): Likewise.
21718         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
21719         of indirect edges.
21720
21721 2010-04-28  Richard Guenther  <rguenther@suse.de>
21722
21723         PR tree-optimization/43879
21724         PR tree-optimization/43909
21725         * tree-ssa-structalias.c (struct variable_info): Add
21726         only_restrict_pointers flag.
21727         (new_var_info): Initialize it.  Increment stats.total_vars here.
21728         (create_function_info_for): Do not increment stats.total_vars here.
21729         (get_function_part_constraint): Fix build with C++.
21730         (insert_into_field_list): Remove.
21731         (push_fields_onto_fieldstack): Properly merge fields.
21732         (create_variable_info_for): Split and simplify.
21733         (create_variable_info_for_1): New piece.
21734         (intra_create_variable_infos): Properly make restrict constraints
21735         from parameters.
21736
21737 2010-04-28  Richard Guenther  <rguenther@suse.de>
21738
21739         PR c++/43880
21740         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
21741
21742 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21743             Jan Hubicka  <hubicka@ucw.cz>
21744
21745         * doc/invoke.texi (-Wsuggest-attribute=const,
21746         -Wsuggest-attribute=pure): Document.
21747         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
21748         (function_always_visible_to_compiler_p,
21749         suggest_attribute, warn_function_pure, warn_function_const):
21750         New functions.
21751         (check_call): Improve debug info.
21752         (analyze_function): Do not check availability.
21753         (add_new_function): Check availability.
21754         (propagate): Output warnings.
21755         (skip_function_for_local_pure_const): New function.
21756         (local_pure_const): Use it; output warnings.
21757         * common.opt (Wsuggest-attribute=const,
21758         Wsuggest-attribute=pure): New.
21759
21760 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
21761
21762         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
21763         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
21764         or DW_CFA_def_cfa_offset{,_sf}.
21765
21766 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
21767
21768         * tree.h: Fix truncated long macros.
21769
21770 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
21771
21772         * collect2.c (TARGET_64BIT): Redefine to target's default.
21773         * tlink.c: Likewise.
21774         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
21775         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
21776         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
21777         for underscoring __USER_LABEL_PREFIX__.
21778         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
21779         (SUB_LINK_ENTRY32): New.
21780         (SUB_LINK_ENTRY64): New.
21781         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
21782         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
21783         (SUB_LINK_ENTRY64): New.
21784         (SUB_LINK_ENTRY): New.
21785         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
21786         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
21787         x64 target is choosen.
21788         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
21789         * configure: Regenerated.
21790         * configure.ac (leading-mingw64-underscores): Option added.
21791
21792 2010-04-27  Jan Hubicka  <jh@suse.cz>
21793
21794         * doc/invoke.texi (-fipa-profile): Document.
21795         * opts.c (decode_options): Enable ipa-profile at -O1.
21796         * timevar.def (TV_IPA_PROFILE): Define.
21797         * common.opt (fipa-profile): Add.
21798         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
21799         flag for clones.
21800         (cgraph_propagate_frequency): Handle only local ones.
21801         * tree-pass.h (pass_ipa_profile): Declare.
21802         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
21803         (pass_ipa_profile): Use TV_IPA_PROFILE.
21804         * ipa.c (ipa_profile): New function.
21805         (gate_ipa_profile): Likewise.
21806         (pass_ipa_profile): New global variable.
21807         * passes.c (pass_ipa_profile): New.
21808
21809 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
21810
21811         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
21812
21813 2010-04-27  Martin Jambor  <mjambor@suse.cz>
21814
21815         PR middle-end/43812
21816         * ipa.c (dissolve_same_comdat_group_list): New function.
21817         (function_and_variable_visibility): Call
21818         dissolve_same_comdat_group_list when comdat group contains external or
21819         newly local nodes.
21820         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
21821         lists are circular and that they contain only DECL_ONE_ONLY nodes.
21822
21823 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
21824
21825         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
21826         (const_hash_1) <VECTOR_CST>: New case.
21827         (compare_constant) <VECTOR_CST>: Likewise.
21828         <ADDR_EXPR>: Deal with LABEL_REFs.
21829         (copy_constant) <VECTOR_CST>: New case.
21830
21831 2010-04-27  Jan Hubicka  <jh@suse.cz>
21832
21833         * cgraph.c (cgraph_propagate_frequency): New function.
21834         * cgraph.h (cgraph_propagate_frequency): Declare.
21835         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
21836         cgraph_propagate_frequency.
21837
21838 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
21839
21840         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
21841
21842 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
21843
21844         PR target/40657
21845         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
21846         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
21847         here to determine which regs to push and how much stack to reserve.
21848
21849 2010-04-27  Jie Zhang  <jie@codesourcery.com>
21850
21851         * doc/gimple.texi (gimple_statement_with_ops): Remove
21852         addresses_taken field.
21853         (gimple_statement_with_memory_ops): Likewise.
21854
21855 2010-04-27  Jan Hubicka  <jh@suse.cz>
21856
21857         * tree-inline.c (eni_inlining_weights): Remove.
21858         (estimate_num_insns): Special case more builtins.
21859
21860 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
21861
21862         PR c/32207
21863         * c-typeck.c (build_binary_op): Move forward check for comparison
21864         pointer with null pointer constant and adjust the diagnostic message.
21865
21866 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
21867
21868         PR lto/42776
21869         * configure.ac (gcc_cv_as_section_has_align): Set if installed
21870         binutils supports extended .section directive needed by LTO, or
21871         warn if older binutils found.
21872         (LTO_BINARY_READER): New AC_SUBST'd variable.
21873         (LTO_USE_LIBELF): Likewise.
21874         * config.gcc (lto_binary_reader): New target-specific configure
21875         variable.
21876         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
21877         (LTO_USE_LIBELF): Likewise.
21878         * configure: Regenerate.
21879
21880         * collect2.c (is_elf): Rename from this ...
21881         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
21882          object files in addition to ELF-formatted ones.
21883         (scan_prog_file): Caller updated.  Also allow for LTO info marker
21884         symbol to be prefixed or not by an extra underscore.
21885
21886         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
21887         * config/i386/winnt.c: Also #include lto-streamer.h
21888         (i386_pe_asm_named_section): Specify 1-byte section alignment for
21889         LTO named sections.
21890         (i386_pe_asm_output_aligned_decl_common): Add comment.
21891         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
21892
21893 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
21894
21895         PR target/43889
21896         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
21897         Add missing earlyclobber for second alternative.
21898
21899 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
21900
21901         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
21902         bits for artificial defs at the top of the block.
21903         * fwprop.c (single_def_use_enter_block): Don't call it.
21904
21905 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
21906
21907         PR 43715
21908         * configure.ac: Use "$gcc_cv_nm -g" on darwin
21909         instead of "$gcc_cv_objdump -T".
21910         Use "-undefined dynamic_lookup" on darwin.
21911         * configure: Regenerate.
21912
21913 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
21914
21915         PR c/43893
21916         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
21917
21918 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
21919
21920         * c-parser.c (struct c_token): Move location field up.
21921         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
21922         (struct c_declspecs): Convert typespec_word, storage_class, and
21923         default_int_p into bitfields.
21924         (struct c_declarator): Move loc field up.
21925
21926 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
21927
21928         * cfgloop.h (struct loop): Move can_be_parallel field up.
21929         * ipa-prop.h (struct ip_node_params): Move bitfields up.
21930         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
21931         down.
21932         (struct iv_cand): Convert pos field into a bitfield.
21933         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
21934         field up.
21935         (struct _stmt_vec_info): Shuffle fields for better packing.
21936
21937 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
21938
21939         * varasm.c (IN_NAMED_SECTION): Remove guard.
21940         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
21941         (IN_NAMED_SECTION_P): ...this.
21942         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
21943         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
21944
21945 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
21946
21947         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
21948         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
21949         of shadowing it.  Fix comments.
21950
21951 2010-04-26  Jan Hubicka  <jh@suse.cz>
21952
21953         * cgraph.c (cgraph_create_node): Set node frequency to normal.
21954         (cgraph_clone_node): Copy function frequency.
21955         * cgraph.h (node_frequency): New enum
21956         (struct cgraph_node): Add.
21957         * final.c (rest_of_clean_state): Update.
21958         * lto-cgraph.c (lto_output_node): Output node frequency.
21959         (input_overwrite_node): Input node frequency.
21960         * tre-ssa-loop-ivopts (computation_cost): Update.
21961         * lto-streamer-out.c (output_function): Do not output function
21962         frequency.
21963         * predict.c (maybe_hot_frequency_p): Update and handle functions
21964         executed once.
21965         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
21966         attribute lookup.
21967         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
21968         (compute_function_frequency): Set noreturn functions to be executed
21969         once.
21970         (choose_function_section): Update.
21971         * lto-streamer-in.c (input_function): Do not input function frequency.
21972         * function.c (allocate_struct_function): Do not initialize function
21973         frequency.
21974         * function.h (function_frequency): Remove.
21975         (struct function): Remove function frequency.
21976         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
21977         (try_update): Update.
21978         * tree-inline.c (initialize_cfun): Do not update function frequency.
21979         * passes.c (pass_init_dump_file): Update.
21980         * i386.c (ix86_compute_frame_layout): Update.
21981         (ix86_pad_returns): Update.
21982
21983 2010-04-26  Jie Zhang  <jie@codesourcery.com>
21984
21985         PR tree-optimization/43833
21986         * tree-vrp.c (range_int_cst_p): New.
21987         (range_int_cst_singleton_p): New.
21988         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
21989         when both operands are constants.  Use range_int_cst_p in
21990         BIT_IOR_EXPR case.
21991
21992 2010-04-26  Jan Hubicka  <jh@suse.cz>
21993
21994         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
21995
21996 2010-04-26  Richard Guenther  <rguenther@suse.de>
21997
21998         PR lto/43080
21999         * gimple.c (gimple_decl_printable_name): Deal gracefully
22000         with a NULL DECL_NAME.
22001
22002 2010-04-26  Richard Guenther  <rguenther@suse.de>
22003
22004         PR lto/42425
22005         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
22006         if emitting debug information and it is either a function
22007         or a namespace decl.
22008
22009 2010-04-26  Ira Rosen  <irar@il.ibm.com>
22010
22011         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
22012         determine if the statement is vectorizable, and a macro to access it.
22013         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
22014         Skip statements that can't be vectorized. If the analysis fails,
22015         mark the statement as unvectorizable if vectorizing basic block.
22016         (vect_compute_data_refs_alignment): Likewise.
22017         (vect_verify_datarefs_alignment): Skip statements marked as
22018         unvectorizable. Add print.
22019         (vect_analyze_group_access): Skip statements that can't be
22020         vectorized. If the analysis fails, mark the statement as
22021         unvectorizable if vectorizing basic block.
22022         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
22023         * tree-vect-stmts.c (vectorizable_store): Fix the number of
22024         generated stmts for SLP.
22025         (new_stmt_vec_info): Initialize the new field.
22026         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
22027         statements marked as unvectorizable.
22028
22029 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
22030
22031         * c-common.c (flag_isoc1x): New.
22032         (flag_isoc99): Update comment.
22033         * c-common.h (flag_isoc1x): New.
22034         (flag_isoc99): Update comment.
22035         * c-cppbuiltin.c (builtin_define_float_constants): Also define
22036         __<type>_DECIMAL_DIG__.
22037         * c-opts.c (set_std_c1x): New.
22038         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
22039         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
22040         * c.opt (-std=c1x, -std=gnu1x): New options.
22041         * doc/cpp.texi: Mention -std=c1x.
22042         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
22043         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
22044         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
22045         * doc/standards.texi: Mention C1X.
22046         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
22047         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
22048         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
22049         Define for C1X.
22050
22051 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
22052
22053         * config/i386/gmon-sol2.c (_mcleanup): Change format string
22054         placeholder from 0x%x to %#x.
22055         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
22056         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
22057         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
22058         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
22059         * config/i386/i386.c (ix86_target_string): Ditto.
22060         (output_pic_addr_const): Ditto.
22061         (print_operand): Ditto.
22062
22063 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
22064
22065         * combine.c (find_split_point): Add third argument.  Use it
22066         to find nested multiply-accumulate instructions.  Adjust calls.
22067         (try_combine): Adjust call to find_split_point.
22068
22069 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
22070
22071         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
22072
22073 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
22074
22075         PR tree-optimization/41442
22076         * fold-const.c (merge_truthop_with_opposite_arm): New function.
22077         (fold_binary_loc): Call it.
22078
22079 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22080
22081         * toplev.c (general_init): Set default for fdiagnostics-show-option.
22082         * opts.c (common_handle_option): Allow disabling it.
22083         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
22084
22085 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
22086
22087         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
22088         between modes if both types are integral.
22089
22090 2010-04-23  Richard Guenther  <rguenther@suse.de>
22091
22092         PR tree-optimization/43572
22093         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
22094
22095 2010-04-23  Richard Guenther  <rguenther@suse.de>
22096
22097         PR lto/43455
22098         * tree-inline.c (tree_can_inline_p): Also check compatibility
22099         of return types.
22100
22101 2010-04-23  Martin Jambor  <mjambor@suse.cz>
22102
22103         PR tree-optimization/43846
22104         * tree-sra.c (struct access): New flag grp_assignment_read.
22105         (build_accesses_from_assign): Set grp_assignment_read.
22106         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
22107         (enum mark_read_status): New type.
22108         (analyze_access_subtree): Propagate grp_assignment_read, create
22109         accesses also if both direct_read and root->grp_assignment_read.
22110
22111 2010-04-23  Martin Jambor  <mjambor@suse.cz>
22112
22113         PR middle-end/43835
22114         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
22115         function does not have type attributes.
22116
22117 2010-04-23  Richard Guenther  <rguenther@suse.de>
22118
22119         PR lto/42653
22120         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
22121         of FUNCTION_DECLs.
22122
22123 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22124
22125         * sese.h (create_if_region_on_edge): Remove.
22126
22127         * sese.c (create_if_region_on_edge): Make static.
22128
22129         * tree-inline.c: Do not include ggc.h.
22130
22131         * expr.c: Do not include ggc.h.
22132
22133         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
22134         dependencies.
22135
22136 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
22137
22138         PR target/43744
22139         * config/sh/sh.c (find_barrier): Don't emit a constant pool
22140         in the middle of insns for casesi_worker_2.
22141
22142 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
22143
22144         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
22145
22146 2010-04-22  Ira Rosen  <irar@il.ibm.com>
22147
22148         PR tree-optimization/43842
22149         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
22150         loop unrolling in update of exit phis. Fix comment.
22151         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
22152         least two reduction statements in the loop before starting SLP
22153         analysis.
22154
22155 2010-04-22  Nick Clifton  <nickc@redhat.com>
22156
22157         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
22158
22159 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
22160
22161         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
22162         to simplify a + ~a.
22163
22164 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22165
22166         * tree-parloops.c (loop_parallel_p): New argument
22167         parloop_obstack.  Pass it down.
22168         (parallelize_loops): New variable parloop_obstack.  Initialize it,
22169         pass it down, free it.
22170
22171         * tree-loop-linear.c (linear_transform_loops): Pass down
22172         lambda_obstack.
22173
22174         * tree-data-ref.h (lambda_compute_access_matrices): New argument
22175         of type struct obstack *.
22176
22177         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
22178         scratch_obstack.  Initialize it, pass down, free it.
22179
22180         * lambda.h (lambda_loop_new): Remove.
22181         (lambda_matrix_new, lambda_matrix_inverse)
22182         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
22183         argument of type struct obstack *.
22184
22185         * lambda-trans.c (lambda_trans_matrix_new): New argument
22186         lambda_obstack.  Pass it down, use obstack allocation for ret.
22187         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
22188         it down.
22189
22190         * lambda-mat.c (lambda_matrix_get_column)
22191         (lambda_matrix_project_to_null): Remove.
22192         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
22193         allocation for mat.
22194         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
22195         lambda_obstack.
22196
22197         * lambda-code.c (lambda_loop_new): New function.
22198         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
22199         (lambda_compute_auxillary_space, lambda_compute_target_space)
22200         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
22201         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
22202         (build_access_matrix): New argument lambda_obstack.  Use obstack
22203         allocation for am.
22204         (lambda_compute_step_signs, lambda_compute_access_matrices): New
22205         argument lambda_obstack.  Pass it down.
22206
22207 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22208
22209         * optabs.h (expand_widening_mult): Declare.
22210
22211 2010-04-22  Richard Guenther  <rguenther@suse.de>
22212
22213         PR tree-optimization/43845
22214         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
22215         lookup the CALL_EXPR function and arguments.
22216
22217 2010-04-22  Nick Clifton  <nickc@redhat.com>
22218
22219         * config/stormy16/stormy16.c
22220         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
22221         * config/stormy16/stormy16.h: Tidy up formatting.
22222         (DONT_USE_BUILTIN_SETJMP): Remove definition.
22223         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
22224         (ineqbranchsi): Delete pattern.
22225         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
22226         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
22227         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
22228         stormy16-lib2-ucmpsi2.c.
22229
22230 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22231
22232         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
22233         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
22234         extra set merge_set_noclobber, and use it to relax the final test
22235         slightly.
22236         * df.h (df_simulate_find_noclobber_defs): Declare.
22237         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
22238         conditional defs.
22239         (df_simulate_find_noclobber_defs): New function.
22240
22241 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
22242
22243         * config/i386/i386.md: Use {} around multi-line preparation statements.
22244
22245 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22246
22247         * c-tree.h (push_init_level, pop_init_level, set_init_index)
22248         (process_init_element): New argument of type struct obstack *.
22249
22250         * c-typeck.c (push_init_level, pop_init_level, set_designator)
22251         (set_init_index, set_init_label, set_nonincremental_init)
22252         (set_nonincremental_init_from_string, find_init_member)
22253         (output_init_element, output_pending_init_elements)
22254         (process_init_element): New argument braced_init_obstack.  Pass it
22255         down.
22256         (push_range_stack, add_pending_init): New argument
22257         braced_init_obstack.  Use obstack allocation.
22258
22259         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
22260         braced_init_obstack.  Pass it down.
22261         (c_parser_braced_init): New variables ret, braced_init_obstack.
22262         Initialize obstack, pass it down and finally free it.
22263
22264 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22265
22266         PR middle-end/29274
22267         * tree-pass.h (pass_optimize_widening_mul): Declare.
22268         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
22269         gate_optimize_widening_mul): New static functions.
22270         (pass_optimize_widening_mul): New.
22271         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
22272         <case MULT_EXPR>: Remove support for widening multiplies.
22273         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
22274         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
22275         simplify_gen_unary rather than directly building extensions.
22276         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
22277         WIDEN_MULT_EXPR.
22278         * expmed.c (expand_widening_mult): New function.
22279         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
22280
22281 2010-04-21  Jan Hubicka  <jh@suse.cz>
22282
22283         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
22284         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
22285         * lto-wpa-fixup.c: Remove.
22286         * Makefile.in (lto-wpa-fixup.o): Remove.
22287         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
22288         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
22289         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
22290
22291 2010-04-21  Jan Hubicka  <jh@suse.cz>
22292
22293         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
22294         add write_optimization_summary, read_optimization_summary.
22295         (ipa_write_summaries_of_cgraph_node_set): Remove.
22296         (ipa_write_optimization_summaries): Declare.
22297         (ipa_read_optimization_summaries): Declare.
22298         * ipa-cp.c (pass_ipa_cp): Update.
22299         * ipa-reference.c (pass_ipa_reference): Update.
22300         * ipa-pure-const.c (pass_ipa_pure_const): Update.
22301         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
22302         Update.
22303         * ipa-inline.c (pass_ipa_inline): Update.
22304         * ipa.c (pass_ipa_whole_program): Update.
22305         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
22306         * passes.c (ipa_write_summaries_1): Do not test wpa.
22307         (ipa_write_optimization_summaries_1): New.
22308         (ipa_write_optimization_summaries): New.
22309         (ipa_read_summaries): Do not test ltrans.
22310         (ipa_read_optimization_summaries_1): New.
22311         (ipa_read_optimization_summaries): New.
22312
22313 2010-04-21  Jan Hubicka  <jh@suse.cz>
22314
22315         * lto-cgraph.c (lto_output_node): Do not output comdat groups
22316         for boundary nodes.
22317         (output_cgraph): Do not arrange comdat groups for boundary nodes.
22318
22319 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22320
22321         PR debug/40040
22322         * dwarf2out.c (add_name_and_src_coords_attributes): Add
22323         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
22324
22325 2010-04-21  Jan Hubicka  <jh@suse.cz>
22326
22327         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
22328
22329 2010-04-21  Jan Hubicka  <jh@suse.cz>
22330
22331         * varpool.c (decide_is_variable_needed): Variable is always needed
22332         during ltrans.
22333
22334 2010-04-21  Jan Hubicka  <jh@suse.cz>
22335
22336         * opts.c (decode_options): Enable pure-const pass for whopr.
22337
22338 2010-04-21  Jan Hubicka  <jh@suse.cz>
22339
22340         * cgraph.c (dump_cgraph_node): Dump also assembler name.
22341         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
22342         at WPA dumping.
22343         (cgraph_decide_inlining): Do not expect callee to be removed in all
22344         cases.
22345
22346 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
22347
22348         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
22349
22350 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
22351
22352         * config/i386/i386.md (x86_shrd): Add athlon_decode and
22353         amdfam10_decode attributes.
22354
22355 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22356
22357         PR middle-end/43570
22358         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
22359         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
22360         (lower_copyprivate_clauses): Use private var in outer
22361         context instead of original var.  Make sure the types
22362         are correct for VLAs.
22363
22364 2010-04-21  Richard Guenther  <rguenther@suse.de>
22365
22366         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
22367         to non-pointer objects.
22368
22369 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22370
22371         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
22372         last chain entry if it starts with the still current label.
22373         (add_location_or_const_value_attribute): Check that
22374         loc_list->first->next is NULL instead of comparing ->first with ->last.
22375         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
22376         to add_var_loc_to_decl.
22377
22378         * dwarf2out.c (output_call_frame_info): For dw_cie_version
22379         >= 4 add also address size and segment size fields into CIE header.
22380
22381         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
22382         long as address size is the same as sizeof (void *) and
22383         segment size is 0.
22384         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
22385         address size or segment size is unexpected, return DW_EH_PE_omit.
22386         (classify_object_over_fdes): If get_cie_encoding returned
22387         DW_EH_PE_omit, return -1.
22388         (init_object): If classify_object_over_fdes returned -1,
22389         pretend there were no FDEs at all.
22390
22391 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
22392
22393         * config/i386/i386.md (bswap<mode>2): Macroize expander from
22394         bswap{si,di}2 using SWI48 mode iterator.
22395         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
22396         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
22397         set modrm attribute of bswap insn to 0 and remove length attribute.
22398         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
22399         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
22400         set mode attribute to <MODE> and remove length attribute.
22401
22402 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
22403
22404         PR rtl-optimization/43520
22405         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
22406         zero available registers.
22407
22408 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22409
22410         * builtins.c (fold_builtin_cproj): Fold more cases.
22411
22412 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22413
22414         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
22415         (fold_builtin_1): Fold builtin cproj.
22416         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
22417         Use ATTR_CONST_NOTHROW_LIST.
22418
22419 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
22420
22421         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
22422         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
22423         ffsi2_no_cmove for !TARGET_CMOVE.
22424         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
22425         (ffssi2): Remove expander.
22426         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
22427         mode iterator.
22428         (ctz<mode>2): Ditto from ctz{si,di}2.
22429         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
22430         mode iterator.
22431         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
22432         mode iterator.
22433
22434 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
22435
22436         * dwarf2out.c (AT_linkage_name): Define.
22437         (clone_as_declaration): Handle DW_AT_linkage_name.
22438         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
22439         of DW_AT_MIPS_linkage_name.
22440         (move_linkage_attr): Likewise.
22441         (dwarf2out_finish): Likewise.
22442
22443 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
22444
22445         PR middle-end/41952
22446         * fold-const.c (fold_comparison): New folding rule.
22447
22448 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
22449
22450         * double-int.h (double_int_setbit): Declare.
22451         * double-int.c (double_int_setbit): New function.
22452         * rtl.h (immed_double_int_const): Declare.
22453         * emit-rtl.c (immed_double_int_const): New function.
22454         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
22455         and immed_double_int_const functions.
22456         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
22457         expand_copysign_bit): (Ditto.).
22458         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
22459         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
22460         * dojump.c (prefer_and_bit_test): (Ditto.).
22461         * expr.c (convert_modes, reduce_to_bit_field_precision,
22462         const_vector_from_tree): (Ditto.).
22463         * expmed.c (mask_rtx, lshift_value): (Ditto.).
22464
22465 2010-04-20  Jan Hubicka  <jh@suse.cz>
22466
22467         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
22468         (dump_cgraph_node): Dump new flags.
22469         * cgraph.h (struct cgraph_node): Add flags
22470         reachable_from_other_partition and in_other_partition.
22471         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
22472         other partition can not be removed.
22473         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
22474         the other partition must be output; silence sanity checking on
22475         leaking functions bodies from other paritition.
22476         * lto-cgraph.c (reachable_from_other_partition_p): New function.
22477         (lto_output_node): Output new flags; do not sanity check that inline
22478         clones are output; drop lto_forced_extern_inline_p code; do not mock
22479         visibility flags at partition boundaries.
22480         (add_node_to): New function.
22481         (output_cgraph): Use it to sort functions so masters appear before
22482         clones.
22483         (input_overwrite_node): Input new flags.
22484         * passes.c (ipa_write_summaries): Do not call
22485         lto_new_extern_inline_states.
22486         * lto-section-out.c (forced_extern_inline,
22487         lto_new_extern_inline_states lto_delete_extern_inline_states,
22488         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
22489         * lto-streamer.h (lto_new_extern_inline_states,
22490         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
22491         lto_forced_extern_inline_p): Kill.
22492
22493 2010-04-20  Richard Guenther  <rguenther@suse.de>
22494
22495         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
22496         from vars that can have pointers.
22497         (process_constraint): Dump useless constraints.
22498
22499 2010-04-20  Richard Guenther  <rguenther@suse.de>
22500
22501         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
22502         (dump_sa_points_to_info): Remove asserts.
22503         (init_base_vars): nothing_id isn't an escape point nor does it
22504         have pointers.
22505
22506 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
22507
22508         * tree.h (TYPE_REF_IS_RVALUE): Define.
22509         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
22510         should_move_die_to_comdat, prune_unused_types_walk): Handle
22511         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
22512         (modified_type_die, gen_reference_type_die): Emit
22513         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
22514         if TYPE_REF_IS_RVALUE and -gdwarf-4.
22515
22516 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22517
22518         PR target/43635
22519         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
22520         calls for -fpic -m31 if they have been sibcall optimized.
22521
22522 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
22523
22524         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
22525         ar.lc fixed and call-used.
22526
22527         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
22528
22529 2010-04-19  Jan Hubicka  <jh@suse.cz>
22530
22531         * opts.c (decode_options): Disable whpr incompatible passes.
22532         * lto/lto.c (lto_1_to_1_map): Skip clones.
22533         (read_cgraph_and_symbols): Do not mark everything as needed.
22534         (do_whole_program_analysis): Do map only after optimizing;
22535         set proper cgraph_state; use passmanager.
22536
22537 2010-04-19  DJ Delorie  <dj@redhat.com>
22538
22539         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
22540         POINTER_PLUS_EXPR and fix them.
22541
22542 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
22543
22544         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
22545         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
22546         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
22547         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
22548         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
22549         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
22550         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
22551         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
22552         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
22553         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
22554         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
22555
22556 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
22557
22558         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
22559         (check_cond_move_block): Likewise.
22560         (cond_move_process_if_block): Likewise.
22561         (noce_find_if_block): Improve formatting.
22562         (find_if_header): Pass 0 to memset and tweak conditions.
22563         (cond_exec_find_if_block): Fix long lines and tweak conditions.
22564
22565 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
22566
22567         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
22568         for -gdwarf-4.
22569
22570         PR middle-end/43337
22571         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
22572         with non-local decl doesn't need chain.
22573
22574 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
22575
22576         * ira-color.c (allocno_reload_assign): Avoid accumulating
22577         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
22578
22579 2010-04-19  Martin Jambor  <mjambor@suse.cz>
22580
22581         * gimple.h (create_tmp_reg): Declare.
22582         * gimplify.c (create_tmp_reg): New function.
22583         (gimplify_return_expr): Use create_tmp_reg.
22584         (gimplify_omp_atomic): Likewise.
22585         (gimple_regimplify_operands): Likewise.
22586         * tree-dfa.c (make_rename_temp): Likewise.
22587         * tree-predcom.c (predcom_tmp_var): Likewise.
22588         (reassociate_to_the_same_stmt): Likewise.
22589         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
22590         (get_replaced_param_substitute): Likewise.
22591         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
22592         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
22593         * tree-ssa-pre.c (get_representative_for): Likewise.
22594         (create_expression_by_pieces): Likewise.
22595         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
22596         (create_tailcall_accumulator): Likewise.
22597
22598 2010-04-19  Martin Jambor  <mjambor@suse.cz>
22599
22600         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
22601         new_stmt.
22602         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
22603
22604 2010-04-19  Richard Guenther  <rguenther@suse.de>
22605
22606         PR tree-optimization/43796
22607         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
22608         from SCEV in the lattice.
22609         (vrp_visit_phi_node): Dump change.
22610
22611 2010-04-19  Richard Guenther  <rguenther@suse.de>
22612
22613         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
22614         * configure: Re-generated.
22615
22616 2010-04-19  Richard Guenther  <rguenther@suse.de>
22617
22618         PR tree-optimization/43783
22619         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
22620         constant ARRAY_REF operands two and three if possible.
22621
22622 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
22623
22624         PR target/43766
22625         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
22626
22627 2010-04-19  Jie Zhang  <jie@codesourcery.com>
22628
22629         PR target/43662
22630         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
22631
22632 2010-04-19  Ira Rosen  <irar@il.ibm.com>
22633
22634         PR tree-optimization/37027
22635         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
22636         and macro to access it.
22637         (vectorizable_reduction): Add argument.
22638         (vect_get_slp_defs): Likewise.
22639         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
22640         statements for possible use in SLP.
22641         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
22642         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
22643         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
22644         add new argument.
22645         (vectorizable_reduction): Likewise.
22646         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
22647         vect_get_slp_defs.
22648         (vectorizable_type_demotion, vectorizable_type_promotion,
22649         vectorizable_store): Likewise.
22650         (vect_analyze_stmt): Update call to vectorizable_reduction.
22651         (vect_transform_stmt): Likewise.
22652         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
22653         (vect_build_slp_tree): Fix indentation. Check that there are no loads
22654         from different interleaving chains in same node.
22655         (vect_slp_rearrange_stmts): New function.
22656         (vect_supported_load_permutation_p): Allow load permutations for
22657         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
22658         inside SLP nodes if necessary.
22659         (vect_analyze_slp_instance): Handle reductions.
22660         (vect_analyze_slp): Try to build SLP instances originating from groups
22661         of reductions.
22662         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
22663         (vect_get_constant_vectors): Create initial vectors for reductions
22664         according to reduction code. Add new argument.
22665         (vect_get_slp_defs): Add new argument, pass it to
22666         vect_get_constant_vectors.
22667         (vect_schedule_slp_instance): Remove SLP tree root statements.
22668
22669 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
22670
22671         * tree.h (ENUM_IS_SCOPED): Define.
22672         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
22673         for ENUM_IS_SCOPED enums.
22674
22675 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
22676
22677         * fold-const.c (fold_comparison): Use ssizetype.
22678         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
22679         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
22680         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
22681         * tree-object-size.c (compute_object_sizes): Use size_type_node.
22682
22683         * tree.h (initialize_sizetypes): Remove parameter.
22684         (build_common_tree_nodes): Remove second parameter.
22685         * stor-layout.c (initialize_sizetypes): Remove parameter.
22686         Always create an unsigned type.
22687         (set_sizetype): Assert that the passed type is unsigned and simplify.
22688         * tree.c (build_common_tree_nodes): Remove second parameter.
22689         Adjust call to initialize_sizetypes.
22690         * c-decl.c (c_init_decl_processing): Remove second argument in call to
22691         build_common_tree_nodes.
22692
22693 2010-04-18  Matthias Klose  <doko@ubuntu.com>
22694
22695         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
22696
22697 2010-04-18  Ira Rosen  <irar@il.ibm.com>
22698
22699         PR tree-optimization/43771
22700         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
22701         load permutation doesn't have gaps.
22702
22703 2010-04-18  Jan Hubicka  <jh@suse.cz>
22704
22705         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
22706         (sse_prologue_save_insn expander): Use new pattern.
22707         (sse_prologue_save_insn1): New pattern and splitter.
22708         (sse_prologue_save_insn): Update to deal also with 64bit aligned
22709         blocks.
22710         * i386.c (setup_incoming_varargs_64): Do not compute jump
22711         destination here.
22712         (ix86_gimplify_va_arg): Update alignment needed.
22713         (ix86_local_alignment): Do not align all local arrays to 128bit.
22714
22715 2010-04-17  Jan Hubicka  <jh@suse.cz>
22716
22717         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
22718
22719 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22720
22721         * arm.md (negdi2): Remove redundant code to force values into a
22722         register.
22723
22724 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22725
22726         * arm/bpabi.S: Add EABI alignment attributes to objects.
22727         * arm/bpabi-v6m.S: Likewise.
22728         * arm/crti.asm: Likewise.
22729         * arm/crtn.asm: Likewise.
22730         * arm/lib1funcs.asm: Likewise.
22731         * arm/libunwind.S: Likewise.
22732
22733 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22734
22735         * arm-protos.h (tune_params): New structure.
22736         * arm.c (current_tune): New variable.
22737         (arm_constant_limit): Delete.
22738         (struct processors): Add pointer to the tune parameters.
22739         (arm_slowmul_tune): New tuning option.
22740         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
22741         (all_cores): Adjust to pick up the tuning model.
22742         (arm_constant_limit): New function.
22743         (arm_override_options): Select the appropriate tuning model.  Delete
22744         initialization of arm_const_limit.
22745         (arm_split_constant): Use the new constant-limit model.
22746         (arm_rtx_costs): Pick up the current tuning model.
22747         * arm.md (is_strongarm, is_xscale): Delete.
22748         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
22749         for Xscale variant architectures.
22750         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
22751
22752 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22753
22754         * config/arm/arm.c (arm_gen_constant): Remove unused variable
22755         can_shift.
22756         (arm_rtx_costs_1): Remove unused variable extra_cost.
22757         (arm_unwind_emit_set): Use variable offset.
22758         (thumb1_output_casesi): Remove unused variable flags.
22759
22760 2010-04-16  Jeff Law  <law@redhat.com>
22761
22762         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
22763         needing assignment rather than doing a two-phase assignment.  Remove
22764         unused variable 'm'.
22765
22766 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22767
22768         PR bootstrap/43767
22769         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
22770
22771 2010-04-16  Doug Kwan  <dougkwan@google.com>
22772
22773         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
22774         (next_operand_entry_id): New static variable.
22775         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
22776         (add_to_ops_vec): Assigned unique ID to operand entry.
22777         (struct oecount_s): New field ID.
22778         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
22779         (undistribute_ops_list): Assign unique IDs to oecounts.
22780         (init_reassoc): reset next_operand_entry_id.
22781
22782 2010-04-16  Doug Kwan  <dougkwan@google.com>
22783
22784         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
22785         missing left parenthesis.
22786
22787 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
22788
22789         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
22790         *btdi_rex64 using SWI48 mode iterator.
22791         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
22792         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
22793         *jcc_btdi_mask_rex64.
22794
22795 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
22796
22797         * double-int.h (tree_to_double_int): Convert to macro.
22798         * double-int.c (tree_to_double_int): Remove.
22799
22800 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22801
22802         PR debug/43762
22803         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
22804         with want_address 2 and in case a single element list might be
22805         possible, call it again with want_address 0.
22806
22807 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
22808
22809         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
22810         case 'W' print operands for HI mode.
22811         * config/h8300/h8300.h (Y0, Y2) : New constraints.
22812         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
22813         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
22814         * config/h8300/predicate.md (bit_register_indirect_operand): New.
22815
22816         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
22817
22818         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
22819         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
22820         #xx:3 and #xx:4 mode.
22821
22822         * config/h8300/h8300.md (inverted load with HImode dest): Add
22823         support for H8300SX.
22824
22825         * config/h8300/predicate.md (bit_operand): Allow immediate values that
22826         satisfy 'U' constraint.
22827
22828 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22829
22830         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
22831         * configure: Regenerate.
22832         * config.in: Regenerate.
22833         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
22834         works.
22835
22836 2010-04-16  Richard Guenther  <rguenther@suse.de>
22837
22838         * tree.h (struct tree_decl_minimal): Move pt_uid ...
22839         (struct tree_decl_common): ... here.
22840         (DECL_PT_UID): Adjust.
22841         (SET_DECL_PT_UID): Likewise.
22842         (DECL_PT_UID_SET_P): Likewise.
22843
22844 2010-04-16  Richard Guenther  <rguenther@suse.de>
22845
22846         PR tree-optimization/43572
22847         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
22848         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
22849         * tree-flow.h (is_call_clobbered): Remove.
22850         * tree-flow-inline.h (is_call_clobbered): Likewise.
22851         * tree-dfa.c (dump_variable): Do not dump call clobber state.
22852         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
22853         (execute_return_slot_opt): Adjust.
22854         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
22855         check for call clobbered vars here.
22856         (find_tail_calls): Move tailcall verification to the
22857         proper place.
22858
22859 2010-04-16  Diego Novillo  <dnovillo@google.com>
22860
22861         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
22862
22863 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
22864
22865         PR target/40603
22866         * config/arm/arm.md (cbranchqi4): New pattern.
22867         * config/arm/predicates.md (const0_operand,
22868         cbranchqi4_comparison_operator): New predicates.
22869
22870 2010-04-16  Richard Guenther  <rguenther@suse.de>
22871
22872         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
22873         (dump_gimple_stmt): Likewise.
22874
22875 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
22876
22877         * recog.h (struct recog_data): New field is_operator.
22878         (struct insn_operand_data): New field is_operator.
22879         * recog.c (extract_insn): Set recog_data.is_operator.
22880         * genoutput.c (output_operand_data): Emit code to set the
22881         is_operator field.
22882         * reload.c (find_reloads): Use it rather than testing for an
22883         empty constraint string.
22884
22885         PR target/41514
22886         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
22887         If the previous insn is a cbranchsi4_insn with the same arguments,
22888         omit the compare instruction.
22889
22890         * config/arm/arm.md (addsi3_cbranch): If destination is a high
22891         register, inputs must be low registers and we need a low register
22892         scratch.  Handle alternative 2 like alternative 3.
22893
22894 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22895
22896         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
22897         don't call get_addr on both.  If one expression is a VALUE and
22898         the other a REG, check VALUE's locs if the REG isn't among them.
22899
22900 2010-04-16  Christian Bruel  <christian.bruel@st.com>
22901
22902         * config/sh/sh.h (sh_frame_pointer_required): New function.
22903         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
22904         (flag_omit_frame_pointer) Set.
22905         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
22906         (rounded_frame_size): Adjust size with outgoing_args_size.
22907         (sh_set_return_address): Must return from stack pointer.
22908         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
22909         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
22910         (ACCUMULATE_OUTGOING_ARGS): Define.
22911         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
22912         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
22913
22914 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
22915
22916         PR target/43471
22917         * config/sh/sh.c (sh_legitimize_reload_address): Use
22918         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
22919         Remove a unneeded check for offset_base.
22920
22921 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
22922
22923         * configure: Regenerated.
22924
22925 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22926
22927         * config/s390/s390.c (s390_call_save_register_used): Switch back
22928         to HARD_REGNO_NREGS.
22929
22930 2010-04-15  Richard Guenther  <rguenther@suse.de>
22931
22932         * alias.c (alias_set_subset_of): Handle alias-set zero
22933         child properly.
22934
22935 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
22936             Julian Brown  <julian@codesourcery.com>
22937
22938         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
22939         alternatives according to use of high and low regs.
22940         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
22941         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
22942         optimizing for size on Thumb-2.
22943
22944 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
22945
22946         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
22947
22948 2010-04-15  Richard Guenther  <rguenther@suse.de>
22949
22950         * tree-ssa-structalias.c (struct variable_info): Add
22951         is_fn_info flag.
22952         (new_var_info): Initialize it.
22953         (dump_constraints): Support printing last added constraints.
22954         (debug_constraints): Adjust.
22955         (dump_constraint_graph): Likewise.
22956         (make_heapvar_for): Check for NULL cfun.
22957         (get_function_part_constraint): New function.
22958         (get_fi_for_callee): Likewise.
22959         (find_func_aliases): Properly implement IPA PTA constraints.
22960         (process_ipa_clobber): New function.
22961         (find_func_clobbers): Likewise.
22962         (insert_into_field_list_sorted): Remove.
22963         (create_function_info_for): Properly allocate vars for IPA mode.
22964         Do not use insert_into_field_list_sorted.
22965         (create_variable_info_for): Properly generate constraints for
22966         global vars in IPA mode.
22967         (dump_solution_for_var): Always dump the solution.
22968         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
22969         (find_what_var_points_to): Adjust.
22970         (pt_solution_set): Change.
22971         (pt_solution_ior_into): New function.
22972         (pt_solution_empty_p): Export.
22973         (pt_solution_includes_global): Adjust.
22974         (pt_solution_includes_1): Likewise.
22975         (pt_solutions_intersect_1): Likewise.
22976         (dump_sa_points_to_info): Check some invariants.
22977         (solve_constraints): Move constraint dumping ...
22978         (compute_points_to_sets): ... here.
22979         (ipa_pta_execute): ... and here.
22980         (compute_may_aliases): Do not re-compute points-to info
22981         locally if IPA info is available.
22982         (ipa_escaped_pt): New global var.
22983         (ipa_pta_execute): Properly implement IPA PTA.
22984         * tree-into-ssa.c (dump_decl_set): Support dumping
22985         decls not in referenced-vars.
22986         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
22987         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
22988         (dump_points_to_solution): Likewise.
22989         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
22990         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
22991         (remap_gimple_stmt): Reset call clobber/use information if necessary.
22992         (copy_decl_to_var): Copy DECL_PT_UID.
22993         (copy_result_decl_to_var): Likewise.
22994         * tree.c (make_node_stat): Initialize DECL_PT_UID.
22995         (copy_node_stat): Copy it.
22996         * tree.h (DECL_PT_UID): New macro.
22997         (SET_DECL_PT_UID): Likewise.
22998         (DECL_PT_UID_SET_P): Likewise.
22999         (struct tree_decl_minimal): Add pt_uid member.
23000         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
23001         (pt_solution_empty_p): Declare.
23002         (pt_solution_set): Adjust.
23003         (ipa_escaped_pt): Declare.
23004         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
23005         * gimple-pretty-print.c (pp_points_to_solution): New function.
23006         (dump_gimple_call): Dump call clobber/use information.
23007         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
23008         * tree-pass.h (TDF_ALIAS): New dump option.
23009         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
23010         * doc/invoke.texi (-fipa-pta): Update documentation.
23011
23012 2010-04-15  Richard Guenther  <rguenther@suse.de>
23013
23014         * Makefile.in (OBJS-common): Add gimple-fold.o.
23015         (gimple-fold.o): New rule.
23016         * tree.h (maybe_fold_offset_to_reference,
23017         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
23018         prototypes ...
23019         * gimple.h: ... here.
23020         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
23021         may_propagate_address_into_dereference): Move prototypes ...
23022         * gimple.h: ... here.
23023         * tree-ssa-ccp.c (get_symbol_constant_value,
23024         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
23025         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
23026         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
23027         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
23028         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
23029         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
23030         gimplify_and_update_call_from_tree): Move ...
23031         * gimple-fold.c: ... here.  New file.
23032         (ccp_fold_builtin): Rename to ...
23033         (gimple_fold_builtin): ... this.
23034         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
23035
23036 2010-04-15  Richard Guenther  <rguenther@suse.de>
23037
23038         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
23039         fit_double_type, force_fit_type_double, add_double_with_sign,
23040         neg_double, mul_double_with_sign, lshift_double, rshift_double,
23041         lrotate_double, rrotate_double, div_and_round_double): Move ...
23042         * double-int.c: ... here.
23043         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
23044         add_double, neg_double, mul_double_with_sign, mul_double,
23045         lshift_double, rshift_double, lrotate_double, rrotate_double,
23046         div_and_round_double): Move prototypes ...
23047         * double-int.h: ... here.
23048
23049 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
23050
23051         PR target/43742
23052         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
23053         matching constraints to ensure inputs match the output.
23054
23055 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
23056
23057         PR target/43742
23058         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
23059         in an input-only operand.
23060
23061 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
23062
23063         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
23064         (double_int_not, double_int_lshift, double_int_rshift): Declare.
23065         (double_int_negative_p): Convert to static inline function.
23066         * double-int.c (double_int_lshift, double_int_lshift): New functions.
23067         (double_int_negative_p): Remove.
23068         * tree.h (lshift_double, rshift_double):
23069         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
23070         * fold-const.c (fold_convert_const_int_from_real,
23071         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
23072         (lshift_double): Change type of arith argument to bool.
23073         (rshift_double): Change type of arith argument to bool. Correct
23074         comment.
23075         * expmed.c (mask_rtx, lshift_value): (Ditto.).
23076
23077 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
23078
23079         PR target/21803
23080         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
23081         at the start and end of the then/else blocks, and omit them from the
23082         conversion.
23083         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
23084         argument; all callers changed.  Pass zero to old_insns_match_p instead.
23085         (flow_find_head_matching_sequence): New function.
23086         (old_insns_match_p): Check REG_EH_REGION notes for calls.
23087         * basic-block.h (flow_find_cross_jump,
23088         flow_find_head_matching_sequence): Declare functions.
23089
23090 2010-04-14  Jason Merrill  <jason@redhat.com>
23091
23092         PR c++/36625
23093         * c-common.c (attribute_takes_identifier_p): New fn.
23094         * c-common.h: Declare it.
23095
23096 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23097
23098         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
23099         splitter condition.
23100         (*udivmod<mode>4): Ditto.
23101
23102 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23103
23104         * config/i386/i386.md (maxmin_int): Rename code attribute from
23105         maxminiprefix and update all users.
23106         (maxmin_float): Ditto from maxminfprefix.
23107         (logic): Ditto from logicprefix.
23108         (absneg_mnemonic): Ditto from absnegprefix.
23109         * config/i386/mmx.md: Update all users of maxminiprefix,
23110         maxminfprefix and logicprefix for rename.
23111         * config/i386/sse.md: Ditto.
23112         * config/i386/sync.md (sync_<code><mode>): Update for
23113         logicprefix rename.
23114
23115 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23116
23117         PR 42966
23118         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
23119         warnings converted to errors.
23120
23121 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23122
23123         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
23124         used insn_type variable.
23125         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
23126         to avoid set-but-not-used warning.
23127
23128 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23129
23130         * df-core.c (df_ref_debug): Change format string placeholder
23131         from 0x%x to %#x.
23132         * dwarf2asm.c (dw2_asm_output_data_raw,
23133         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
23134         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
23135         * dwarf2out.c (output_cfi, output_cfi_directive,
23136         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
23137         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
23138         Ditto.
23139         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
23140         * print-rtl.c (print_rtx): Ditto.
23141
23142 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23143
23144         PR middle-end/42694
23145         * builtins.c (expand_builtin_pow_root): New function to expand pow
23146         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
23147         series of sqrt and cbrt calls under -ffast-math.
23148         (expand_builtin_pow): Call it.
23149
23150 2010-04-14  Michael Matz  <matz@suse.de>
23151
23152         PR tree-optimization/42963
23153         * tree-cfg.c (touched_switch_bbs): New static variable.
23154         (group_case_labels_stmt): New function broken out from ...
23155         (group_case_labels): ... here, use the above.
23156         (start_recording_case_labels): Allocate touched_switch_bbs.
23157         (end_recording_case_labels): Deallocate it, call
23158         group_case_labels_stmt.
23159         (gimple_redirect_edge_and_branch): Remember index of affected BB.
23160
23161 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23162
23163         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
23164         from insn template.
23165
23166 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23167
23168         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
23169
23170 2010-04-13  Jan Hubicka  <jh@suse.cz>
23171
23172         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
23173         of optimized out static functions.
23174         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
23175         cost computation.  Also sanity check for overflows.
23176         (update_caller_keys): Update cgraph_edge_badness call; properly
23177         update fibheap and sanity check that it is up to date.
23178         (add_new_edges_to_heap): Update cgraph_edge_badness.
23179         (cgraph_decide_inlining_of_small_function): Likewise;
23180         add sanity checking that badness in heap is up to date;
23181         improve dumping of reason; Update badness of calls to the
23182         offline copy of function currently inlined; dump badness
23183         of functions not inlined because of unit growth limits.
23184
23185 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
23186
23187         PR middle-end/32628
23188         * c-common.c (pointer_int_sum): Disregard overflow that occured only
23189         because of sign-extension change when converting to sizetype here...
23190         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
23191
23192         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
23193         the folding to constants.  Remove redundant final conversion.
23194         (fold_binary) <associate>: Do not associate if the re-association of
23195         constants alone overflows.
23196         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
23197         to the end of the list.
23198         (multiple_of_p) <COND_EXPR>: New case.
23199
23200 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23201
23202         * opt-functions.awk (opt_sanitized_name): New.
23203         (opt_enum): New.
23204         * optc-gen.awk: Use it
23205         * opth-gen.awk: Use it.
23206
23207 2010-04-13  Martin Jambor  <mjambor@suse.cz>
23208
23209         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
23210         (sra_modify_assign): Delete stmts loading dead data even if racc has no
23211         children.  Call replace_uses_with_default_def_ssa_name to handle
23212         SSA_NAES on lhs.
23213
23214 2010-04-13  Michael Matz  <matz@suse.de>
23215
23216         PR middle-end/43730
23217         * builtins.c (expand_builtin_interclass_mathfn): Also create
23218         a register if the predicate doesn't match.
23219
23220 2010-04-13  Diego Novillo  <dnovillo@google.com>
23221
23222         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
23223         * c-pch.c: Include timevar.h.
23224         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
23225         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
23226         * ggc-common.c: Include timevar.h.
23227         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
23228         * timevar.def (TV_PCH_SAVE): Define.
23229         (TV_PCH_CPP_SAVE): Define.
23230         (TV_PCH_PTR_REALLOC): Define.
23231         (TV_PCH_PTR_SORT): Define.
23232         (TV_PCH_RESTORE): Define.
23233         (TV_PCH_CPP_RESTORE): Define.
23234
23235 2010-04-13  Michael Matz  <matz@suse.de>
23236
23237         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
23238         into MINUS_EXPRs.
23239         (can_reassociate_p): New function.
23240         (break_up_subtract_bb, reassociate_bb): Use it.
23241
23242 2010-04-13  Richard Guenther  <rguenther@suse.de>
23243
23244         PR bootstrap/43737
23245         * builtins.c (c_readstr): Fix assert.
23246
23247 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
23248
23249         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
23250         when generating cltd insn.
23251
23252         (*ashl<mode>3_1): Remove special handling for register operand 2.
23253         (*ashlsi3_1_zext): Ditto.
23254         (*ashlhi3_1): Ditto.
23255         (*ashlhi3_1_lea): Ditto.
23256         (*ashlqi3_1): Ditto.
23257         (*ashlqi3_1_lea): Ditto.
23258         (*<shiftrt_insn><mode>3_1): Ditto.
23259         (*<shiftrt_insn>si3_1_zext): Ditto.
23260         (*<shiftrt_insn>qi3_1_slp): Ditto.
23261         (*<rotate_insn><mode>3_1): Ditto.
23262         (*<rotate_insn>si3_1_zext): Ditto.
23263         (*<rotate_insn>qi3_1_slp): Ditto.
23264
23265 2010-04-13  Richard Guenther  <rguenther@suse.de>
23266
23267         * tree-ssa-structalias.c (callused_id): Remove.
23268         (call_stmt_vars): New.
23269         (get_call_vi): Likewise.
23270         (lookup_call_use_vi): Likewise.
23271         (lookup_call_clobber_vi): Likewise.
23272         (get_call_use_vi): Likewise.
23273         (get_call_clobber_vi): Likewise.
23274         (make_transitive_closure_constraints): Likewise.
23275         (handle_const_call): Adjust to do per-call call-used handling.
23276         (handle_pure_call): Likewise.
23277         (find_what_var_points_to): Remove general callused handling.
23278         (init_base_vars): Likewise.
23279         (init_alias_vars): Initialize call_stmt_vars.
23280         (compute_points_to_sets): Process call-used and call-clobbered
23281         vars for call statements.
23282         (delete_points_to_sets): Free call_stmt_vars.
23283
23284 2010-04-13  Richard Guenther  <rguenther@suse.de>
23285
23286         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
23287         Only add RW dependence for dependence distance zero.
23288         Adjust maximal vectorization factor according to dependences.
23289         Move alignment handling ...
23290         (vect_find_same_alignment_drs): ... here.  New function.
23291         (vect_analyze_data_ref_dependences): Adjust.
23292         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
23293         (vect_analyze_data_refs): Adjust minimal vectorization factor
23294         according to data references.
23295         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
23296         dependences before determining the vectorization factor.
23297         Analyze alignment after determining the vectorization factor.
23298         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
23299         dependences before alignment.
23300         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
23301         Adjust prototype.
23302         (vect_analyze_data_refs): Likewise.
23303         (MAX_VECTORIZATION_FACTOR): New define.
23304
23305 2010-04-13  Duncan Sands  <baldrick@free.fr>
23306
23307         * except.h (lang_eh_type_covers): Remove.
23308         * except.c (lang_eh_type_covers): Likewise.
23309
23310 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23311             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23312
23313         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
23314         * config/s390/s390.c: Replace UNTIS_PER_WORD with
23315         UNITS_PER_LONG where it is ABI relevant.
23316         (s390_return_addr_rtx): Likewise.
23317         (s390_back_chain_rtx): Likewise.
23318         (s390_frame_area): Likewise.
23319         (s390_frame_info): Likewise.
23320         (s390_initial_elimination_offset): Likewise.
23321         (save_gprs): Likewise.
23322         (s390_emit_prologue): Likewise.
23323         (s390_emit_epilogue): Likewise.
23324         (s390_function_arg_advance): Likewise.
23325         (s390_function_arg): Likewise.
23326         (s390_va_start): Likewise.
23327         (s390_gimplify_va_arg): Likewise.
23328         (s390_function_profiler): Likewise.
23329         (s390_optimize_prologue): Likewise.
23330         (s390_rtx_costs): Likewise.
23331         (s390_secondary_reload): Likewise.
23332         (s390_promote_function_mode): Likewise.
23333         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
23334         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
23335         registers available.
23336         (s390_unwind_word_mode): New function.
23337         (s390_function_value): Split 64 bit values into register pair if
23338         used as return value.
23339         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
23340         function call parameters.  Handle parallels.
23341         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
23342         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
23343         (DWARF_CIE_DATA_ALIGNMENT): New macro.
23344         (s390_expand_setmem): Remove unused variable src_addr.
23345         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
23346         deal with 64 bit registers.
23347         * config/s390/s390.h: Define __zarch__ predefined macro.
23348         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
23349         (UNITS_PER_LONG): New macro.
23350         * libjava/include/s390-signal.h: Define extended ucontext
23351         structure containing the upper halfs of the 64 bit registers.
23352
23353 2010-04-13  Simon Baldwin  <simonb@google.com>
23354
23355         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
23356
23357 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
23358
23359         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
23360         rvalue on the RHS if the LHS is of a non-renamable type.
23361         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
23362
23363 2010-04-13  Matthias Klose  <doko@ubuntu.com>
23364
23365         * gcc.c (cc1_options): Handle -iplugindir before processing
23366         the cc1 spec. Only add -iplugindir once.
23367         (cpp_unique_options): Add -iplugindir option if -fplugin* options
23368         found.
23369         * common.opt (iplugindir): Remove `Separate' property, initialize.
23370         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
23371         option.
23372         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
23373         (distclean): Remove plugin dir.
23374         * doc/invoke.texi: Document -iplugindir.
23375
23376 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
23377
23378         * doc/plugins.texi (Loading Plugins): Document short
23379         -fplugin=foo option.
23380         (Plugin API): Mention default_plugin_dir_name function.
23381
23382         * gcc.c (find_file_spec_function): Add new declaration.
23383         (static_spec_func): Use it for "find-file".
23384         (find_file_spec_function): Add new function.
23385         (cc1_options): Add -iplugindir option if -fplugin* options found.
23386
23387         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
23388
23389         * plugin.c (add_new_plugin): Updated comment, and handle short
23390         plugin name.
23391         (default_plugin_dir_name): Added new function.
23392
23393         * common.opt (iplugindir): New option to set the plugin directory.
23394
23395 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
23396
23397         * config/i386/i386.md (any_rotate): New code iterator.
23398         (rotate_insn): New code attribute.
23399         (rotate): Ditto.
23400         (SWIM124): New mode iterator.
23401         (<rotate_insn>ti3): New expander.
23402         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
23403         any_rotate code iterator.
23404         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
23405         using any_rotate code iterator and SWIM124 mode iterator.
23406         (ix86_rotlti3): New insn_and_split pattern.
23407         (ix86_rotrti3): Ditto.
23408         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
23409         ix86_rotl{di,ti}3 patterns.
23410         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
23411         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
23412         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
23413         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
23414         code iterator and SWI mode iterator.
23415         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
23416         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
23417         code iterator.
23418         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
23419         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
23420         (bswap rotatert splitter): Add splitter.
23421         (bswap splitter): Macroize splitter using any_rotate code iterator.
23422         Add insn predicate to split only for TARGET_USE_XCHGB or when
23423         optimizing function for size.
23424
23425 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23426
23427         * config/pa/pa.c (emit_move_sequence): Remove use of
23428         deleted variable flag_argument_noalias.
23429
23430 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23431
23432         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
23433         configurations.
23434         Add to unsupported targets list.
23435         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
23436         sparc*-sun-solaris2.[567]* from target lists.
23437         * configure: Regenerate.
23438         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
23439         removal.
23440         Remove Solaris 7 patch references.
23441         (Specific, sparc-sun-solaris2.7): Removed.
23442         (sparc-sun-solaris2*): Update Solaris 7 example.
23443         (sparc64-*-solaris2*): Likewise.
23444
23445 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23446
23447         * config.build (alpha*-dec-osf4*): Remove.
23448         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
23449         of obsolete configurations.
23450         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
23451         support.
23452         * config/alpha/t-osf4: Renamed to ...
23453         * config/alpha/t-osf5: ... this.
23454         * config/alpha/osf.h: Renamed to ...
23455         * config/alpha/osf5.h: ... this.
23456         Merged old osf5.h contents.
23457         Update comments.
23458         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
23459         (EXTRA_SPECS): Removed.
23460         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
23461         reflect removal of Tru64 UNIX V4.0/V5.0 support.
23462         Document that.
23463
23464 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23465
23466         * doc/contrib.texi (Contributors, Rainer Orth): Update.
23467
23468 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
23469
23470         PR/43702
23471         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
23472         __thiscall convention.
23473
23474 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23475
23476         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
23477         orig_base.
23478         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
23479
23480 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23481
23482         * function.c (assign_parms_initialize_all): Add unused attribute
23483         to fntype.
23484
23485 2010-04-12  Richard Guenther  <rguenther@suse.de>
23486
23487         * gsstruct.def (GSS_CALL): New.
23488         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
23489         * gimple.h: Include tree-ssa-alias.h.
23490         (struct gimple_statement_call): New.
23491         (union gimple_statement_struct_d): Add gimple_call member.
23492         (gimple_call_reset_alias_info): Declare.
23493         (gimple_call_use_set): New function.
23494         (gimple_call_clobber_set): Likewise.
23495         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
23496         * gimple.c (gimple_call_reset_alias_info): New function.
23497         (gimple_build_call_1): Call it.
23498         * lto-streamer-in.c (input_gimple_stmt): Likewise.
23499         * tree-inline.c (remap_gimple_stmt): Likewise.
23500         (expand_call_inline): Remove callused handling.
23501         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
23502         * tree-dfa.c (dump_variable): Likewise.
23503         * tree-parloops.c (parallelize_loops): Likewise.
23504         * tree-ssa.c (init_tree_ssa): Likewise.
23505         (delete_tree_ssa): Likewise.
23506         * tree-flow-inline.h (is_call_used): Remove.
23507         * tree-flow.h (struct gimple_df): Remove callused member.
23508         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
23509         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
23510         (ref_maybe_used_by_call_p_1): Simplify.
23511         (call_may_clobber_ref_p_1): Likewise.
23512         * tree-ssa-structalias.c (compute_points_to_sets): Set
23513         the call stmt used and clobbered sets.
23514         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
23515         (find_tail_calls): Verify the tail call.
23516
23517 2010-04-12  Richard Guenther  <rguenther@suse.de>
23518
23519         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
23520         single-iteration always-inline inlining.
23521         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
23522         (cgraph_decide_inlining): Do not handle always-inline specially.
23523         (try_inline): Remove always-inline cycle detection special case.
23524         Do not recurse on always-inlines.
23525         (cgraph_early_inlining): Do not iterate if not optimizing.
23526         (cgraph_gate_early_inlining): remove.
23527         (pass_early_inline): Run unconditionally.
23528         (gate_cgraph_decide_inlining): New function.
23529         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
23530         not inlining or optimizing.
23531         (cgraph_decide_inlining_of_small_functions): Also consider
23532         always-inline functions.
23533         (cgraph_default_inline_p): Return true for nodes which should
23534         disregard inline limits.
23535         (estimate_function_body_sizes): Assume zero size and time for
23536         nodes which are marked as disregarding inline limits.
23537         (cgraph_decide_recursive_inlining): Do not perform recursive
23538         inlining on always-inline nodes.
23539
23540 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
23541
23542         PR bootstrap/43699
23543         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
23544         for exprs satisfying handled_component_p.
23545
23546 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
23547
23548         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
23549         non-constant aggregate elements.
23550
23551         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
23552         is a real initialization.
23553
23554 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
23555
23556         PR c/36774
23557         * c-decl.c (start_function): Move forward check for nested function.
23558
23559 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
23560
23561         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
23562         * config/sh/sh.c: Include reload.h.
23563         (sh_legitimize_reload_address): New.
23564         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
23565         sh_legitimize_reload_address.
23566
23567 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
23568
23569         * config/sh/sh.md (*movqi_pop): New insn pattern.
23570         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
23571
23572 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23573
23574         * config/i386/i386.md (any_shiftrt): New code iterator.
23575         (shiftrt_insn): New code attribute.
23576         (shiftrt): Ditto.
23577         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
23578         using any_shiftrt code iterator.
23579         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
23580         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
23581         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
23582         pattern from corresponding peephole2 patterns.
23583         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
23584         using any_shiftrt code iterator.
23585         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
23586         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
23587         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
23588         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
23589         *{ashr,lshr}<mode>3_cmp_zext.
23590         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
23591
23592 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23593
23594         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
23595         scratch register.
23596         (*lshr<mode>3_cconly): Ditto.
23597
23598 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23599
23600         * config/i386/i386.md (lshr<mode>3): Macroize expander from
23601         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23602         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23603         pattern from *lshr{di,ti}3_1 and corresponding splitters using
23604         DWI mode iterator.
23605         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23606         from corresponding peephole2 patterns.
23607         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
23608         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
23609         and *lshrdi3_1_rex64 using SWI mode iterator.
23610         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
23611         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
23612         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
23613         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
23614         and *lshrdi3_cmp_rex64 using SWI mode iterator.
23615         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
23616         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
23617         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
23618         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
23619         SWI mode iterator.
23620
23621 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
23622
23623         * config/i386/i386.md (ashr<mode>3): Macroize expander from
23624         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23625         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23626         pattern from *ashr{di,ti}3_1 and corresponding splitters using
23627         DWI mode iterator.
23628         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23629         from corresponding peephole2 patterns.
23630         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
23631         (ashrsi3_cvt): Rename from ashrsi3_31.
23632         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
23633         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
23634         and x86_64_shift_adj_3 using SWI48 mode iterator.
23635         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
23636         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
23637         and *ashrdi3_1_rex64 using SWI mode iterator.
23638         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
23639         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
23640         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
23641         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
23642         and *ashrdi3_cmp_rex64 using SWI mode iterator.
23643         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
23644         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
23645         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
23646         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
23647         SWI mode iterator.
23648         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
23649         * config/i386/i386.c (ix86_split_ashr): Update for renamed
23650         x86_shift<mode>_adj_3 expanders.
23651
23652 2010-04-10  Wei Guozhi  <carrot@google.com>
23653
23654         PR target/42601
23655         * config/arm/arm.c (arm_pic_static_addr): New function.
23656         (legitimize_pic_address): Call arm_pic_static_addr when it detects
23657         a static symbol.
23658         (arm_output_addr_const_extra): Output expression for new pattern.
23659         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
23660
23661 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
23662
23663         * ira-costs.c (record_reg_classes): Ignore alternatives that are
23664         not enabled.
23665
23666         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
23667         * web.c: Include "insn-config.h" and "recog.h".
23668         (union_match_dups): New function.
23669         (web_main): Call it.
23670         (union_defs): Don't try to recognize match_dups.
23671
23672         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
23673         if doing so would replace the entire pattern.
23674
23675 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
23676
23677         PR target/43707
23678         PR target/43709
23679         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
23680         and splitter pattern.  Change splitter operand 1 predicate to
23681         nonmemory_operand.
23682
23683 2010-04-09  Martin Jambor  <mjambor@suse.cz>
23684
23685         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
23686         lattices are addresses of CONST_DECLs with the same initial value.
23687         (ipcp_print_all_lattices): Print values of CONST_DECLs.
23688         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
23689
23690 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
23691             Bernd Schmidt  <bernds@codesourcery.com>
23692
23693         * loop-invariant.c (replace_uses): New static function.
23694         (move_invariant_reg): Use it to ensure we can replace the uses.
23695
23696 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
23697
23698         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
23699         function template.
23700         (picochip_override_options): Enable section anchors only above -O1.
23701         (picochip_reorg): Fixed a couple of build warnings.
23702
23703 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23704
23705         * configure.ac (plugin -rdynamic test): Log result.
23706         * configure: Regenerate.
23707         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
23708         (RDYNAMIC_SPEC): Define.
23709         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
23710
23711 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23712
23713         * configure.ac: Determine Sun ld version numbers.
23714         (comdat_group): Restrict GNU ld version checks to gld.
23715         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
23716         (enable_comdat): Support --enable-comdat.
23717         * configure: Regenerate.
23718         * doc/install.texi (Configuration): Document --enable-comdat.
23719
23720 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23721
23722         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
23723         * config/sol2-gld.h: ... here.
23724         * config.gcc (sparc*-*-solaris2*): Reflect this.
23725         (i[34567]86-*-solaris2*): Use it.
23726
23727 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
23728
23729         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
23730         setup_clocks_p.
23731         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
23732
23733 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23734
23735         PR 42965
23736         * diagnostic.c (diagnostic_initialize): Initialize
23737         some_warnings_are_errors.
23738         (diagnostic_finish): New.
23739         (diagnostic_action_after_output): Call it before exiting.
23740         (diagnostic_report_diagnostic): Do not print message here. Set
23741         some_warnings_are_errors.
23742         * diagnostic.h (diagnostic_context): Delete
23743         issue_warnings_are_errors_message. Add some_warnings_are_errors.
23744         (diagnostic_finish): Declare.
23745         * toplev.c (toplev_main): Call it before exit.
23746
23747 2010-04-09  Jason Merrill  <jason@redhat.com>
23748
23749         PR c++/42623
23750         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
23751         for incomplete type.
23752
23753         PR c++/41788
23754         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
23755         based on a warning flag.
23756
23757 2010-04-09  Richard Guenther  <rguenther@suse.de>
23758
23759         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
23760
23761 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
23762
23763         PR bootstrap/43684
23764         * varasm.c (default_assemble_visibility): Wrap vars that are
23765         set, but unused, by targets without GAS.
23766         * config/rs6000/rs6000.c (paired_emit_vector_compare):
23767         Remove set, but unused, vars.
23768         (rs6000_legitimize_tls_address): Likewise.
23769         (altivec_expand_dst_builtin): Likewise.
23770         * config/darwin.c (machopic_classify_symbol): Likewise.
23771         (machopic_indirection_name): Likewise.
23772
23773 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
23774
23775         * config/i386/i386.md (DWI): New mode iterator.
23776         (S): New mode attribute.
23777         (shift_operand): Ditto.
23778         (shift_immediate_operand): Ditto.
23779         (ashl_input_operand): Ditto.
23780         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
23781         using SDWIM mode iterator.
23782         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23783         pattern from *ashl{di,ti}3_1 and corresponding splitters using
23784         DWI mode iterator.
23785         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
23786         from corresponding peephole2 patterns.
23787         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
23788         and x86_64_shift_adj_1 using SWI48 mode iterator.
23789         (x86_shift<mode>_adj_2): Ditto.
23790         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
23791         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
23792         using SWI48 mode iterator.
23793         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
23794         *ashldi3_cmp_rex64 using SWI mode iterator.
23795         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
23796         *ashldi3_cconly_rex64 using SWI mode iterator.
23797         * config/i386/i386.c (ix86_split_ashl): Update for renamed
23798         x86_shift<mode>_adj_{1,2}.
23799         (ix86_split_ashr): Ditto.
23800         (ix86_split_lshr): Ditto.
23801
23802 2010-04-09  Richard Guenther  <rguenther@suse.de>
23803
23804         * target.h (builtin_conversion): Pass in input and output types.
23805         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
23806         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
23807         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
23808         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
23809
23810         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
23811         Handle AVX modes.
23812         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
23813
23814 2010-04-09  Richard Guenther  <rguenther@suse.de>
23815
23816         PR target/43152
23817         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
23818
23819 2010-04-09  Richard Guenther  <rguenther@suse.de>
23820
23821         * tree-vectorizer.h (struct _stmt_vec_info): Document
23822         that vectype is the type of the LHS.
23823         (supportable_widening_operation, supportable_narrowing_operation):
23824         Get both input and output vector types as arguments.
23825         (vect_is_simple_use_1): Declare.
23826         (get_same_sized_vectype): Likewise.
23827         * tree-vect-loop.c (vect_determine_vectorization_factor):
23828         Set STMT_VINFO_VECTYPE to the vector type of the def.
23829         (vectorizable_reduction): Adjust.
23830         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
23831         Adjust.  Specify the output vector type.
23832         (vect_pattern_recog_1): Adjust.
23833         * tree-vect-stmts.c (get_same_sized_vectype): New function.
23834         (vectorizable_call): Adjust.
23835         (vectorizable_conversion): Likewise.
23836         (vectorizable_operation): Likewise.
23837         (vectorizable_type_demotion): Likewise.
23838         (vectorizable_type_promotion): Likewise.
23839         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
23840         the def.
23841         (vect_is_simple_use_1): New function.
23842         (supportable_widening_operation): Get both input and output
23843         vector types.
23844         (supportable_narrowing_operation): Likewise.
23845         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
23846
23847 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
23848
23849         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
23850         __thiscall and _thiscall as predefined macros.
23851         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
23852         thiscall attribute handling.
23853         (ix86_comp_type_attributes): Likewise.
23854         (ix86_function_regparm): Likewise.
23855         (ix86_return_pops_args): Likewise.
23856         (init_cumulative_args): Likewise.
23857         (find_drap_reg): Likewise.
23858         (ix86_static_chain): Likewise.
23859         (x86_this_parameter): Likewise.
23860         (x86_output_mi_thunk): Likewise.
23861         (ix86_attribute_table): Add description for thiscall attribute.
23862         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
23863         * doc/extend.texi: Add documentation for thiscall.
23864
23865 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23866
23867         PR c++/28584
23868         * c.opt (Wint-to-pointer-cast): Available in C++.
23869         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
23870
23871 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
23872
23873         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
23874         * calls.c (expand_call): Pass the function type to aggregate_value_p.
23875         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
23876         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
23877         function type instead.  Reorder and simplify checks.
23878
23879         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
23880
23881 2010-04-08  Jing Yu  <jingyu@google.com>
23882             Zdenek Dvorak  <ook@ucw.cz>
23883
23884         PR tree-optimization/42720
23885         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
23886         loop unswitch conditions here from ...
23887         (tree_unswitch_single_loop): ... here.
23888
23889 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
23890
23891         * tree-if-conv.c: Fix comments and simplify logic.
23892
23893 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
23894
23895         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
23896         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
23897         (main_tree_if_conversion): Update call to tree_if_conversion.
23898
23899 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23900
23901         PR 42485
23902         * doc/invoke.texi (-b,-V): Delete.
23903         * doc/tm.texi: Do not mention -b.
23904         * gcc.c (display_help): Delete -b and -V.
23905         (process_command): Delete -b and -V.
23906         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
23907
23908 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
23909             Wolfgang Gellerich  <gellerich@de.ibm.com>
23910
23911         Implement target hook for loop unrolling
23912         * target.h (loop_unroll_adjust): Add a new target hook function.
23913         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
23914         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
23915         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
23916         (s390_loop_unroll_adjust): Implement the new target hook for s390.
23917         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
23918         target hook.
23919         (decide_unroll_stupid): Likewise.
23920
23921 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23922
23923         PR target/43643
23924         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
23925
23926 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23927
23928         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
23929         (Specific, *-*-solaris2*): Likewise.
23930         Don't prefer Sun as over GNU as.
23931
23932 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
23933
23934         * config/s390/s390.c (override_options): Adjust the z10 defaults
23935         for max-unroll-times, max-completely-peeled-insns
23936         and max-completely-peel-times.
23937
23938 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23939
23940         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
23941         instructions for z10.
23942         (s390_expand_setmem): Likewise.
23943         (s390_expand_cmpmem): Likewise.
23944
23945 2010-04-08  Richard Guenther  <rguenther@suse.de>
23946
23947         PR tree-optimization/43679
23948         * tree-ssa-pre.c (eliminate): Only propagate copies.
23949
23950 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
23951
23952         PR bootstrap/43681
23953         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
23954         set but not used variable warning.
23955
23956 2010-04-08  Wei Guozhi  <carrot@google.com>
23957
23958         PR target/41653
23959         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
23960         (arm_size_rtx_costs): Call the new function when optimized for size.
23961
23962 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
23963
23964         PR debug/43670
23965         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
23966         op0 is not a MEM, just return NULL instead of assertion
23967         failure.
23968         (discover_nonconstant_array_refs): Don't walk debug stmts.
23969
23970 2010-04-08  Doug Kwan  <dougkwan@google.com>
23971
23972         * configure.ac: Recognize gold and do not use its version number
23973         to test ld features.
23974         * configure: Regenerate.
23975
23976 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
23977
23978         PR middle-end/40815
23979         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
23980         (negate_value): Move code to push elements to broken_up_substracts ...
23981         (eliminate_plus_minus_pair): ... here.  Push operands that have no
23982         negative pair to plus_negates.
23983         (repropagate_negates, init_reassoc, fini_reassoc): Update.
23984
23985 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23986
23987         * doc/install.texi (Configuration): Move description of
23988         --enable-lto, --with-libelf*, --enable-gold from Java section to
23989         general section.
23990
23991         * doc/generic.texi (Working with declarations)
23992         (Function Properties, C and C++ Trees): Fix typos.
23993         * doc/sourcebuild.texi (Top Level): Likewise.
23994
23995 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
23996
23997         PR c/18624
23998         * tree.h (DECL_READ_P): Define.
23999         (struct tree_decl_common): Add decl_read_flag.
24000         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
24001         a set but not used warning.
24002         (merge_decls): Merge DECL_READ_P flag.
24003         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
24004         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
24005         * c-common.c (handle_used_attribute, handle_unused_attribute):
24006         Likewise.
24007         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
24008         New prototypes.
24009         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
24010         New functions.
24011         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
24012         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
24013         c_parser_binary_expression, c_parser_cast_expression,
24014         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
24015         Call default_function_array_read_conversion instead of
24016         default_function_array_conversion where needed.
24017         (c_parser_unary_expression, c_parser_conditional_expression,
24018         c_parser_postfix_expression_after_primary, c_parser_initelt):
24019         Likewise.  Call mark_exp_read where needed.
24020         (c_parser_statement_after_labels, c_parser_asm_operands,
24021         c_parser_typeof_specifier, c_parser_sizeof_expression,
24022         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
24023         where needed.
24024         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
24025         New.
24026         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
24027         (warn_unused_but_set_parameter): Default to warn_unused
24028         && extra_warnings.
24029         * doc/invoke.texi: Document -Wunused-but-set-variable and
24030         -Wunused-but-set-parameter.
24031
24032         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
24033         used count variable.
24034         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
24035         when operandN variables aren't used in the body of the expander
24036         or splitter.
24037         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
24038         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
24039         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
24040         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
24041         FOR_EACH_IMM_USE_ON_STMT): Likewise.
24042         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
24043         * tree.c (PROCESS_ARG): Likewise.
24044
24045 2010-04-07  Simon Baldwin  <simonb@google.com>
24046
24047         * diagnostic.h (diagnostic_override_option_index): New macro to
24048         set a diagnostic's option_index.
24049         * c-tree.h (c_cpp_error): Add warning reason argument.
24050         * opts.c (_warning_as_error_callback): New.
24051         (register_warning_as_error_callback): Store callback for
24052         warnings enabled via enable_warning_as_error.
24053         (enable_warning_as_error): Call callback, minor code tidy.
24054         * opts.h (register_warning_as_error_callback): Declare.
24055         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
24056         response to -Werror=.
24057         (c_common_init_options): Register warning_as_error_callback in opts.c.
24058         * common.opt: Add -Wno-cpp option.
24059         * c-common.c (struct reason_option_codes_t): Map cpp warning
24060         reason codes to gcc option indexes.
24061         * (c_option_controlling_cpp_error): New function, lookup the gcc
24062         option index for a cpp warning reason code.
24063         * (c_cpp_error): Add warning reason argument, call
24064         c_option_controlling_cpp_error for diagnostic_override_option_index.
24065         * doc/invoke.texi: Document -Wno-cpp.
24066
24067 2010-04-07  Richard Guenther  <rguenther@suse.de>
24068
24069         * ipa-reference.c (mark_load): Use get_base_address.
24070         (mark_store): Likewise.
24071
24072         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
24073         inserting GIMPLE_NOPs into the IL.
24074         * tree-ssa-structalias.c (get_constraint_for_component_ref):
24075         Explicitly strip handled components and indirect references.
24076
24077         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
24078         folding address expressions.
24079         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
24080         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
24081         operand_equal_p to compare decls.
24082         (ptr_deref_may_alias_decl_p): Likewise.
24083         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
24084         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
24085         Handle reversed comparison ops.
24086         * tree-sra.c (asm_visit_addr): Use get_base_address.
24087         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
24088         * ipa-reference.c (mark_address): Use get_base_address.
24089
24090 2010-04-07  Richard Guenther  <rguenther@suse.de>
24091
24092         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
24093         Propagate constants everywhere.
24094
24095 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
24096
24097         PR debug/43516
24098         * tree.c (MAX_INT_CACHED_PREC): Define.
24099         (nonstandard_integer_type_cache): New array.
24100         (build_nonstandard_integer_type): Cache results for precision
24101         <= MAX_INT_CACHED_PREC.
24102
24103 2010-04-07  Richard Guenther  <rguenther@suse.de>
24104
24105         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
24106         -fargument-noalias-global, -fargument-noalias-anything): Remove.
24107         * common.opt: Likewise.
24108         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
24109         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
24110         (nonoverlapping_memrefs_p): Likewise.
24111         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
24112         * opts.c (common_handle_option): Handle OPT_fargument_alias,
24113         OPT_fargument_noalias, OPT_fargument_noalias_anything and
24114         OPT_fargument_noalias_global for backward compatibility.
24115
24116 2010-04-07  Richard Guenther  <rguenther@suse.de>
24117
24118         PR tree-optimization/43270
24119         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
24120         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
24121         * tree-ssa-pre.c (phi_translate_1): Adjust.
24122         (fully_constant_expression): Split out vn_reference handling to ...
24123         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
24124         Fold reads from constant strings.
24125         (vn_reference_lookup): Handle fully constant references.
24126         (vn_reference_lookup_pieces): Likewise.
24127         * Makefile.in (expmed.o-warn): Add -Wno-error.
24128
24129 2010-04-07  Martin Jambor  <mjambor@suse.cz>
24130
24131         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
24132
24133 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
24134
24135         PR driver/41594
24136         * gcc.c: Add -static-libstdc++ to list of recognized options.
24137
24138 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24139
24140         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
24141
24142 2010-04-07  Richard Guenther  <rguenther@suse.de>
24143
24144         PR middle-end/42617
24145         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
24146         bases build simple mem attributes to retain points-to information.
24147
24148 2010-04-07  Richard Guenther  <rguenther@suse.de>
24149
24150         PR middle-end/42617
24151         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
24152         preserve points-to related information.
24153
24154 2010-04-07  Richard Guenther  <rguenther@suse.de>
24155
24156         PR middle-end/42617
24157         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
24158         discard plain indirect references.
24159         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
24160         * tree.c (tree_nop_conversion): Likewise.
24161
24162 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
24163
24164         PR debug/43628
24165         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
24166
24167 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
24168
24169         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
24170         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
24171
24172 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
24173
24174         * tree-if-conv.c: Fix indentation and comments.
24175
24176 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
24177
24178         * tree-if-conv.c: Sort static functions in topological order.
24179
24180 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
24181
24182         * tree-if-conv.c: Fix indentation and comments.
24183
24184 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24185
24186         PR middle-end/43519
24187         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
24188         lang_hooks.types.type_for_size instead of
24189         build_nonstandard_integer_type.
24190         When converting an unsigned type to signed, double its precision.
24191         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
24192         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
24193         (graphite_create_new_loop_guard): When ub + 1 wraps around,
24194         use lb <= ub.
24195
24196 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24197
24198         PR middle-end/43519
24199         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
24200         POINTER_PLUS_EXPR for pointer types.
24201
24202 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24203
24204         PR middle-end/43519
24205         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
24206         * graphite-clast-to-gimple.c: Include langhooks.h.
24207         (max_signed_precision_type): New.
24208         (max_precision_type): Takes two types as arguments.
24209         (precision_for_value): New.
24210         (precision_for_interval): New.
24211         (gcc_type_for_interval): New.
24212         (gcc_type_for_value): New.
24213         (gcc_type_for_clast_term): New.
24214         (gcc_type_for_clast_red): New.
24215         (gcc_type_for_clast_bin): New.
24216         (gcc_type_for_clast_expr): Split up into several functions.
24217         (gcc_type_for_clast_eq): Rewritten.
24218         (compute_bounds_for_level): New.
24219         (compute_type_for_level_1): New.
24220         (compute_type_for_level): New.
24221         (gcc_type_for_cloog_iv): Removed.
24222         (gcc_type_for_iv_of_clast_loop): Rewritten.
24223         (graphite_create_new_loop): Compute the lower and upper bound types
24224         with gcc_type_for_clast_expr.
24225         (graphite_create_new_loop_guard): Same.
24226         (find_cloog_iv_in_expr): Removed.
24227         (compute_cloog_iv_types_1): Removed.
24228         (compute_cloog_iv_types): Removed.
24229         (gloog): Do not call compute_cloog_iv_types.
24230         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
24231         GBB_CLOOG_IV_TYPES.
24232         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
24233         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
24234         (GBB_CLOOG_IV_TYPES): Removed.
24235
24236 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24237
24238         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
24239         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
24240         (detect_commutative_reduction): Same.
24241
24242 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24243
24244         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
24245         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
24246         argument.
24247         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
24248         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
24249         (rewrite_commutative_reductions_out_of_ssa): Same.
24250         * passes.c (execute_function_todo): Call verify_ssa for every pass
24251         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
24252         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
24253         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
24254         with an extra argument.
24255         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
24256         verify_ssa only when the extra argument is true.
24257         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
24258         with an extra argument.
24259         (tree_transform_and_unroll_loop): Same.
24260
24261 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24262
24263         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
24264         for all the passes of the LNO having LOOP_CLOSED_SSA.
24265         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
24266         * tree-loop-distribution.c (pass_loop_distribution): Same.
24267         * tree-pass.h (TODO_verify_loops): Removed.
24268         * tree-ssa-loop.c (pass_tree_loop_init): Same.
24269         (pass_lim): Same.
24270         (pass_tree_unswitch): Same.
24271         (pass_predcom): Same.
24272         (pass_vectorize): Same.
24273         (pass_linear_transform): Same.
24274         (pass_graphite_transforms): Same.
24275         (pass_iv_canon): Same.
24276         (pass_complete_unroll): Same.
24277         (pass_complete_unrolli): Same.
24278         (pass_parallelize_loops): Same.
24279         (pass_loop_prefetch): Same.
24280         (pass_iv_optimize): Same.
24281
24282 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
24283
24284         PR middle-end/32824
24285         * passes.c (init_optimization_passes): Move pass_lim before
24286         pass_copy_prop and pass_dce_loop.
24287
24288 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
24289
24290         PR target/43667
24291         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
24292         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
24293         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
24294         MULTI_* defines for 4 argument vpermil2p* builtins.
24295
24296 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
24297
24298         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
24299         * config/i386/i386.c (x86_maybe_negate_const_int): New.
24300         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
24301         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
24302         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
24303         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
24304         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
24305         Use x86_maybe_negate_const_int to output insn mnemonic.
24306         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
24307         check from instruction predicate.  Update comments.
24308         * config/i386/sync.md (sync_add<mode>): Use
24309         x86_maybe_negate_const_int to output insn mnemonic.
24310
24311 2010-04-06  Jan Hubicka  <jh@suse.cz>
24312
24313         PR tree-optimization/42906
24314         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
24315         IGNORE_SELF argument.  Set visited_control_parents for fully
24316         processed BBs.
24317         (find_obviously_necessary_stmts): Update call of
24318         mark_control_dependent_edges_necessary.
24319         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
24320
24321 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
24322
24323         * config/i386/i386.md: Remove comment about 'e' and 'E'
24324         operand modifier.
24325
24326 2010-04-06  Richard Guenther  <rguenther@suse.de>
24327
24328         PR tree-optimization/43627
24329         * tree-vrp.c (extract_range_from_unary_expr): Widenings
24330         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
24331         not varying.
24332
24333 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
24334
24335         * BASE-VER: Change to 4.6.0.
24336
24337         PR target/43638
24338         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
24339         handling.
24340
24341 2010-04-06  Richard Guenther  <rguenther@suse.de>
24342
24343         PR middle-end/43661
24344         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
24345
24346 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24347
24348         * doc/invoke.texi (Optimize Options): Document that LTO
24349         won't remove object access purely due to incompatible
24350         declarations.
24351
24352 2010-04-04  Matthias Klose  <doko@ubuntu.com>
24353
24354         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
24355         Initialize variable.
24356
24357 2010-04-03  Richard Guenther  <rguenther@suse.de>
24358
24359         PR middle-end/42509
24360         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
24361         require a non-NULL MEM_OFFSET.
24362
24363 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
24364
24365         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
24366         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
24367         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
24368         config/alpha/predicates.md, config/arm/arm.md,
24369         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
24370         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
24371         config/darwin9.h, config/darwin.c, config/darwin.h,
24372         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
24373         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
24374         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
24375         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
24376         config/mips/mips.md, config/mn10300/mn10300.c,
24377         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
24378         config/rs6000/aix.h, config/rs6000/dfp.md,
24379         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
24380         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
24381         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
24382         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
24383         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
24384         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
24385         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
24386         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
24387         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
24388         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
24389         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
24390         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
24391         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
24392         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
24393         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
24394         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
24395         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
24396         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
24397         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
24398         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
24399         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
24400         opt-functions.awk, opth-gen.awk, params.def, passes.c,
24401         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
24402         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
24403         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
24404         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
24405         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
24406         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
24407         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
24408         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
24409         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
24410         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
24411         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
24412         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
24413         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
24414         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
24415
24416 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24417
24418         PR other/43620
24419         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
24420         * aclocal.m4: Regenerate.
24421
24422 2010-04-02  Richard Guenther  <rguenther@suse.de>
24423
24424         PR tree-optimization/43629
24425         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
24426         if we have seen a constant value.
24427
24428 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
24429
24430         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
24431
24432 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
24433
24434         PR target/43469
24435         * arm.c (legitimize_tls_address): Adjust call to
24436         gen_tls_load_dot_plus_four.
24437         (arm_note_pic_base): New function.
24438         (arm_cannot_copy_insn_p): Use it.
24439         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
24440         constraint.
24441
24442 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24443
24444         PR bootstrap/43531
24445
24446         Revert:
24447         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24448
24449         * Makefile.in ($(out_object_file)): Depend on
24450         gt-$(basename $(notdir $(out_file))).h.
24451
24452 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
24453
24454         * config.gcc (lm32-*-rtems*): Add t-lm32.
24455
24456 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
24457
24458         * config.gcc: Add lm32-*-rtems*.
24459         * config/lm32/rtems.h: New file.
24460
24461 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
24462
24463         PR target/42609
24464         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
24465
24466 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
24467
24468         * dwarf2out.c (output_compilation_unit_header): For
24469         -gdwarf-4 use version 4 instead of version 3.
24470         (output_line_info): For version 4 and above emit additional
24471         maximum ops per insn header field.
24472         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
24473
24474         * dwarf2out.c (is_c_family, is_java): Remove.
24475         (lower_bound_default): New function.
24476         (add_bound_info, gen_descr_array_type_die): Use it.
24477
24478 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
24479
24480         PR debug/43325
24481         * dwarf2out.c (gen_variable_die): Allow debug info for variable
24482         re-declaration when it happens in a function.
24483
24484 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
24485
24486         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
24487         (cgraph_remove_function_insertion_hook): Same.
24488         (cgraph_call_function_insertion_hooks): Same.
24489
24490 2010-04-01  Richard Guenther  <rguenther@suse.de>
24491
24492         PR middle-end/43614
24493         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
24494         and TREE_THIS_VOLATILE.
24495         (copy_ref_info): Likewise.
24496         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
24497         * tree.c (build6_stat): Ignore side-effects of all but arg5
24498         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
24499         TARGET_MEM_REF.
24500
24501 2010-04-01  Richard Guenther  <rguenther@suse.de>
24502
24503         PR tree-optimization/43607
24504         * ipa-type-escape.c (check_call): Do not access non-existing
24505         arguments.
24506
24507 2010-04-01  Richard Guenther  <rguenther@suse.de>
24508
24509         PR middle-end/43602
24510         Revert
24511         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
24512                     Jack Howarth  <howarth@bromo.med.uc.edu>
24513
24514         * tree-profile.c (tree_init_ic_make_global_vars): Make static
24515         variables TLS.
24516
24517 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24518
24519         * doc/install.texi (Prerequisites): Document libelf usability on
24520         IRIX 5/6 and Solaris 2.
24521         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
24522         Update GNU as, GNU ld requirements.
24523         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
24524         Document Sun Studio compiler download.
24525         Update and simplify as, ld recommendations.
24526         (Specific, *-*-solaris2.7): Note obsoletion, removal.
24527
24528 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24529
24530         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
24531         with_tune_32 to pentium4.
24532
24533 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
24534
24535         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
24536
24537 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24538
24539         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
24540         obsoletion, removal.
24541         Update IDO URL.
24542         Document GNU as requirement.
24543         Update configure requirements.
24544         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
24545         Recomment IRIX 6.5.18+.
24546         Document IDF/IDL requirement.
24547         Document GNU as requirement.
24548         Document GNU ld bootstrap failure.
24549         Remove freeware.sgi.com reference.
24550
24551 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24552
24553         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
24554         UNIX V4.0, V5.0 obsoletion, removal.
24555         Remove --with-gc=simple reference.
24556         Update VM requirements during bootstrap.
24557         Remove -oldas bootstrap description.
24558         Update binutils reference.
24559         Remove comparison failure note.
24560
24561 2010-03-31  Richard Guenther  <rguenther@suse.de>
24562             Zdenek Dvorak  <ook@ucw.cz>
24563             Sebastian Pop  <sebastian.pop@amd.com>
24564
24565         PR middle-end/43464
24566         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
24567         with multiple arguments.
24568         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
24569
24570 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24571
24572         * graphite-dependences.c (print_pddr): Call print_pdr with an
24573         extra argument.
24574         * graphite-poly.c (debug_pdr): Add an extra argument for the
24575         verbosity level.
24576         (print_pdr): Same.
24577         (print_pbb_domain): Same.
24578         (print_pbb): Same.
24579         (print_scop_context): Same.
24580         (print_scop): Same.
24581         (print_cloog): Same.
24582         (debug_pbb_domain): Same.
24583         (debug_pbb): Same.
24584         (print_pdrs): Same.
24585         (debug_pdrs): Same.
24586         (debug_scop_context): Same.
24587         (debug_scop): Same.
24588         (debug_cloog): Same.
24589         (print_scop_params): Same.
24590         (debug_scop_params): Same.
24591         (print_iteration_domain): Same.
24592         (print_iteration_domains): Same.
24593         (debug_iteration_domain): Same.
24594         (debug_iteration_domains): Same.
24595         (print_scattering_function): Same.
24596         (print_scattering_functions): Same.
24597         (debug_scattering_function): Same.
24598         (debug_scattering_functions): Same.
24599         * graphite-poly.h (debug_pdr): Update declaration.
24600         (print_pdr): Same.
24601         (print_pbb_domain): Same.
24602         (print_pbb): Same.
24603         (print_scop_context): Same.
24604         (print_scop): Same.
24605         (print_cloog): Same.
24606         (debug_pbb_domain): Same.
24607         (debug_pbb): Same.
24608         (print_pdrs): Same.
24609         (debug_pdrs): Same.
24610         (debug_scop_context): Same.
24611         (debug_scop): Same.
24612         (debug_cloog): Same.
24613         (print_scop_params): Same.
24614         (debug_scop_params): Same.
24615         (print_iteration_domain): Same.
24616         (print_iteration_domains): Same.
24617         (debug_iteration_domain): Same.
24618         (debug_iteration_domains): Same.
24619         (print_scattering_function): Same.
24620         (print_scattering_functions): Same.
24621         (debug_scattering_function): Same.
24622         (debug_scattering_functions): Same.
24623
24624 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24625
24626         * graphite-poly.c (print_scattering_function_1): New.
24627         (print_scattering_function): Call it.
24628         (print_scop_params): Remove spaces at the end of lines.
24629         (print_cloog): New.
24630         (debug_cloog): New.
24631         * graphite-poly.h (print_cloog): Declared.
24632         (debug_cloog): Declared.
24633
24634 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24635
24636         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
24637         in loop->header.
24638         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
24639         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
24640         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
24641         to switch between adding the IV bump in loop->latch or in loop->header.
24642
24643 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24644
24645         * graphite-poly.c (print_scattering_function): Pretty print following
24646         the scoplib format.
24647         (print_pdr): Same.
24648         (print_pbb_domain): Same.
24649         (dump_gbb_cases): Same.
24650         (dump_gbb_conditions): Same.
24651         (print_pdrs): Same.
24652         (print_pbb): Same.
24653         (print_scop_params): Same.
24654         (print_scop_context): Same.
24655         (print_scop): Same.
24656         (print_pbb_body): New.
24657         (lst_indent_to): New.
24658         (print_lst): Start new lines with a #.
24659         * graphite-poly.h (pbb_bb): New.
24660         (pbb_index): Use pbb_bb.
24661         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
24662         disjuncts.
24663         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
24664
24665 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
24666
24667         * dwarf2out.c (size_of_die): For -gdwarf-4 use
24668         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
24669         and 0 instead of 1 for dw_val_class_flag.
24670         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
24671         dw_val_class_range_list, dw_val_class_loc_list,
24672         dw_val_class_lineptr and dw_val_class_macptr, use
24673         DW_FORM_flag_present for dw_val_class_flag and
24674         DW_FORM_exprloc for dw_val_class_loc.
24675         (output_die): For -gdwarf-4 print dw_val_class_loc
24676         size as uleb128 instead of 1 or 2 bytes and don't print
24677         anything for dw_val_class_flag.
24678
24679         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
24680         instead of cselib_lookup following by tweaking locs->setting_insn.
24681
24682         PR bootstrap/43596
24683         * cselib.c (cselib_process_insn): Clear cselib_current_insn
24684         even before returning from label, setjmp call or volatile asm
24685         handling.
24686
24687 2010-03-31  Richard Guenther  <rguenther@suse.de>
24688
24689         PR middle-end/43600
24690         * cgraphunit.c (cgraph_output_in_order): Do not allocate
24691         temporary data on stack.
24692
24693 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24694
24695         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
24696         (PUSHSECTION_ASM_OP): Remove.
24697         (POPSECTION_ASM_OP): Remove.
24698         (PUSHSECTION_FORMAT): Remove.
24699         * config/sol2.h (PUSHSECTION_FORMAT): Define.
24700         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
24701         * config/sol2.c (solaris_output_init_fini): Use it.
24702
24703 2010-03-31  Jie Zhang  <jie@codesourcery.com>
24704
24705         PR 43574
24706         * opt-functions.awk (var_type_struct): Use signed char type
24707         for simple variables.
24708
24709 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24710
24711         * config/sol2.c: Include output.h.
24712         (solaris_assemble_visibility): New function.
24713         * config/t-sol2 (sol2.o): Add output.h dependency.
24714         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
24715         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
24716         Redefine.
24717
24718 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
24719
24720         PR target/43580
24721         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
24722         V2SImode or XFmode on PRE_DEC.
24723
24724         PR debug/43557
24725         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
24726         BLKmode.
24727
24728 2010-03-31  Jie Zhang  <jie@codesourcery.com>
24729
24730         PR 43562
24731         * reload.h (caller_save_initialized_p): Declare.
24732         * toplev.c (backend_init_target): Don't call
24733         init_caller_save but set caller_save_initialized_p to false.
24734         * caller-save.c (caller_save_initialized_p): Define.
24735         (init_caller_save): Check caller_save_initialized_p.
24736         * ira.c (ira): Call init_caller_save if flag_caller_saves.
24737
24738 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24739
24740         PR target/39048
24741         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
24742         and soft-fp/t-softfp to tmake_file.
24743         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
24744         (LIBGCC2_TF_CEXT): Define.
24745         (TF_SIZE): Define.
24746
24747 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
24748
24749         PR debug/42977
24750         * cselib.c (n_useless_values): Document handling of debug locs.
24751         (n_useless_debug_values, n_debug_values): New variables.
24752         (new_elt_loc_list): Don't add to debug values, keep count.
24753         (promote_debug_loc): New.
24754         (cselib_reset_table): Zero new variables.
24755         (entry_and_rtx_equal_p): Promote debug locs.
24756         (discard_useless_locs): Increment n_useless_debug_values for
24757         debug values.
24758         (remove_useless_values): Adjust n_useless_values and n_debug_values
24759         with n_useless_debug_values.
24760         (add_mem_for_addr): Promote debug locs.
24761         (cselib_lookup_mem): Likewise.
24762         (cselib_lookup_addr): Renamed to...
24763         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
24764         (cselib_log_lookup): ... this.  Turn into...
24765         (cselib_lookup_addr): ... new wrapper.
24766         (cselib_lookup_from_insn): New.
24767         (cselib_invalidate_regno): Increment n_useless_debug_values for
24768         debug values.
24769         (cselib_invalidate_mem): Likewise.
24770         (cselib_process_insn): Take n_deleted and n_debug_values into
24771         account to guard remove_useless_value call.
24772         (cselib_finish): Zero n_useless_debug_values.
24773         * cselib.h (cselib_lookup_from_insn): Declare.
24774         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
24775         (sched_analyze_2): Likewise.
24776
24777 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
24778
24779         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
24780         functions.
24781         (adjust_mems): Replace narrowing SUBREG of expression containing
24782         just PLUS, MINUS, MULT and ASHIFT of registers and constants
24783         with operations in the narrower mode.
24784
24785         PR debug/43593
24786         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
24787         regs_invalidated_by_call instead all call_used_reg_set registers.
24788
24789 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
24790
24791         PR middle-end/43430
24792         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
24793         pointer comparisons with types_compatible_p.
24794         * tree-vect-stmts.c (vectorizable_call): Same.
24795         (vectorizable_condition): Same.
24796
24797 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24798
24799         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
24800         stack check if the mask would be zero.
24801
24802 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
24803             Jack Howarth  <howarth@bromo.med.uc.edu>
24804
24805         * tree-profile.c (tree_init_ic_make_global_vars): Make static
24806         variables TLS.
24807
24808 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
24809
24810         PR other/25232
24811         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
24812         and __unordtf2.
24813         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
24814         Include ___unordxf2 and ___unordtf2.
24815         * config/i386/libgcc-glibc.ver: Do not define inheritance from
24816         GCC_4.4.0 here.
24817
24818 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
24819
24820         * config/lm32/t-lm32: New file.
24821         * config.gcc: Use the above file when targetting lm32.
24822
24823 2010-03-28  Duncan Sands  <baldrick@free.fr>
24824
24825         * Makefile.in (PLUGIN_HEADERS): Add except.h.
24826
24827 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
24828
24829         PR middle-end/43431
24830         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
24831         Improve vectorization cost model diagnostic.
24832
24833 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
24834
24835         PR middle-end/43436
24836         * tree-vect-data-refs.c (vect_analyze_data_refs): When
24837         compute_data_dependences_for_loop returns false, early exit
24838         and output an extra diagnostic for the failed data reference
24839         analysis.
24840
24841 2010-03-29  Richard Guenther  <rguenther@suse.de>
24842
24843         PR tree-optimization/43560
24844         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
24845         (can_sm_ref_p): Treat stores to readonly locations as trapping.
24846
24847 2010-03-29  Jie Zhang  <jie@codesourcery.com>
24848
24849         PR 43564
24850         * toplev.c (process_options): Set optimization_default_node
24851         and optimization_current_node.
24852         * opts.c (decode_options): Don't set optimization_default_node
24853         and optimization_current_node.
24854
24855 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
24856
24857         * config/rtems.h: Abandon -qrtems_debug.
24858
24859 2010-03-28  Jan Hubicka  <jh@suse.cz>
24860
24861         PR tree-optimization/43505
24862         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
24863         map should not be copied.
24864
24865 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24866
24867         PR middle-end/41674
24868         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
24869         cdtors, set DECL_PRESERVE_P.
24870         * ipa.c (cgraph_externally_visible_p): Return true if declaration
24871         should be preseved.
24872
24873 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
24874
24875         PR tree-optimization/43528
24876         * stor-layout.c (place_field): Check that constant fits into
24877         unsigned HWI when skipping calculation of MS bitfield layout.
24878
24879 2010-03-27  Jan Hubicka  <jh@suse.cz>
24880
24881         PR middle-end/43391
24882         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
24883         notice_global_symbol work.
24884
24885 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
24886
24887         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
24888         instead of dwarf2out_decl.
24889         (struct var_loc_node): Remove section_label field.
24890         (dwarf2out_function_decl): New function.
24891         (dwarf2out_var_location): Don't set section_label field.
24892         (dwarf2out_begin_function): Don't empty decl_loc_table here.
24893
24894 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
24895
24896         PR tree-optimization/43544
24897         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
24898         First argument for builtin vectorized function hook is now a
24899         tree to be able to distinguish between machine specific and
24900         standard builtins.
24901         * targhooks.c (default_builtin_vectorized_function): Ditto.
24902         * targhooks.h (default_builtin_vectorized_function): Ditto.
24903         * target.h (struct gcc_target): Ditto.
24904         * tree-vect-stmts.c (vectorizable_function): Ditto.
24905         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
24906         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
24907         Ditto.
24908
24909 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
24910
24911         PR c/43381
24912         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
24913         nested binding iff it is a FUNCTION_DECL.
24914         (store_parm_decls_newstyle): Pass nested=true to bind for
24915         FUNCTION_DECLs amongst parameters.
24916
24917 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
24918
24919         * var-tracking.c (vt_expand_loc_callback): Don't run
24920         cselib_expand_value_rtx_cb in dummy mode if
24921         cselib_dummy_expand_value_rtx_cb returned false.
24922
24923         * var-tracking.c (emit_note_insn_var_location): For one part
24924         notes with offset 0, don't add EXPR_LIST around the location.
24925         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
24926         add_location_or_const_value_attribute): Adjust for that change.
24927
24928         PR debug/43540
24929         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
24930         into first operand and location into second.
24931         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
24932         dw_cfi_oprnd_loc for DW_CFA_expression.
24933         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
24934         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
24935         assume first argument is regnum and second argument is location.
24936
24937 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
24938
24939         PR target/42113
24940         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
24941         of scratch register to DImode.  Split to DImode comparison operator.
24942         Use SImode subreg of scratch register in the multiplication.
24943         (*cmp_sadd_sidi): Ditto.
24944         (*cmp_ssub_si): Ditto.
24945         (*cmp_ssub_sidi): Ditto.
24946
24947 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
24948
24949         PR target/43524
24950         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
24951         Remove invalid assert and wrong comment.
24952
24953 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
24954
24955         PR debug/43516
24956         * flags.h (final_insns_dump_p): New extern.
24957         * final.c (final_insns_dump_p): New variable.
24958         (rest_of_clean_state): Set it before -fdump-final-insns=
24959         dumping, clear afterwards.
24960         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
24961         MEM_ALIAS_SET on MEMs.
24962
24963 2010-03-26  David S. Miller  <davem@davemloft.net>
24964
24965         * configure.ac: Fix sparc GOTDATA_OP bug check.
24966         * configure: Rebuild.
24967
24968 2010-03-26  Alan Modra  <amodra@gmail.com>
24969
24970         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
24971
24972 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24973
24974         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
24975         TLS_SECTION_ASM_FLAG.
24976
24977 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
24978
24979         PR bootstrap/43511
24980         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
24981         Clear first_function_block_is_cold.
24982
24983         PR c/43385
24984         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
24985         argument if the argument is truth_value_p.
24986
24987 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24988
24989         * config/rs6000/constraints.md: Update copyright year for my changes.
24990
24991         PR target/43484
24992         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
24993         used in reg+reg addressing, swap registers.
24994
24995 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
24996
24997         PR debug/43293
24998         * target.h (struct gcc_target): Add code_end hook.
24999         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
25000         if not yet defined.
25001         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
25002         * toplev.c (compile_file): Call targetm.asm_out.code_end
25003         hook before unwind info/debug info output.
25004         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
25005         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
25006         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
25007         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
25008         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
25009         * config/i386/i386.c (ix86_file_end): Renamed to...
25010         (ix86_code_end): ... this.  Make static.  Don't call
25011         file_end_indicate_exec_stack.  Emit unwind info using
25012         final_start_function/final_end_function.
25013         (darwin_x86_file_end): Remove.
25014         (TARGET_ASM_CODE_END): Define.
25015         * config/i386/i386.h (TARGET_ASM_FILE_END,
25016         NEED_INDICATE_EXEC_STACK): Don't define.
25017         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
25018         (TARGET_ASM_FILE_END): Define to darwin_file_end.
25019         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
25020         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
25021
25022         PR target/43498
25023         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
25024         at the beginning and final_end_function at the end.
25025         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
25026
25027 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25028
25029         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
25030         and Sun as TLS syntax.
25031         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
25032         * configure: Regenerate.
25033         * config.in: Regenerate.
25034         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
25035         (default_elf_asm_named_section): Use it.
25036         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
25037         (i386_output_dwarf_dtprel): Likewise.
25038         (output_addr_const_extra): Likewise.
25039         (output_pic_addr_const): Lowercase @GOTTPOFF.
25040         (output_addr_const_extra): Likewise.
25041         (output_pic_addr_const): Lowercase @GOTNTPOFF.
25042         (output_addr_const_extra): Likewise.
25043         (output_pic_addr_const): Lowercase @INDNTPOFF.
25044         (output_addr_const_extra): Likewise.
25045         (output_pic_addr_const): Lowercase @NTPOFF.
25046         (output_addr_const_extra): Likewise.
25047         (output_pic_addr_const): Lowercase @TPOFF.
25048         (output_addr_const_extra): Likewise.
25049         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
25050         (*tls_global_dynamic_64): Likewise.
25051         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
25052         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
25053
25054         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
25055         (ASM_OUTPUT_TLS_COMMON): Use it.
25056         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
25057
25058         PR target/38118
25059         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
25060         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
25061         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
25062         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
25063         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
25064         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
25065
25066 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25067
25068         * config/i386/i386.c (override_options): Don't accept
25069         -mtls-dialect=sun any longer.
25070         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
25071         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
25072         (*tls_local_dynamic_base_32_sun): Likewise.
25073         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
25074
25075 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
25076
25077         PR debug/43508
25078         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
25079         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
25080
25081         PR debug/43479
25082         * ira.c (adjust_cleared_regs): New function.
25083         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
25084
25085         PR debug/19192
25086         PR debug/43479
25087         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
25088         from gimple_block.
25089         * expr.c (expand_expr_real): Restore previous
25090         curr_insn_source_location and curr_insn_block after
25091         expand_expr_real_1 call.
25092         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
25093         instead of expand_expr_real_1.
25094
25095 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
25096
25097         PR rtl-optimization/43413
25098         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
25099         hard regs too.
25100
25101 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
25102
25103         PR target/43348
25104         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
25105         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
25106
25107 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
25108
25109         * config/i386/i386.c (ix86_target_string): Add -mfma.
25110         Fix a typo in comment.
25111
25112 2010-03-22  Mike Stump  <mikestump@comcast.net>
25113
25114         PR target/23071
25115         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
25116         Don't overly align based upon packed packed fields.
25117
25118 2010-03-22  Jason Merrill  <jason@redhat.com>
25119
25120         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
25121         Use () rather than [], and move before the element type.
25122
25123 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25124
25125         * doc/configfiles.texi (Configuration Files): Removed
25126         fixinc/Makefile*, intl/Makefile.*.
25127         * doc/makefile.texi: Fixed markup. Abstract from version
25128         control system used.
25129         (Makefile): Removed obsolete java/parse.y example.
25130         * doc/sourcebuild.texi: Likewise.
25131         (Top Level): Added config, gnattools, libdecnumber, libgcc,
25132         libgomp, libssp.  Removed fastjar.
25133         (Miscellaneous Docs): Clarify location.
25134         Added COPYING3, COPYING3.LIB.
25135         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
25136
25137 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25138
25139         PR target/38085
25140         * config/i386/i386.c (x86_function_profiler)
25141         [!NO_PROFILE_COUNTERS]: Fix typo.
25142         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
25143         instead of callq.
25144
25145 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
25146             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25147
25148         * doc/sourcebuild.texi (Test Directives): Split into six
25149         subsections, with most of the current text in new subsections
25150         Directives, Selectors, and Final Actions.
25151         (Directives): Split list of test directives into multiple
25152         subsubsections.
25153         (Selectors): Describe use and syntax of selectors.
25154         (Effective-Target Keywords): Describe all existing keywords.
25155         (Add Options): Describe features for dg-add-options.
25156         (Require Support): Describe variants of dg-require-support.
25157         (Final Actions): Describe commands to use in dg-final.
25158
25159 2010-03-22  Michael Matz  <matz@suse.de>
25160
25161         PR middle-end/43475
25162         * recog.c (validate_replace_rtx_group): Replace also in
25163         REG_EQUAL and REG_EQUIV notes.
25164
25165 2010-03-22  Richard Guenther  <rguenther@suse.de>
25166
25167         PR tree-optimization/43390
25168         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
25169         sure vector extracts are type correct.
25170
25171 2010-03-22  Richard Guenther  <rguenther@suse.de>
25172
25173         PR middle-end/40106
25174         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
25175         x * sqrt (x) even when optimizing for size if the target
25176         has native support for sqrt.
25177
25178 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
25179
25180         * varasm.c (make_decl_rtl_for_debug): Also clear
25181         flag_mudflap for the duration of make_decl_rtl call.
25182
25183         PR debug/43443
25184         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
25185         locs from preserved VALUEs.
25186
25187 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25188
25189         PR middle-end/42718
25190         * pa.md (movmemsi): Set align to one if zero.
25191         (movmemdi): Likewise.
25192
25193 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
25194
25195         PR target/42321
25196         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
25197         with their corresponding prologue pushes.
25198
25199 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
25200
25201         PR target/43156
25202         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
25203         at the begining or end.
25204         (spu_expand_epilogue): Likewise.
25205
25206 2010-03-20  Richard Guenther  <rguenther@suse.de>
25207
25208         PR rtl-optimization/43438
25209         * combine.c (make_extraction): Properly zero-/sign-extend an
25210         extraction of the low part of a CONST_INT.  Also handle
25211         CONST_DOUBLE.
25212
25213 2010-03-19  Mike Stump  <mikestump@comcast.net>
25214
25215         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
25216         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
25217         (override_options): Use SUBTARGET32_DEFAULT_CPU.
25218
25219 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
25220
25221         PR c/43211
25222         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
25223         an error.
25224
25225 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
25226
25227         PR rtl-optimization/42258
25228         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
25229         use that may match DEF.
25230
25231         PR target/40697
25232         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
25233         the cost of loading the constant rather than assuming
25234         COSTS_N_INSNS (1).
25235         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
25236         outer code is AND, do the same tests as the andsi3 expander and
25237         return COSTS_N_INSNS (1) if and is cheap.
25238
25239         * optabs.c (avoid_expensive_constant): Fix formatting.
25240
25241 2010-03-19  Michael Matz  <matz@suse.de>
25242
25243         PR c++/43116
25244         * attribs.c (decl_attributes): When rebuilding a function pointer
25245         type use the same qualifiers as the original pointer type.
25246
25247 2010-03-19  Martin Jambor  <mjambor@suse.cz>
25248
25249         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
25250         and is_gimple_ip_invariant_address.
25251
25252 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25253
25254         Revert
25255         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25256
25257         * config/arm/arm.c (arm_override_options): Turn off
25258         flag_dwarf2_cfi_asm for AAPCS variants.
25259
25260 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25261
25262         PR target/43399
25263         * config/arm/arm.c (emit_multi_reg_push): Update comments.
25264         Use PRE_MODIFY instead of PRE_DEC.
25265         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
25266         (vfp_emit_fstmd): Likewise.
25267
25268 2010-03-19  Michael Matz  <matz@suse.de>
25269
25270         PR target/43305
25271         * builtins.c (expand_builtin_interclass_mathfn,
25272         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
25273         if that fails.
25274
25275 2010-03-19  Richard Guenther  <rguenther@suse.de>
25276
25277         PR tree-optimization/43415
25278         * tree-ssa-pre.c (phi_translate): Split out worker to ...
25279         (phi_translate_1): ... this.
25280         (phi_translate): Move all caching here.  Cache all NARY
25281         and REFERENCE translations.
25282
25283 2010-03-19  David S. Miller  <davem@davemloft.net>
25284
25285         With help from Eric Botcazou.
25286         * config/sparc/sparc.c: Include dwarf2out.h.
25287         (emit_pic_helper): Delete.
25288         (pic_helper_symbol_name): Delete.
25289         (pic_helper_emitted_p): Delete.
25290         (pic_helper_needed): New.
25291         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
25292         (get_pc_thunk_name): New.
25293         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
25294         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
25295         Set pic_helper_needed to true.  Don't call emit_pic_helper.
25296         (sparc_expand_prologue): Update load_pic_register call.
25297         (sparc_output_mi_thunk): Likewise.
25298         (sparc_file_end): Emit a hidden comdat symbol for the PIC
25299         thunk if possible.  Output CFI information as needed.
25300
25301 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
25302             Jack Howarth  <howarth@bromo.med.uc.edu>
25303
25304         PR target/36399
25305         * config/i386/i386.h: Fix ABI on darwin x86-32.
25306
25307 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
25308
25309         * tree.h: Declare make_decl_rtl_for_debug.
25310         * varasm.c (make_decl_rtl_for_debug): New.
25311         * dwarf2out.c (rtl_for_decl_location): Call it.
25312         * cfgexpand.c (expand_debug_expr): Call it.
25313
25314 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
25315
25316         PR bootstrap/43399
25317         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
25318         mem_mode.
25319
25320         PR bootstrap/43403
25321         * var-tracking.c (vt_init_cfa_base): Do nothing if
25322         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
25323
25324 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
25325
25326         PR debug/42873
25327         * var-tracking.c (canonicalize_vars_star): New.
25328         (dataflow_post_merge_adjust): Use it.
25329
25330 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
25331
25332         PR debug/43058
25333         * var-tracking.c (non_suitable_const): New function.
25334         (add_uses): For DEBUG_INSNs with constants, don't record any
25335         value, instead just the constant value itself.
25336         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
25337         is not VAR_LOC_UNKNOWN_P, set var to the constant.
25338         (emit_notes_in_bb): Likewise.
25339         (emit_note_insn_var_location): For onepart variables if
25340         cur_loc is a VOIDmode constant, use DECL_MODE.
25341
25342 2010-03-18  Martin Jambor  <mjambor@suse.cz>
25343
25344         PR middle-end/42450
25345         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
25346         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
25347         all non-clones.  Moved call redirection...
25348         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
25349         (cgraph_materialize_all_clones): Dispose of all
25350         combined_args_to_skip bitmaps.
25351         (verify_cgraph_node): Do not check for edges pointing to wrong
25352         nodes in inline clones.
25353         * tree-inline.c (copy_bb): Call
25354         cgraph_redirect_edge_call_stmt_to_callee.
25355         * ipa.c (cgraph_remove_unreachable_nodes): Call
25356         cgraph_node_remove_callees even when there are used clones.
25357
25358 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
25359
25360         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
25361
25362 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
25363
25364         PR target/43383
25365         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
25366         for 32bit.
25367
25368 2010-03-18  Michael Matz  <matz@suse.de>
25369
25370         PR middle-end/43419
25371         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
25372         into sqrt(x) if we need to preserve signed zeros.
25373
25374 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
25375             Eric Botcazou  <ebotcazou@adacore.com>
25376
25377         PR rtl-optimization/43360
25378         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
25379         note if we don't know its invariant status.
25380
25381 2010-03-18  Michael Matz  <matz@suse.de>
25382
25383         PR tree-optimization/43402
25384         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
25385         PHI chains of ssa names registered for update.
25386
25387 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
25388
25389         PR target/42427
25390         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
25391         non-offsettable and pre_modify update addressing.
25392         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
25393         and "2" alternatives "#".
25394         (*movdd_softfloat32): Make all alternatives "#";
25395         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
25396         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
25397         (*movdf_softfloat32): Make all alternatives "#";
25398         (movdi): Use the new DIFD mode iterator to create a common splitter
25399         for movdi, movdf and movdd patterns.
25400
25401 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
25402
25403         * common.opt (dumpdir): Remove redundant tab.
25404
25405 2010-03-17  Martin Jambor  <mjambor@suse.cz>
25406
25407         PR tree-optimization/43347
25408         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
25409         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
25410
25411 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
25412
25413         PR rtl-optimization/42216
25414         * regrename.c (create_new_chain): New function, broken out from...
25415         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
25416         appending a use to an empty chain.
25417         (build_def_use): Remove previous changes that convert OP_INOUT to
25418         OP_OUT operands; instead detect the case where an OP_INOUT operand
25419         uses a previously untracked register and create an empty chain for it.
25420
25421 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25422
25423         * doc/extend.texi (Function Attributes): Rewrite unfinished
25424         sentence in ms_abi documentation.
25425
25426 2010-03-17  Alan Modra  <amodra@gmail.com>
25427
25428         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
25429         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
25430         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
25431         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
25432
25433 2010-03-16  Richard Henderson  <rth@redhat.com>
25434
25435         PR middle-end/43365
25436         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
25437         (lower_try_finally): Save and restore eh_seq around the expansion
25438         of the try-finally.
25439
25440 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
25441
25442         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
25443         statements before splitting block.
25444
25445 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25446
25447         * doc/sourcebuild.texi (Testsuites): Fix markup.
25448         Use pathnames relative to gcc/testsuite.
25449         (Test Directives): Move description of how timeout is determined.
25450         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
25451         (C Tests): Correct gcc.misc-tests directory.
25452         Framework tests now live in gcc.test-framework.
25453
25454 2010-03-16  Richard Guenther  <rguenther@suse.de>
25455
25456         PR middle-end/43379
25457         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
25458         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
25459
25460 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
25461             Alexandre Oliva  <aoliva@redhat.com>
25462
25463         PR tree-optimization/42917
25464         * lambda-code.c (remove_iv): Skip debug statements.
25465         (lambda_loopnest_to_gcc_loopnest): Likewise.
25466         (not_interesting_stmt): Debug statements are not interesting.
25467
25468 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
25469
25470         PR debug/43051
25471         PR debug/43092
25472         * cselib.c (cselib_preserve_constants,
25473         cfa_base_preserved_val): New static variables.
25474         (preserve_only_constants): New function.
25475         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
25476         clear its REG_VALUES.  If cselib_preserve_constants, don't
25477         empty the whole hash table, but preserve there VALUEs with constants,
25478         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
25479         (cselib_preserve_cfa_base_value): New function.
25480         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
25481         (cselib_init): Change argument to int bitfield.  Set
25482         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
25483         is in it.
25484         (cselib_finish): Clear cselib_preserve_constants and
25485         cfa_base_preserved_val.
25486         * cselib.h (enum cselib_record_what): New enum.
25487         (cselib_init): Change argument to int.
25488         (cselib_preserve_cfa_base_value): New prototype.
25489         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
25490         * dse.c (dse_step1): Likewise.
25491         * cfgcleanup.c (thread_jump): Likewise.
25492         * sched-deps.c (sched_analyze): Likewise.
25493         * gcse.c (local_cprop_pass): Likewise.
25494         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
25495         If FN is non-NULL, call the callback always and whenever it returns
25496         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
25497         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
25498         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
25499         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
25500         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
25501         * var-tracking.c: Include recog.h.
25502         (bb_stack_adjust_offset): Remove.
25503         (vt_stack_adjustments): Don't call it, instead just gather the
25504         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
25505         (adjust_stack_reference): Remove.
25506         (compute_cfa_pointer): New function.
25507         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
25508         (struct adjust_mem_data): New type.
25509         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
25510         functions.
25511         (get_address_mode): New function.
25512         (replace_expr_with_values): Use it.
25513         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
25514         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
25515         (adjust_sets): Remove.
25516         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
25517         Use get_address_mode.
25518         (get_adjusted_src): Remove.
25519         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
25520         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
25521         (add_with_sets): Don't call adjust_sets.
25522         (fp_setter, vt_init_cfa_base): New functions.
25523         (vt_initialize): Change return type to bool.  Move most of pool etc.
25524         initialization to the beginning of the function from end.  Pass
25525         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
25526         If !frame_pointer_needed, call vt_stack_adjustment before mos
25527         vector is filled, call vt_init_cfa_base if argp/framep has been
25528         eliminated to sp.  If frame_pointer_needed and argp/framep has
25529         been eliminated to hard frame pointer, set
25530         hard_frame_pointer_adjustment and call vt_init_cfa_base after
25531         encountering fp setter in the prologue.  For MO_ADJUST, call
25532         log_op_type before pusing the op into mos vector, not afterwards.
25533         Call adjust_insn before cselib_process_insn/add_with_sets,
25534         call cancel_changes (0) afterwards.
25535         (variable_tracking_main_1): Adjust for vt_initialize calling
25536         vt_stack_adjustments and returning whether it succeeded or not.
25537
25538 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
25539
25540         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
25541         debug statements.
25542
25543 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
25544
25545         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
25546         has been set.
25547         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
25548         drap_reg has not been set.
25549
25550 2010-03-15  Michael Matz  <matz@suse.de>
25551
25552         PR middle-end/43300
25553         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
25554         use it to expand block copies.
25555         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
25556         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
25557         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
25558
25559 2010-03-15  Richard Guenther  <rguenther@suse.de>
25560
25561         PR tree-optimization/43367
25562         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
25563         elimination check.
25564
25565 2010-03-15  Richard Guenther  <rguenther@suse.de>
25566
25567         PR tree-optimization/43317
25568         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
25569
25570 2010-03-15  Martin Jambor  <mjambor@suse.cz>
25571
25572         PR tree-optimization/43141
25573         * tree-sra.c (create_abstract_origin): New function.
25574         (modify_function): Call create_abstract_origin.
25575
25576 2010-03-15  Chris Demetriou  <cgd@google.com>
25577
25578         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
25579         wasn't copied.
25580
25581 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25582
25583         PR middle-end/43354
25584         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
25585         call insert_out_of_ssa_copy for default definitions.
25586
25587 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25588
25589         * graphite-clast-to-gimple.c (my_long_long): Defined.
25590         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
25591         * graphite-sese-to-poly.c (my_long_long): Defined.
25592         (scop_ivs_can_be_represented): Use it.
25593
25594 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25595
25596         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
25597         graphite-max-bbs-per-function, and loop-block-tile-size.
25598         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
25599         with "maximum".
25600         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
25601
25602 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25603
25604         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
25605         forward declaration.
25606         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
25607         (add_upper_bounds_from_estimated_nit): New.
25608         (build_loop_iteration_domains): Use it.
25609
25610 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25611
25612         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
25613
25614 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25615
25616         PR middle-end/43306
25617         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
25618         should be an INTEGER_CST.  Also handle CASE_CONVERT.
25619
25620 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25621
25622         * graphite.c (graphite_initialize): To bound the number of bbs per
25623         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
25624         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
25625         * doc/invoke.texi: Document it.
25626
25627 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25628
25629         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
25630         * graphite-sese-to-poly.h (build_poly_scop): Same.
25631
25632 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25633
25634         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
25635         the number of parameters in the scop.  Use as an upper bound
25636         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
25637         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
25638         * doc/invoke.texi: Document it.
25639
25640 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
25641
25642         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
25643         * doc/c-tree.texi: Remove.
25644         * doc/generic.texi: Merge c-tree.texi here.
25645         * doc/gccint.texi (Trees): Remove menu entry.
25646         (c-tree.texi): Remove @include.
25647         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
25648         * doc/languages.texi (Reading RTL): Ditto.
25649
25650 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
25651
25652         PR target/42869
25653         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
25654
25655 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
25656
25657         PR middle-end/42431
25658         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
25659         code added to work around reload clobbering CONST insns.
25660
25661 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
25662
25663         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
25664         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
25665         (cselib_preserve_only_values): Remove retain argument, don't
25666         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
25667         * cselib.h (cselib_preserve_only_values): Remove retain argument.
25668         * var-tracking.c (micro_operation): Move insn field before union.
25669         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
25670         (struct variable_tracking_info_def): Remove n_mos field, change
25671         mos into a vector of micro_operations.
25672         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
25673         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
25674         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
25675         changing into a vector.
25676         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
25677         come before all other uops generated by add_stores.
25678         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
25679         argument removal.
25680         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
25681         a vector.  Run just one pass over the bbs instead of separate counting
25682         and computation phase.
25683         (vt_finalize): Free VTI (bb)->mos vector instead of array.
25684
25685         PR debug/43329
25686         * tree-inline.c (remap_decls): Put old_var rather than origin_var
25687         into *nonlocalized_list vector.
25688         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
25689         even if origin is non-NULL.
25690         (gen_variable_die): Likewise.
25691         (process_scope_var): Don't change origin.
25692         (gen_decl_die): Likewise.
25693         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
25694         before adding new edges instead of after it, fix moving over
25695         debug stmts.
25696
25697 2010-03-11  David S. Miller  <davem@davemloft.net>
25698
25699         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
25700         of four.
25701         * configure: Rebuild.
25702
25703 2010-03-11  Martin Jambor  <mjambor@suse.cz>
25704
25705         PR tree-optimization/43257
25706         * tree.c (assign_assembler_name_if_neeeded): New function.
25707         (free_lang_data_in_cgraph): Assembler name assignment moved to the
25708         above new function.
25709         * tree.h (assign_assembler_name_if_neeeded): Declare.
25710         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
25711         the function if needed.
25712
25713 2010-03-11  Chris Demetriou  <cgd@google.com>
25714
25715         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
25716         include/stdint-gcc.h, and include/stdint.h world-readable.
25717
25718 2010-03-11  Richard Guenther  <rguenther@suse.de>
25719
25720         PR tree-optimization/43255
25721         * tree-vrp.c (process_assert_insertions_for): Do not insert
25722         asserts for trivial conditions.
25723
25724 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25725
25726         PR tree-optimization/43280
25727         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
25728         generation.  Move calculation of size out of the if branch.
25729         (find_bswap): Modify compare number generation.
25730
25731 2010-03-11  Richard Guenther  <rguenther@suse.de>
25732
25733         PR lto/43200
25734         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
25735         (input_gimple_stmt): Fixup handled component types during
25736         operand read.  Also fix up decls in ADDR_EXPRs.
25737
25738 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
25739
25740         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
25741         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
25742
25743 2010-03-10  Jan Hubicka  <jh@suse.cz>
25744
25745         PR c/43288
25746         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
25747         * varasm.c (get_variable_section): Don't do that here...
25748         (make_decl_rtl): ... and here.
25749         (do_assemble_alias): Produce decl RTL.
25750         (assemble_alias): Likewise.
25751
25752 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
25753
25754         PR debug/43290
25755         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
25756         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
25757         of fde->vdrap_reg.
25758         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
25759         (based_loc_descr): Only express drap or vdrap regno based expressions
25760         using DW_OP_fbreg when not optimizing.
25761         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
25762         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
25763         REG_CFA_SET_VDRAP note.
25764
25765 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
25766
25767         PR tree-optimization/43236
25768         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
25769         error in calculation of base address in reverse iteration case.
25770         (generate_builtin): Take number of latch executions if the statement
25771         is in the latch.
25772
25773 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
25774
25775         PR middle-end/42859
25776         * tree-eh.c: Include pointer-set.h.
25777         (lower_eh_dispatch): Filter out duplicate case labels and
25778         remove the unneeded edge when the label is unused.  Return
25779         true when some edges are removed.
25780         (execute_lower_eh_dispatch): When any lowering resulted in
25781         removing an edge, also delete unreachable blocks.
25782
25783 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
25784
25785         PR bootstrap/43287
25786         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
25787         UNSPEC_MACHOPIC_OFFSET.
25788
25789 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
25790
25791         PR target/43294
25792         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
25793         (m68k_delegitimize_address): New function.
25794
25795 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
25796
25797         PR debug/43299
25798         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
25799
25800         PR debug/43299
25801         * var-tracking.c (adjust_sets): New function.
25802         (count_with_sets, add_with_sets): Use it.
25803         (get_adjusted_src): New inline function.
25804         (add_stores): Use it.
25805
25806         PR debug/43304
25807         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
25808         call cselib_dummy_expand_value_rtx_cb instead of
25809         cselib_expand_value_rtx_cb.
25810
25811         PR debug/43293
25812         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
25813         * config/i386/i386.c: Include debug.h and dwarf2out.h.
25814         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
25815         and .cfi_endproc around the pic thunks.
25816         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
25817         all queued unwind info register saves are saved before the call.
25818         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
25819         considered as sp-=4 for unwind info and the pop as sp+=4 which
25820         also clobbers dest, but doesn't actually restore it.
25821
25822         PR debug/43290
25823         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
25824         RTX_FRAME_RELATED_P.
25825
25826 2010-03-09  Jie Zhang  <jie@codesourcery.com>
25827
25828         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
25829         whitespaces in output template.
25830
25831 2010-03-09  Jie Zhang  <jie@codesourcery.com>
25832
25833         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
25834         out array boundary.
25835
25836 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
25837
25838         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
25839         builtins.exp in a separate job.
25840
25841 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25842
25843         * graphite-sese-to-poly.c (add_param_constraints): Use
25844         lower_bound_in_type and upper_bound_in_type.
25845
25846 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25847
25848         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
25849         instead of unsigned_type_node.
25850
25851 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25852             Reza Yazdani  <reza.yazdani@amd.com>
25853
25854         PR middle-end/43065
25855         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
25856         on pointer type parameters.
25857
25858 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
25859
25860         PR middle-end/42644
25861         PR middle-end/42130
25862         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
25863         handle conversions from pointer to integers.
25864         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
25865         induction variable, to be able to work with code generated by CLooG.
25866         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
25867         (build_poly_scop): Bail out if we cannot codegen a loop.
25868
25869 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
25870
25871         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
25872         code generation with gloog_error.
25873
25874 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25875
25876         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
25877         Call fold_convert on all the returned values.
25878         (expand_scalar_variables_expr): Pass to
25879         expand_scalar_variables_ssa_name the type of the resulting expression.
25880
25881 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25882
25883         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
25884         ppl_min_for_le_pointset.
25885         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
25886         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
25887
25888 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25889
25890         * graphite-dependences.c (map_into_dep_poly): Removed.
25891         (dependence_polyhedron_1): Use combine_context_id_scat.
25892
25893 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25894
25895         * graphite-poly.h (struct poly_scattering): Add layout documentation.
25896         (struct poly_bb): Same.
25897         (combine_context_id_scat): New.
25898
25899 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25900
25901         PR middle-end/42326
25902         * sese.c (name_defined_in_loop_p): Return false for default
25903         definitions.
25904
25905 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25906
25907         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
25908         and clean up the logic.
25909
25910 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25911
25912         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
25913         early return.
25914
25915 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
25916
25917         * var-tracking.c (remove_cselib_value_chains): Define only for
25918         ENABLE_CHECKING.
25919         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
25920         delete_slot_part, emit_notes_for_differences_1): Don't call
25921         remove_cselib_value_chains here.
25922         (set_slot_part, emit_notes_for_differences_2): Don't call
25923         add_cselib_value_chains here.
25924         (preserved_values): New vector.
25925         (preserve_value): New function.
25926         (add_uses, add_stores, vt_add_function_parameters): Use it
25927         instead of cselib_preserve_value.
25928         (changed_values_stack): New vector.
25929         (check_changed_vars_0): New function.
25930         (check_changed_vars_1, check_changed_vars_2): Use it.
25931         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
25932         changed_values_stack VALUEs.
25933         (vt_emit_notes): For all preserved_values call
25934         add_cselib_value_chains.  If ENABLE_CHECKING call
25935         remove_cselib_value_chains before verifying value_chains is empty.
25936         Initialize and free changed_values_stack.
25937         (vt_initialize): Initialize preserved_values.
25938         (vt_finalize): Free preserved_values.
25939
25940 2010-03-08  Richard Guenther  <rguenther@suse.de>
25941
25942         PR tree-optimization/43269
25943         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
25944         region detection.
25945
25946 2010-03-08  Martin Jambor  <mjambor@suse.cz>
25947
25948         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
25949         (ipa_is_param_called): Removed.
25950         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
25951         (ipa_print_node_params): Do not print the called flag.
25952         (ipa_write_node_info): Do not stream the called flag.
25953         (ipa_read_node_info): Likewise.
25954
25955 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
25956
25957         PR debug/43176
25958         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
25959         * cselib.c (struct expand_value_data): Add dummy field.
25960         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
25961         dummy to false.
25962         (cselib_dummy_expand_value_rtx_cb): New function.
25963         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
25964         any rtl.
25965         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
25966         * var-tracking.c: Include pointer-set.h.
25967         (variable): Change n_var_parts to char from int.  Add
25968         cur_loc_changed and in_changed_variables fields.
25969         (variable_canonicalize): Remove.
25970         (shared_var_p): New inline function.
25971         (unshare_variable): Maintain cur_loc_changed and
25972         in_changed_variables fields.  If var was in changed_variables,
25973         replace it there with new_var.  Just copy cur_loc instead of
25974         resetting it to something else.
25975         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
25976         (dataflow_set_union): Don't call variable_canonicalize.
25977         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
25978         of their DEBUG_EXPR_TREE_DECLs.
25979         (canonicalize_loc_order_check): Verify that cur_loc is NULL
25980         and in_changed_variables and cur_loc_changed is false.
25981         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
25982         and cur_loc_changed.  Don't update cur_loc here.
25983         (variable_merge_over_src): Don't call variable_canonicalize.
25984         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
25985         removing loc that is equal to cur_loc, clear cur_loc,
25986         set cur_loc_changed and ensure variable_was_changed is called.
25987         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
25988         compare pointers in cur_loc check, if it is equal to loc,
25989         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
25990         (variable_different_p): Remove compare_current_location argument,
25991         don't compare cur_loc.
25992         (dataflow_set_different_1): Adjust variable_different_p caller.
25993         (variable_was_changed): If dv had some var in changed_variables
25994         already, reset in_changed_variables flag for it and propagate
25995         cur_loc_changed over to the new variable.  On empty var
25996         always set cur_loc_changed.  Set in_changed_variables on whatever
25997         var is added to changed_variables.
25998         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
25999         Use shared_var_p.  When removing loc that is equal to cur_loc,
26000         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
26001         end, don't set it to something else, just call variable_was_changed.
26002         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
26003         loc being removed, clear cur_loc and set cur_loc_changed.
26004         Set cur_loc_changed if all locations have been removed.
26005         (struct expand_loc_callback_data): New type.
26006         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
26007         allocated.  Always create SUBREGs if simplify_subreg failed.
26008         Prefer to use cur_loc, when that fails and still in
26009         changed_variables (and seen first time) recompute it.  Set
26010         cur_loc_changed of variables which had to change cur_loc and
26011         compute elcd->cur_loc_changed if any of the subexpressions used
26012         had to change cur_loc.
26013         (vt_expand_loc): Adjust to pass arguments in
26014         expand_loc_callback_data structure.
26015         (vt_expand_loc_dummy): New function.
26016         (emitted_notes): New variable.
26017         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
26018         that weren't used for any other decl in current
26019         emit_notes_for_changes call call vt_expand_loc_dummy to update
26020         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
26021         first loc_chain location if NULL before.  Always use just
26022         cur_loc instead of first loc_chain location.  When cur_loc_changed
26023         is false, when not --enable-checking=rtl just don't emit any note.
26024         When rtl checking, compute the note and assert it is the same
26025         as previous note.  Clear cur_loc_changed and in_changed_variables
26026         at the end before removing from changed_variables.
26027         (check_changed_vars_3): New function.
26028         (emit_notes_for_changes): Traverse changed_vars to call
26029         check_changed_vars_3 on each changed var.
26030         (emit_notes_for_differences_1): Clear cur_loc_changed and
26031         in_changed_variables.  Recompute cur_loc of new_var.
26032         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
26033         (vt_emit_notes): Initialize and destroy emitted_notes.
26034
26035 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
26036
26037         PR rtl-optimization/42220
26038         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
26039         Use verify_reg_tracked to determine if we should use OP_OUT rather
26040         than OP_INOUT.
26041         (build_def_use): If we see an in-out operand for a register that we
26042         know nothing about, treat is an output if possible, fail the block if
26043         not.
26044
26045 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
26046
26047         PR debug/42897
26048         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
26049         permanently.
26050
26051 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
26052
26053         PR debug/42897
26054         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
26055         uses of relevant DEFs that are dead outside the loop too.
26056
26057 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
26058
26059         * var-tracking.c (dataflow_set_merge): Swap src and src2.
26060         Reverted:
26061         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
26062         PR debug/41371
26063         * var-tracking.c (values_to_unmark): New variable.
26064         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
26065         values_to_unmark vector.  Moved body to...
26066         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
26067         instead queue it into values_to_unmark vector.
26068         (vt_find_locations): Free values_to_unmark vector.
26069
26070 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
26071
26072         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
26073         (site.exp): Export them when plugins are enabled.
26074
26075 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
26076
26077         PR middle-end/42326
26078         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
26079         that contain scevs.
26080         (chrec_fold_multiply): Same.
26081
26082 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
26083
26084         PR c/43248
26085         * c-decl.c (build_compound_literal): Return early if init is
26086         an error_mark_node.
26087
26088 2010-03-04  Martin Jambor  <mjambor@suse.cz>
26089
26090         PR tree-optimization/43164
26091         PR tree-optimization/43191
26092         * tree-sra.c (type_consists_of_records_p): Reject records with
26093         zero-size bit-fields at the end.
26094
26095 2010-03-04  Mike Stump  <mikestump@comcast.net>
26096
26097         * Makefile.in (TAGS): Remove *.y.
26098
26099 2010-03-04  Richard Guenther  <rguenther@suse.de>
26100
26101         PR tree-optimization/40761
26102         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
26103         in reverse order.
26104         (my_rev_post_order_compute): New function.
26105         (init_pre): Call it.
26106
26107 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
26108
26109         PR middle-end/43209
26110         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
26111         decrease the cost of an IV candidate when the cost is infinite.
26112
26113 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26114
26115         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
26116         Use '3DNow!' for the extension of that name, ensure normal space
26117         after the string.
26118         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
26119
26120 2010-03-03  Jeff Law  <law@redhat.com>
26121
26122         * PR middle-end/32693
26123         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
26124         than gen_rtx_SUBREG.
26125         (extract_bit_field_1): Likewise.
26126
26127 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
26128
26129         * doc/sourcebuild.texi (Test directives): Document that arguments
26130         include-opts and exclude-opts are now optional for dg-skip-if,
26131         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
26132
26133 2010-03-03  Jason Merrill  <jason@redhat.com>
26134
26135         PR c++/12909
26136         * cgraph.h (varpool_node): Add extra_name field.
26137         * varpool.c (varpool_extra_name_alias): New.
26138         (varpool_assemble_decl): Emit extra name aliases.
26139         (varpool_mark_needed_node): Look past an extra name alias.
26140         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
26141         * lto-streamer-in.c (lto_input_tree): Read it.
26142         * lto-streamer-out.c (output_unreferenced_globals): Write it.
26143
26144 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
26145
26146         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
26147         (sparc*-*-solaris2*): ...this.
26148
26149 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
26150
26151         PR debug/43229
26152         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
26153         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
26154         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
26155         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
26156
26157         PR debug/43237
26158         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
26159         fallthrough to default handling, just with want_address 0 instead of 2.
26160         For single element lists, add_AT_loc directly, otherwise create an
26161         artificial variable DIE and stick location list to it.
26162
26163         PR debug/43177
26164         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
26165         (VAL_EXPR_HAS_REVERSE): Define.
26166         (reverse_op): New function.
26167         (add_stores): For reversible operations add an extra MO_VAL_USE.
26168
26169 2010-03-02  Jason Merrill  <jason@redhat.com>
26170
26171         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
26172
26173 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
26174
26175         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
26176         (sparc64-*-linux*): Likewise.
26177         (sparc64-*-solaris2*): Include assembler files before linker ones.
26178         (sparc-*-solaris2*): Simplify and reorder to match previous case.
26179         * config/sparc/gas.h: Delete.
26180         * config/sparc/sol2-64.h: Add copyright notice.
26181         * config/sparc/sol2-gas-bi.h: Likewise.
26182         * config/sparc/sol2-gld.h: Likewise.
26183         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
26184         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
26185         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
26186         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
26187         (sparc_elf_asm_named_section): Rename into...
26188         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
26189
26190 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
26191
26192         * config/alpha/alpha.c (override_options): Fix -mtune error message.
26193
26194 2010-03-02  Jeff Law  <law@redhat.com>
26195
26196         PR middle-end/42431
26197         * reload1.c (rtx_p, substitute_stack): Declare.
26198         (substitute): Record addresses of changed rtxs.
26199         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
26200         Restore the original rtx when complete.
26201         (reload): Free subsitute_stack when complete.
26202
26203 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
26204
26205         * doc/gccint.texi (menu): Add Testsuites as a chapter.
26206         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
26207         new chapter.
26208         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
26209         LTO Testing, gcov Testing, profopt Testing, compat Testing,
26210         Torture Tests): Change from subsection to section.
26211
26212 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
26213             Steven Bosscher  <steven@gcc.gnu.org>
26214
26215         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
26216         instead of bb.
26217
26218 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
26219
26220         PR middle-end/42640
26221         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
26222         the assignment from the new induction variable to the assignment
26223         of the value from the original loop PHI function.
26224
26225 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
26226             Daniel Jacobowitz  <dan@codesourcery.com>
26227
26228         * doc/sourcebuild.texi (Test directives): Clarify options to
26229         dg-skip-if.
26230
26231 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26232
26233         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
26234         Disable cfi directives unless GCC and gas agree on using read-only
26235         .eh_frame sections for 64-bit.
26236         * configure: Regenerate.
26237
26238 2010-03-01  Richard Guenther  <rguenther@suse.de>
26239
26240         PR tree-optimization/43220
26241         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
26242         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
26243
26244 2010-03-01  Richard Guenther  <rguenther@suse.de>
26245             Martin Jambor  <mjambor@suse.cz>
26246
26247         PR middle-end/41250
26248         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
26249         gimplified parameters.
26250
26251 2010-03-01  Christian Bruel  <christian.bruel@st.com>
26252
26253         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
26254
26255 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
26256
26257         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
26258
26259 2010-03-01  Richard Guenther  <rguenther@suse.de>
26260
26261         PR middle-end/43213
26262         * expr.c (expand_assignment): Use the alias-oracle to tell
26263         if the rhs aliases the result decl.
26264
26265 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26266
26267         PR pch/14940
26268         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
26269         to sol_gt_pch_get_address.
26270         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
26271         64-bit, SPARC and x86.
26272         (sol_gt_pch_get_address): New function.
26273
26274 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
26275
26276         * toplev.h (inform_n, error_n): Declare.
26277         * diagnostic.c (inform_n, error_n): New function.
26278
26279 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
26280
26281         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
26282         has no rtl yet when processing local_decls, queue it and recheck
26283         if deferred stack allocation hasn't assigned it rtl.
26284
26285 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
26286
26287         * config/sh/sh.c (unspec_bbr_uid): New.
26288         (gen_block_redirect): Use it instead of INSN_UID.
26289         (gen_far_branch): Likewise.
26290
26291 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
26292
26293         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
26294         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
26295
26296 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26297
26298         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
26299         (Warning Options): -Wno-conversion-null is valid for
26300         Objective-C++ as well.
26301         * doc/tm.texi (Named Address Spaces): Likewise.
26302         * doc/plugins.texi (Plugins): Replace TABs with spaces.
26303         * doc/tree-ssa.texi (Tree SSA): Likewise.
26304
26305 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26306
26307         PR bootstrap/43202
26308         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
26309         by default.  Don't set the default arch for
26310         i[34567]86-*-darwin*|x86_64-*-darwin*.
26311
26312 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26313
26314         PR bootstrap/43202
26315         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
26316         default.  Set the default 32bit/64bit archs with $with_arch
26317         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
26318
26319 2010-02-27  Richard Guenther  <rguenther@suse.de>
26320
26321         PR tree-optimization/43186
26322         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
26323         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
26324         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
26325         unroller iterations.
26326
26327 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26328
26329         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
26330         required and i[34567]86-*-* targets don't support 64bit ISA.
26331
26332 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
26333
26334         PR ada/43096
26335         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
26336         the same alias set.
26337
26338 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
26339
26340         * config.gcc: Set the default arch at least to Prescott for
26341         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
26342         if SSE math is enabled.
26343
26344 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26345
26346         * diagnostic.c (diagnostic_initialize): Update.
26347         (diagnostic_report_diagnostic): Test inhibit_notes_p for
26348         informative notes.
26349         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
26350         (diagnostic_inhibit_notes): New.
26351         * toplev.c (process_options): inhibit notes with -fcompare-debug.
26352
26353 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26354
26355         PR c/20631
26356         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
26357         * doc/standards.texi: Likewise.
26358         * doc/extend.texi: Likewise.
26359         * doc/trouble.texi: Likewise.
26360         * doc/cppopts.texi: Likewise.
26361         * doc/install.texi: Likewise.
26362         * c.opt (std=c90,std=gnu90): New options.
26363         * c-opts.c (c_common_handle_option): Handle them.
26364
26365 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26366
26367         PR c/24577
26368         * c-decl.c (undeclared_variable): Use an informative note.
26369
26370 2010-02-26  Richard Guenther  <rguenther@suse.de>
26371
26372         PR tree-optimization/43186
26373         * gimple.h (gimple_fold): Remove.
26374         * gimple.c (gimple_fold): Remove.  Inline into single user ...
26375         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
26376         Try harder for conditions.
26377
26378 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
26379
26380         PR debug/43190
26381         * function.c (used_types_insert): Don't skip through named pointer
26382         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
26383         and it is different from the main variant's type.
26384
26385 2010-02-26  Nick Clifton  <nickc@redhat.com>
26386
26387         * config/rx/rx.md (sminsi3): Remove bogus alternative.
26388
26389 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
26390
26391         * config.gcc: Support --with-fpmath=sse for x86.
26392
26393         * config/i386/ssemath.h: New.
26394
26395         * doc/install.texi (--with-fpmath=sse): Documented.
26396
26397 2010-02-26  Richard Guenther  <rguenther@suse.de>
26398
26399         PR tree-optimization/43188
26400         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
26401         vector types of over-aligned element type.
26402
26403 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
26404
26405         PR target/43175
26406         * config/i386/i386.c (expand_vec_perm_blend): Use correct
26407         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
26408
26409 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
26410
26411         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
26412
26413 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
26414
26415         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
26416         * var-tracking.c: Include diagnostic.h.
26417         (debug_dv): New function.
26418         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
26419
26420         PR debug/43160
26421         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
26422         (add_value_chain, add_value_chains, remove_value_chain,
26423         remove_value_chains): Handle DEBUG_EXPRs.
26424         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
26425
26426         PR debug/43161
26427         * regcprop.c (struct queued_debug_insn_change): New type.
26428         (struct value_data_entry): Add debug_insn_changes field.
26429         (struct value_data): Add n_debug_insn_changes field.
26430         (debug_insn_changes_pool): New variable.
26431         (free_debug_insn_changes, apply_debug_insn_changes,
26432         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
26433         (kill_value_one_regno): Call free_debug_insn_changes if needed.
26434         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
26435         fields.
26436         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
26437         changes for them.
26438         (copyprop_hardreg_forward_1): Don't call apply_change_group for
26439         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
26440         changes, call cprop_find_used_regs via note_stores.
26441         (copyprop_hardreg_forward): When copying vd from predecessor
26442         which has any queued DEBUG_INSN changes, make sure the pointers are
26443         cleared.  At the end call df_analyze and then if there are any
26444         DEBUG_INSN changes queued at the end of some basic block for still
26445         live registers, apply them.
26446         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
26447
26448 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
26449
26450         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
26451         (arm*-*-*): Ditto.
26452
26453 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
26454
26455         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
26456         targets.  Set the default with_cpu/with_arch from arch/cpu.
26457         Allow x86-64 and native for with_cpu/with_arch.
26458
26459 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
26460
26461         * ebitmap.c: Change calls to verify_popcount with calls to
26462         sbitmap_verify_popcount.
26463         (ebitmap_clear_bit): Fixed map->cacheindex test and
26464         map>cache update when bit clearing results in an empty
26465         element.
26466
26467 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26468
26469         PR target/43154
26470         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
26471         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
26472         and support both V2DF and V2DI modes.
26473         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
26474         support both V2DF and V2DI modes.
26475         (general): Delete trailing whitespace from a few patterns.
26476
26477         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26478         V2DF/V2DI interleave high/low builtins.
26479
26480         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
26481         new VSX builtins.
26482
26483         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
26484         interleave high/low functions.
26485
26486 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
26487
26488         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
26489         #pragma extern_prefix.
26490
26491 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
26492
26493         PR debug/43166
26494         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
26495         BLKmode, assert op0 is a MEM and just adjust its mode.
26496
26497         PR debug/43165
26498         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
26499         if bitpos isn't multiple of mode's bitsize.
26500
26501 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26502
26503         * c.opt (-ftemplate-depth=): New.
26504         (-ftemplate-depth-): Deprecate.
26505         * optc-gen.awk: Handle -ftemplate-depth=.
26506         * opth-gen.awk: Likewise.
26507         * c-opts.c (c_common_handle_option): Likewise.
26508         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
26509
26510 2010-02-24  Jason Merrill  <jason@redhat.com>
26511
26512         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
26513
26514 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26515
26516         * cfg.c (alloc_aux_for_block): Remove inline.
26517         (alloc_aux_for_edge): Likewise.
26518
26519 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26520
26521         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
26522
26523 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26524
26525         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
26526         * config/i386/sol2-gas.h: New file.
26527         * config.gcc (i[34567]86-*-solaris2*): Use it.
26528
26529 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26530
26531         PR c/43128
26532         * c-typeck.c (ep_convert_and_check): New.
26533         (build_conditional_expr): Use it.
26534         (build_binary_op): Likewise.
26535
26536 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
26537
26538         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
26539
26540         PR debug/43150
26541         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
26542         bounds even for -O+.
26543         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
26544         expr needs to have DECL_NAME set.
26545
26546 2010-02-24  Nick Clifton  <nickc@redhat.com>
26547
26548         * config/mep/mep.c: Include gimple.h.
26549         (mep_function_uses_sp): Delete unused function.
26550         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
26551         parameters.  Use unsigned integers to count args.  Return a
26552         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
26553
26554 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
26555
26556         PR target/43107
26557         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
26558         greater or equal to nelt instead of 2 * nelt.
26559         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
26560         with nelt - 1.
26561
26562 2010-02-23  Jason Merrill  <jason@redhat.com>
26563
26564         PR debug/42800
26565         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
26566         in cfun->local_decls even if they have register types.
26567
26568         PR c++/42837
26569         * stor-layout.c (place_field): Don't warn about unnecessary
26570         DECL_PACKED if the type is packed.
26571
26572 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
26573
26574         PR target/43139
26575         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
26576         GOTOFF relocs, even when the base reg isn't pic pointer.
26577
26578 2010-02-23  Michael Matz  <matz@suse.de>
26579
26580         PR debug/43077
26581         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
26582         (expand_gimple_basic_block): Generate and use debug temps if there
26583         are debug uses left after the last real use of TERed ssa names.
26584         Unlink debug immediate uses when they are expanded.
26585
26586 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26587
26588         PR 43123
26589         * config/i386/i386.c (override_options): Reorganise to provide
26590         better error messages.
26591
26592 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26593
26594         PR middle-end/43083
26595         * graphite-scop-detection.c (create_single_exit_edge): Move
26596         the call to find_single_exit_edge to....
26597         (create_sese_edges): ...here.  Don't handle multiple edges
26598         exiting the function.
26599         (build_graphite_scops): Don't handle multiple edges
26600         exiting the function.
26601
26602 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26603
26604         PR middle-end/43097
26605         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
26606         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
26607
26608 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26609
26610         PR middle-end/43026
26611         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
26612
26613 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26614
26615         PR c++/43126
26616         * c-typeck.c (convert_arguments): Print declaration location.
26617         * c-common.c (validate_nargs): Rename as
26618         builtin_function_validate_nargs.
26619         (check_builtin_function_arguments): Update.
26620
26621 2010-02-22  Richard Guenther  <rguenther@suse.de>
26622
26623         PR lto/43045
26624         * tree-inline.c (declare_return_variable): Use the type of
26625         the call stmt lhs if available.
26626
26627 2010-02-22  Duncan Sands  <baldrick@free.fr>
26628
26629         * passes.c (register_pass): Always consider all pass lists when
26630         ref_pass_instance_number is zero.
26631
26632 2010-02-22  Richard Guenther  <rguenther@suse.de>
26633
26634         PR tree-optimization/42749
26635         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
26636         parameter.  Do arithmetic in the original type.
26637         (update_accumulator_with_ops): Likewise.
26638         (adjust_accumulator_values): Adjust.
26639
26640 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26641
26642         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
26643         (QI to BLKmode splitter): New splitter.
26644
26645 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
26646
26647         * config/i386/i386.c (initial_ix86_tune_features): Turn on
26648         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
26649
26650 2010-02-22  Richard Guenther  <rguenther@suse.de>
26651
26652         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
26653
26654 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
26655
26656         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
26657         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
26658         ($(T)crti.o, $(T)crtn.o): Remove rules.
26659
26660 2010-02-21  Tobias Burnus  <burnus@net-b.de>
26661
26662         PR fortran/35259
26663         * doc/invoke.texi (-fassociative-math): Document that this
26664         option is automatically enabled for Fortran.
26665
26666 2010-02-20  David S. Miller  <davem@davemloft.net>
26667
26668         * configure.ac: Test if linker and assembler properly support
26669         GOTDATA_OP relocations.
26670         * configure: Rebuild.
26671         * config.in: Likewise.
26672         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
26673         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
26674         (movsi_high_pic): Likewise.
26675         (movdi_lo_sum_pic): Likewise.
26676         (movdi_high_pic): Likewise.
26677         (movsi_pic_gotdata_op): New pattern.
26678         (movdi_pic_gotdata_op): Likewise.
26679         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
26680         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
26681
26682 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
26683
26684         PR target/43067
26685         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
26686         attribute to ssemul.
26687         (xop_mulv2div2di3_high): Ditto.
26688
26689 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26690
26691         PR c++/35669
26692         * c.opt (Wconversion-null): New option.
26693         * doc/invoke.texi (Wconversion-null): Document.
26694
26695 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26696
26697         * common.opt (Wlarger-than-): Add Undocumented.
26698
26699 2010-02-19  Mike Stump  <mikestump@comcast.net>
26700
26701         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
26702
26703 2010-02-19  Jason Merrill  <jason@redhat.com>
26704
26705         PR target/40332
26706         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
26707         * configure: Likewise.
26708
26709 2010-02-20  Alan Modra  <amodra@gmail.com>
26710
26711         PR middle-end/42344
26712         * cgraph.h (cgraph_make_decl_local): Declare.
26713         * cgraph.c (cgraph_make_decl_local): New function.
26714         (cgraph_make_node_local): Use it.
26715         * cgraphunit.c (cgraph_function_versioning): Likewise.
26716         * ipa.c (function_and_variable_visibility): Likewise.
26717
26718 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26719
26720         PR bootstrap/43121
26721         * except.c (sjlj_emit_function_enter): Don't call
26722         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
26723         directly.
26724         * rtl.h (add_reg_br_prob_note): Remove prototype.
26725
26726 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26727
26728         PR 41779
26729         * c-common.c (conversion_warning): Remove widening conversions
26730         before checking the conversion of integers to reals.
26731
26732 2010-02-19  Mike Stump  <mikestump@comcast.net>
26733
26734         PR middle-end/43125
26735         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
26736
26737         PR objc/43061
26738         * cgraphunit.c (process_function_and_variable_attributes): Check
26739         DECL_PRESERVE_P instead of looking up attribute "used".
26740         * ipa-pure-const.c (check_decl): Likewise.
26741         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
26742         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
26743         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
26744         instead of attribute "used".
26745         * config/sol2-c.c (solaris_pragma_init): Likewise.
26746         (solaris_pragma_fini): Likewise.
26747
26748 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26749
26750         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
26751         Use XCNEW instead of xcalloc.
26752         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
26753         XNEW instead of xmalloc.
26754         (get_fields): Use XNEWVEC instead of xmalloc.
26755
26756         PR debug/43084
26757         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
26758         populate vars array.
26759         (create_new_general_access): For debug stmts just reset value.
26760         (get_stmt_accesses): For accesses within debug stmts just record them
26761         using add_access_to_acc_sites instead of preventing the peeling or
26762         counting them as accesses.
26763
26764         PR middle-end/42233
26765         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
26766
26767 2010-02-19  Richard Guenther  <rguenther@suse.de>
26768
26769         PR tree-optimization/42916
26770         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
26771         instructions.
26772
26773 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
26774
26775         * configure.ac: Replace all uses of changequote in macro arguments
26776         with proper quoting.
26777
26778 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26779
26780         PR middle-end/42233
26781         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
26782
26783 2010-02-19  Richard Guenther  <rguenther@suse.de>
26784
26785         PR tree-optimization/42944
26786         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
26787         test for aliasing with errno.
26788
26789 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26790
26791         PR middle-end/42233
26792         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
26793         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
26794         * dojump.c: Include output.h.
26795         (inv): New inline function.
26796         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
26797         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
26798         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
26799         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
26800         argument, pass it down to other calls.
26801         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
26802         add REG_BR_PROB note to the conditional jump.
26803         * cfgexpand.c (add_reg_br_prob_note): Removed.
26804         (expand_gimple_cond): Don't call it, add the probability
26805         as last argument to jumpif_1/jumpifnot_1.
26806         * Makefile.in (dojump.o): Depend on output.h.
26807         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
26808         callers.
26809         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
26810         * stmt.c (do_jump_if_equal): Likewise.
26811         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
26812         * loop-unswitch.c (compare_and_jump_seq): Likewise.
26813         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
26814         Likewise.
26815         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
26816         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
26817         jumpifnot_1 callers.
26818         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
26819         callers.
26820         (store_expr): Adjust jumpifnot caller.
26821         (store_constructor): Adjust jumpif caller.
26822
26823         PR middle-end/42233
26824         * gimplify.c (gimple_boolify): For __builtin_expect call
26825         gimple_boolify also on its first argument.
26826
26827 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
26828
26829         * configure.ac (gnu-unique-object): Wrap regexps using [] in
26830         changequote block.
26831         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
26832         * configure: Regenerated.
26833
26834 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26835
26836         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
26837         lang_hooks.types_compatible_p instead of comptypes.
26838
26839 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
26840
26841         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
26842         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
26843         if __prefer_thumb__ is defined.
26844
26845 2010-02-18  Martin Jambor  <mjambor@suse.cz>
26846
26847         PR tree-optimization/43066
26848         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
26849         array with zero-sized element type.
26850
26851 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
26852
26853         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
26854         rtx, allocate struct var_loc_node here and return it to the
26855         caller, and only if it is actually needed.
26856         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
26857         move it earlier and return immediately if it returns NULL.
26858
26859 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
26860
26861         * config/sparc/gas.h: New file.  Restore
26862         TARGET_ASM_NAMED_SECTION to its ELF default.
26863         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
26864         check !HAVE_GNU_AS.
26865         * config/sparc/sparc.c (sparc_elf_asm_named_section):
26866         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
26867         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
26868         after sparc/sysv4.h.
26869
26870 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
26871
26872         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
26873
26874 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
26875
26876         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
26877         patterns from predicated pattern.
26878
26879 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
26880
26881         PR target/43103
26882         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
26883         for insn mnemonic suffix.
26884
26885 2010-02-17  Richard Guenther  <rguenther@suse.de>
26886
26887         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
26888         to loop PHI nodes.
26889
26890 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
26891
26892         PR debug/42918
26893         * caller-save.c (save_call_clobbered_regs): If BB ends with
26894         a DEBUG_INSN, move any notes in between last real insn and the last
26895         DEBUG_INSN after the last DEBUG_INSN.
26896
26897 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
26898
26899         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
26900         Fix return type.  Fix argument type.  Explain meaning of return value.
26901
26902 2010-02-16  Richard Guenther  <rguenther@suse.de>
26903
26904         PR tree-optimization/41043
26905         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
26906         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
26907         statements ...
26908         (vrp_visit_phi_node): ... but only for loop PHI nodes.
26909
26910 2010-02-16  Ira Rosen  <irar@il.ibm.com>
26911
26912         PR tree-optimization/43074
26913         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
26914         * tree-vect-loop.c (vect_analyze_loop_operations): Add
26915         vectorizable cycles in hybrid SLP check.
26916         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
26917
26918 2010-02-16  Richard Guenther  <rguenther@suse.de>
26919
26920         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
26921         (true_dependence): If memrefs_conflict_p computes must-alias
26922         trust it.  Move TBAA check after offset-based disambiguation.
26923         (canon_true_dependence): Likewise.
26924
26925 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
26926
26927         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
26928         * doc/invoke.texi: Document it.
26929         * var-tracking.c: Include toplev.h and params.h.
26930         (vt_find_locations): Return bool indicating success.  Compute
26931         hash sizes unconditionally.  Check new parameter, report.
26932         (variable_tracking_main_1): Check vt_find_locations results and
26933         retry.  Renamed from...
26934         (variable_tracking_main): ... this.  New wrapper to preserve
26935         flag_var_tracking_assignments.
26936         * Makefile.in (var-tracking.o): Adjust dependencies.
26937
26938 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
26939             Jakub Jelinek  <jakub@redhat.com>
26940
26941         PR target/42854
26942         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
26943         if weak_import attribute is present.
26944         * config/darwin.c (machopic_select_section): Likewise.
26945
26946 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
26947
26948         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
26949         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
26950         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
26951         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
26952
26953         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
26954         types.
26955
26956         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
26957         Fix argument types.
26958
26959         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
26960         Rewrite text to refer to the names.
26961
26962 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
26963
26964         * config/i386/i386-builtin-types.def
26965         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
26966         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
26967         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
26968         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
26969         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
26970         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
26971         IX86_BUILTIN_VPERMIL2PS256.
26972         (MULTI_ARG_4_DF2_DI_I): Defined.
26973         (MULTI_ARG_4_DF2_DI_I1): Defined.
26974         (MULTI_ARG_4_SF2_SI_I): Defined.
26975         (MULTI_ARG_4_SF2_SI_I1): Defined.
26976         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
26977         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
26978         __builtin_ia32_vpermil2ps256.
26979         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26980         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26981         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
26982         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26983         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26984         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
26985         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
26986         CODE_FOR_xop_vpermil2v8sf3.
26987         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
26988         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
26989         * config/i386/xopintrin.h (_mm_permute2_pd): New.
26990         (_mm256_permute2_pd): New.
26991         (_mm_permute2_ps): New.
26992         (_mm256_permute2_ps): New.
26993
26994 2010-02-15  Nick Clifton  <nickc@redhat.com>
26995
26996         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
26997         boolean parameters.  Use emit_jump_insn when emitting a pop
26998         instruction containing a return insn.
26999         (push): Use 'true' rather than '1' as second parameter to F.
27000         (h8300_expand_prologue): Likewise.
27001         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
27002         (h8300_expand_epilogue): Likewise.
27003
27004 2010-02-15  Richard Guenther  <rguenther@suse.de>
27005
27006         PR middle-end/43068
27007         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
27008         if that is zero.
27009
27010 2010-02-15  Nick Clifton  <nickc@redhat.com>
27011
27012         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
27013         delta.
27014
27015 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
27016
27017         * intl.c (fake_ngettext): New function.
27018         * intl.h (fake_ngettext): Declare.
27019         (ngettext): Define macro.
27020         * collect2.c (notice_translated): New function.
27021         (main): Use notice_translated and ngettext.
27022         * collect2.h (notice_translated): Declare.
27023
27024 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
27025
27026         * reorg.c (delete_computation): Comment fixes.
27027         * caller-save.c (setup_save_areas): Idem.
27028         * sel-sched-dump.c (dump_lv_set): Idem.
27029         * rtl.def: Idem.
27030
27031 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27032
27033         * config/s390/s390.c (s390_sched_init): New function.
27034         (TARGET_SCHED_INIT): Target hook defined.
27035
27036 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
27037             Jack Howarth  <howarth@bromo.med.uc.edu>
27038             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
27039
27040         PR target/42982
27041         Partial revert of unintended change in fix for PR41605.
27042         * config/darwin.h: Fix typo.
27043         * config/darwin9.h: Same.
27044
27045 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
27046
27047         * c-pch.c (pch_init): Clear v.
27048
27049 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27050
27051         PR middle-end/42930
27052         * graphite-scop-detection.c (graphite_can_represent_scev): Call
27053         graphite_can_represent_init for MULT_EXPR.
27054
27055 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27056
27057         PR middle-end/42914
27058         PR middle-end/42530
27059         * graphite-sese-to-poly.c (remove_phi): New.
27060         (translate_scalar_reduction_to_array): Call remove_phi.
27061
27062 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27063
27064         PR middle-end/42771
27065         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
27066         * graphite-clast-to-gimple.h (gloog): Update declaration.
27067         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
27068         * graphite-poly.h (struct poly_bb): Add missing comments.
27069         (struct scop): Add poly_scop_p field.
27070         (POLY_SCOP_P): New.
27071         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
27072         * graphite.c (graphite_transform_loops): Build the polyhedral
27073         representation for each scop before code generation.
27074         * sese.c (rename_variables_in_operand): Removed.
27075         (rename_variables_in_expr): Return the renamed expression.
27076         (rename_sese_parameters): New.
27077         * sese.h (rename_sese_parameters): Declared.
27078
27079 2010-02-11  Richard Guenther  <rguenther@suse.de>
27080
27081         PR tree-optimization/42998
27082         * tree-ssa-pre.c (create_expression_by_pieces): Treat
27083         POINTER_PLUS_EXPR properly.
27084
27085 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27086             Changpeng Fang  <changpeng.fang@amd.com>
27087
27088         PR middle-end/40886
27089         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
27090         the cost of an IV candidate when the IV is used in a test against zero.
27091
27092         * gcc.dg/tree-ssa/ivopts-3.c: New.
27093
27094 2010-02-11  Richard Guenther  <rguenther@suse.de>
27095
27096         PR lto/41664
27097         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
27098         pointer-vs-decl case by swapping refs.  Handle some cases
27099         of pointer-vs-decl disambiguations more conservatively.
27100         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
27101         to false after expanding.
27102
27103 2010-02-11  Richard Guenther  <rguenther@suse.de>
27104
27105         PR driver/43021
27106         * gcc.c (process_command): Handle LTO file@offset case more
27107         appropriately.
27108
27109 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
27110
27111         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
27112         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
27113         of DEBUG_INSNs.
27114         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
27115
27116         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
27117         if MEM's mode size isn't DWARF2_ADDR_SIZE.
27118         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
27119         Optimize eq/ne comparisons when both arguments are known to be
27120         zero-extended.
27121         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
27122         Don't mask operands unnecessarily if they are known to be already
27123         zero-extended.
27124
27125 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
27126
27127         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
27128         instead of loop.
27129
27130 2010-02-10  Richard Guenther  <rguenther@suse.de>
27131
27132         PR tree-optimization/43017
27133         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
27134         for wrapping signed arithmetic.
27135
27136 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
27137
27138         PR debug/43010
27139         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
27140         if no debug info should be emitted for it.
27141
27142 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
27143
27144         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
27145         note when flag_exceptions is set.
27146
27147 2010-02-10  Duncan Sands  <baldrick@free.fr>
27148
27149         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
27150
27151 2010-02-10  Richard Guenther  <rguenther@suse.de>
27152
27153         PR c/43007
27154         * tree.c (get_unwidened): Handle constants.
27155         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
27156
27157 2010-02-10  Martin Jambor  <mjambor@suse.cz>
27158
27159         PR lto/42985
27160         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
27161         check for variable argument counts independently.
27162
27163 2010-02-10  Christian Bruel  <christian.bruel@st.com>
27164
27165         PR target/42841
27166         * config/sh/sh.c (find_barrier): Increase length for non delayed
27167         conditional branches.
27168
27169 2010-02-10  Christian Bruel  <christian.bruel@st.com>
27170
27171         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
27172
27173 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
27174
27175         * builtins.c (set_builtin_user_assembler_name): Also handle
27176         ffs if int is smaller than word.
27177
27178 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
27179
27180         PR middle-end/42973
27181         * ira-conflicts.c (get_dup): Remove.
27182         (process_reg_shuffles): Add new parameter.  Use it as an
27183         additional guard for copy generation.
27184         (add_insn_allocno_copies): Rewrite.
27185
27186 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
27187
27188         * common.opt (fsched2-use-traces): Preserved for backward
27189         compatibility.
27190         * doc/invoke.texi: Remove the documentation about option
27191         -fsched2-use-traces.
27192         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
27193         flag_sched2_use_traces.
27194         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
27195         the backward compatibility flag section.
27196
27197 2010-02-09  Richard Guenther  <rguenther@suse.de>
27198
27199         PR tree-optimization/43008
27200         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
27201         make HEAP variables initialized from global memory if they
27202         are not known builtin functions.
27203         (find_func_aliases): Adjust.
27204
27205 2010-02-09  Richard Guenther  <rguenther@suse.de>
27206
27207         PR tree-optimization/43000
27208         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
27209         arithmetic manually.
27210
27211 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
27212
27213         PR tree-optimization/42931
27214         * tree-loop-linear.c (try_interchange_loops): Don't call
27215         double_int_mul if estimated_loop_iterations failed.
27216
27217 2010-02-08  Martin Jambor  <mjambor@suse.cz>
27218
27219         PR middle-end/42898
27220         * tree-sra.c (build_accesses_from_assign): Do not mark in
27221         should_scalarize_away_bitmap if stmt has volatile ops.
27222         (sra_modify_assign): Do not process assigns piecemeal if if stmt
27223         has volatile ops.
27224
27225 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
27226
27227         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
27228
27229 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
27230
27231         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
27232         before the pattern.
27233
27234 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
27235
27236         PR middle-end/42946
27237         * df-core.c (df_finish_pass): Change type of saved_flags to int.
27238
27239 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
27240
27241         PR middle-end/42988
27242         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
27243         to unknown_dependence.
27244         (graphite_legal_transform_dr): Handle the unknown_dependence.
27245         (graphite_carried_dependence_level_k): Same.
27246
27247 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
27248
27249         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
27250
27251 2010-02-07  Richard Guenther  <rguenther@suse.de>
27252
27253         PR middle-end/42991
27254         * expr.c (get_inner_reference): Always initialize *pbitsize.
27255
27256 2010-02-07  Richard Guenther  <rguenther@suse.de>
27257
27258         PR middle-end/42956
27259         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
27260         new ARRAY_REFs on variable size element or minimal index arrays.
27261         Complete.
27262         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
27263         gimple_fold_indirect_ref.
27264
27265 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
27266
27267         PR target/42957
27268         * arm.c (arm_override_options): Just return if the user has specified
27269         an invalid fpu name.
27270
27271 2010-02-03  Jason Merrill  <jason@redhat.com>
27272
27273         PR c++/42870
27274         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
27275         i386_pe_maybe_record_exported_symbol.
27276
27277 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
27278
27279         PR target/42924
27280         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27281         (pa_delegitimize_address): New function.
27282
27283 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
27284
27285         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
27286         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
27287
27288 2010-02-05  Richard Guenther  <rguenther@suse.de>
27289
27290         PR lto/42762
27291         * lto-streamer-in.c (get_resolution): Deal with references
27292         to undefined functions.
27293
27294 2010-02-05  Richard Guenther  <rguenther@suse.de>
27295
27296         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
27297         (fold_const_aggregate_ref): Likewise.
27298         (ccp_fold_stmt): Substitute loads.
27299         (maybe_fold_reference): Verify types before substituting.
27300         Unshare properly.
27301         (fold_gimple_assign): Unshare properly.
27302         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
27303
27304 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
27305
27306         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
27307         for rs6000_gen_cell_microcode.
27308
27309 2010-02-04  Richard Guenther  <rguenther@suse.de>
27310
27311         PR rtl-optimization/42952
27312         * dse.c (const_or_frame_p): Remove MEM handling.
27313
27314 2010-02-04  Nick Clifton  <nickc@redhat.com>
27315
27316         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
27317         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
27318         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
27319         (mn10300_asm_output_mi_thunk): New function.
27320         (mn10300_can_output_mu_thunk): New function.
27321         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
27322         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
27323         (FUNCTION_ARG): Delete incorrect comment.
27324
27325 2010-02-03  Jason Merrill  <jason@redhat.com>
27326
27327         PR c++/40138
27328         * fold-const.c (operand_equal_p): Handle erroneous types.
27329
27330 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
27331
27332         * config/h8300/h8300.md (can_delay): Fix attibute condition.
27333
27334 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
27335
27336         PR rtl-optimization/42941
27337         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
27338         of xmalloc.
27339
27340 2010-02-03  Jason Merrill  <jason@redhat.com>
27341
27342         PR c++/35652
27343         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
27344
27345 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
27346
27347         PR debug/42896
27348         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
27349         (cselib_reset_table): Renamed from...
27350         (cselib_reset_table_with_next_value): ... this.
27351         (cselib_get_next_uid): Renamed from...
27352         (cselib_get_next_unknown_value): ... this.
27353         * cselib.c (next_uid): Renamed from...
27354         (next_unknown_value): ... this.
27355         (cselib_clear_table): Adjust.
27356         (cselib_reset_table): Adjust.  Renamed from...
27357         (cselib_reset_table_with_next_value): ... this.
27358         (cselib_get_next_uid): Adjust.  Renamed from...
27359         (cselib_get_next_unknown_value): ... this.
27360         (get_value_hash): Use hash.
27361         (cselib_hash_rtx): Likewise.
27362         (new_cselib_val): Adjust.  Set and dump uid.
27363         (cselib_lookup_mem): Pass next_uid as hash.
27364         (cselib_subst_to_values): Likewise.
27365         (cselib_log_lookup): Dump uid.
27366         (cselib_lookup): Pass next_uid as hash.  Adjust.
27367         (cselib_process_insn): Adjust.
27368         (cselib_init): Initialize next_uid.
27369         (cselib_finish): Adjust.
27370         (dump_cselib_table): Likewise.
27371         * dse.c (canon_address): Dump value uid.
27372         * print-rtl.c (print_rtx): Print value uid.
27373         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
27374         (dvuid): New type.
27375         (dv_uid): New function, sort of renamed from...
27376         (dv_htab_hash): ... this, reimplemented in terms of it and...
27377         (dv_uid2hash): ... this.  New.
27378         (variable_htab_eq): Drop excess assertions.
27379         (tie_break_pointers): Removed.
27380         (canon_value_cmp): Compare uids.
27381         (variable_post_merge_New_vals): Print uids.
27382         (vt_add_function_parameters): Adjust.
27383         (vt_initialize): Reset table.  Adjust.
27384
27385 2010-02-03  Richard Guenther  <rguenther@suse.de>
27386
27387         PR tree-optimization/42944
27388         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
27389         (call_may_clobber_ref_p_1): Likewise.  Properly handle
27390         malloc and calloc clobbering errno.
27391
27392 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
27393
27394         * doc/invoke.texi: Fix name of sched1 dump.
27395
27396         * opts.c (decode_options): Set flag_tree_switch_conversion
27397         only conditionally on optimize >= 2.
27398
27399         * gcse.c: Assorted comment fixes in pass description.
27400
27401 2010-02-03  Anthony Green  <green@moxielogic.com>
27402
27403         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
27404         nop padding in order to maintain alignment of storage location of
27405         target function address.
27406         (moxie_trampoline_init): Store target function address at newly
27407         aligned location.
27408         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
27409         to 32.
27410         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
27411
27412 2010-02-03  Richard Guenther  <rguenther@suse.de>
27413
27414         PR middle-end/42927
27415         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
27416
27417 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27418
27419         * config.gcc: Reenable check for obsolete targets.
27420         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
27421         mips-sgi-irix6.[0-4]*.
27422
27423 2010-02-02  Nick Clifton  <nickc@redhat.com>
27424
27425         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
27426         constant size of 4 as being the same as 0.
27427         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
27428         can take values in the range 0..4.
27429
27430 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
27431
27432         PR java/41991
27433         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
27434         as _darwin10_Unwind_FindEnclosingFunction().
27435         * libgcc-libsystem.ver: New.
27436
27437 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
27438
27439         PR target/41399
27440         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
27441         implicitly set registers.
27442
27443 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
27444
27445         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
27446         (arm_override_options): Allow automatic selection of the thread
27447         pointer register if thumb2.
27448         (legitimize_pic_address): Improve code sequences for Thumb2.
27449         (arm_call_tls_get_addr): Likewise.
27450         (legitimize_tls_address): Likewise.
27451         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
27452         (pic_load_addr_32bit): ... this.  New named pattern.
27453         * thumb2.md (pic_load_addr_thumb2): Delete.
27454         (pic_load_dot_plus_four): Delete.
27455         (tls_load_dot_plus_four): New named pattern.
27456
27457 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27458
27459         PR libgomp/29986
27460         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
27461         Document fix for TLS bug.
27462
27463 2010-01-31  Richard Guenther  <rguenther@suse.de>
27464
27465         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
27466         conservatively correct.
27467
27468 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27469
27470         PR target/42850
27471         Revert:
27472         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27473
27474         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27475
27476 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27477
27478         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
27479
27480 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
27481
27482         * config.gcc: Adjust order of makefile fragments for mingw targets.
27483
27484 2010-01-31  Richard Guenther  <rguenther@suse.de>
27485
27486         PR middle-end/42898
27487         * gimplify.c (gimplify_init_constructor): For volatile LHS
27488         initialize a temporary.
27489
27490 2010-01-31  Matthias Klose  <doko@ubuntu.com>
27491
27492         * configure.ac: Fix __stack_chk_fail check for cross builds configured
27493         --with-headers
27494         * configure: Regenerate.
27495
27496 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
27497
27498         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
27499         the same alias set and their sizes different constantness.
27500         (aliasing_component_refs_p): Revert 2009-10-24 change.
27501
27502 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27503
27504         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
27505         unused.
27506
27507 2010-01-29  Richard Guenther  <rguenther@suse.de>
27508
27509         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
27510         Assert we successfully updated the call.
27511
27512 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
27513
27514         PR rtl-optimization/42889
27515         * df.h (df_set_bb_dirty_nonlr): New prototype.
27516         * df-core.c (df_set_bb_dirty_nonlr): New function.
27517         * df-scan.c (df_insn_rescan): Call it instead of
27518         df_set_bb_dirty for DEBUG_INSNs.
27519
27520 2010-01-29  Richard Guenther  <rguenther@suse.de>
27521
27522         PR middle-end/37448
27523         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
27524         quadratic behavior in most cases.
27525
27526 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
27527
27528         PR target/42891
27529         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
27530         in the call to gen_x86_movsicc_0_m1.
27531
27532 2010-01-28  Richard Guenther  <rguenther@suse.de>
27533
27534         PR tree-optimization/42871
27535         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
27536
27537 2010-01-28  Richard Guenther  <rguenther@suse.de>
27538
27539         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
27540         into call arguments.
27541
27542 2010-01-28  Richard Guenther  <rguenther@suse.de>
27543
27544         PR middle-end/42883
27545         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
27546         the forwarder if the destination is an EH landing pad.
27547
27548 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
27549
27550         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
27551         block list passed to gimple_duplicate_sese_tail.
27552         (parallelize_loops): Avoid parallelization when the function
27553         has_nonlocal_label.
27554         Avoid parallelization when the preheader is IRREDUCIBLE.
27555         Try to optimize when estimated_loop_iterations_int is unresolved.
27556         Add the loop's location to the dump file.
27557         * tree-cfg.c (add_phi_args_after_redirect): Remove.
27558         (gimple_duplicate_sese_tail): Remove the check for the latch.
27559         Redirect nexits to the exit block.
27560         Remove handling of the incoming edges to the latch.
27561         Redirect the backedge from the copied latch to the exit bb.
27562
27563 2010-01-28  Michael Matz  <matz@suse.de>
27564
27565         PR target/42881
27566         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
27567         Wrap force_reg into a sequence, emit it before user.
27568
27569 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
27570
27571         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
27572         (arm_rev): New.
27573         (arm_legacy_rev): Likewise.
27574         (thumb_legacy_rev): Likewise.
27575
27576 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
27577
27578         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
27579         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
27580         on MEM's address failed, try avoid_constant_pool_reference and
27581         recurse if it returned something different.
27582         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
27583         address, try avoid_constant_pool_reference and recurse if it
27584         returned something different.
27585         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
27586         address and avoid_constant_pool_reference returned something
27587         different, don't set have_address.
27588
27589 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
27590
27591         PR debug/42861
27592         * var-tracking.c (val_store): Add modified argument, obey it.
27593         Adjust callers.
27594         (count_uses): Move down logging of main.
27595         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
27596         don't need resolution.
27597         (emit_notes_in_bb): Likewise.
27598
27599 2010-01-27  Richard Guenther  <rguenther@suse.de>
27600
27601         PR middle-end/42878
27602         * tree-inline.c (remap_decl): Delay remapping of SSA name
27603         default definitions until we need them.
27604
27605 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
27606
27607         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27608         (rs6000_delegitimize_address): New function.
27609
27610         * config/s390/s390.c (s390_delegitimize_address): Call
27611         delegitimize_mem_from_attrs.
27612
27613         PR middle-end/42874
27614         * tree-inline.c (cannot_copy_type_1): Removed.
27615         (copy_forbidden): Don't forbid copying of functions containing
27616         records/unions with variable length fields.
27617
27618 2010-01-27  Christian Bruel  <christian.bruel@st.com>
27619
27620         Revert:
27621         PR target/42841
27622         * config/sh/sh.c (find_barrier): Increase length for non delayed
27623         conditional branches.
27624
27625 2010-01-27  Matthias Klose  <doko@ubuntu.com>
27626
27627         * configure.ac (gnu-unique-object): Fix ldd version check.
27628         * configure: Regenerate.
27629
27630 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27631
27632         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
27633         HAVE_GNU_AS value.
27634         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
27635         Test for HAVE_GNU_AS value.
27636
27637 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27638
27639         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
27640         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
27641         INT64_TYPE): Define.
27642         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
27643         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
27644         INT_LEAST64_TYPE): Define.
27645         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
27646         UINT_LEAST64_TYPE): Define.
27647         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
27648         INT_FAST64_TYPE): Define.
27649         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
27650         UINT_FAST64_TYPE): Define.
27651         (INTMAX_TYPE, UINTMAX_TYPE): Define.
27652         (INTPTR_TYPE, UINTPTR_TYPE): Define.
27653         (SIG_ATOMIC_TYPE): Define.
27654
27655 2010-01-26  Richard Guenther  <rguenther@suse.de>
27656
27657         * df-scan.c (df_scan_set_bb_info): Remove assert.
27658         (df_insn_rescan_debug_internal): Merge asserts.
27659         (df_install_ref): Likewise.
27660         (df_mark_reg): Use bitmap_set_range.
27661         (df_hard_reg_used_p): Remove assert.
27662         (df_hard_reg_used_count): Likewise.
27663
27664 2010-01-26  Richard Guenther  <rguenther@suse.de>
27665
27666         PR rtl-optimization/42685
27667         * web.c (web_main): Ignore DEBUG_INSNs.
27668
27669 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
27670
27671         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
27672
27673         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
27674         Fix types of fndecl and arglist parameters.
27675
27676 2010-01-26  Richard Guenther  <rguenther@suse.de>
27677
27678         PR middle-end/42806
27679         * tree-eh.c (unsplit_eh): Skip debug insns.
27680
27681 2010-01-26  Richard Guenther  <rguenther@suse.de>
27682
27683         PR tree-optimization/42250
27684         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
27685
27686 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
27687
27688         PR fortran/42866
27689         * omp-low.c (expand_omp_sections): Only use single_pred if
27690         l2_bb is single_pred_p.
27691
27692 2010-01-25  Christian Bruel  <christian.bruel@st.com>
27693
27694         PR target/42841
27695         * config/sh/sh.c (find_barrier): Increase length for non delayed
27696         conditional branches.
27697         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
27698
27699 2010-01-24  David S. Miller  <davem@davemloft.net>
27700
27701         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
27702         define if not using GAS.
27703         * config/sparc/sparc.c (sparc_elf_asm_named_section):
27704         Likewise.  Delete SECTION_MERGE code, which is only applicable
27705         when using GAS.
27706
27707 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
27708
27709         PR c++/42748
27710         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
27711         mangling of va_list in system headers.
27712
27713 2010-01-23  Toon Moene  <toon@moene.org>
27714
27715         * tree-predcom.c (combine_chains): Return NULL, not false.
27716
27717 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
27718
27719         * tree-loop-distribution.c (distribute_loop): Fix declaration and
27720         initialization of variable res to agree with return type.
27721
27722 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
27723
27724         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
27725         * tree-sra.c: Add include of expr.h.
27726
27727 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
27728
27729         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
27730         insert the debug stmt on the single non-EH edge from the stmt.
27731
27732 2010-01-22  Richard Henderson  <rth@redhat.com>
27733
27734         PR tree-opt/42833
27735         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
27736         the RHS until after generate_subtree_copies has insertted its
27737         code before the current statement.
27738
27739 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
27740
27741         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
27742
27743         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
27744
27745 2010-01-21  Martin Jambor  <mjambor@suse.cz>
27746
27747         PR tree-optimization/42585
27748         * tree-sra.c (struct access): New field grp_total_scalarization.
27749         (dump_access): Dump the new field.
27750         (should_scalarize_away_bitmap): New variable.
27751         (cannot_scalarize_away_bitmap): Likewise.
27752         (sra_initialize): Allocate new bitmaps.
27753         (sra_deinitialize): Free new bitmaps.
27754         (create_access_1): New function.
27755         (create_access): Parts moved to create_access_1.
27756         (type_consists_of_records_p): New function.
27757         (completely_scalarize_record): Likewise.
27758         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
27759         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
27760         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
27761         access.
27762         (analyze_all_variable_accesses): Completely scalarize small eligible
27763         records.
27764
27765 2010-01-21  Martin Jambor  <mjambor@suse.cz>
27766
27767         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
27768
27769 2010-01-21  Andrew Haley  <aph@redhat.com>
27770
27771         * gcc.c (process_command): Move lang_specific_driver before
27772         setting cc_libexec_prefix.
27773
27774 2010-01-21  Richard Guenther  <rguenther@suse.de>
27775
27776         PR middle-end/19988
27777         * fold-const.c (negate_expr_p): Pretend only negative
27778         real constants are easily negatable.
27779
27780 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
27781             Jason Merrill  <jason@redhat.com>
27782
27783         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
27784         (TYPE_TRANSPARENT_AGGR): this, for union and record.
27785         * calls.c (initialize argument_information): Handle it.
27786         * c-common.c (handle_transparent_union_attribute): Use new name.
27787         * c-decl.c (finish_struct): Ditto.
27788         * c-typeck.c (type_lists_compatible_p): Ditto.
27789         (convert_for_assignment): Use new name and also handle record.
27790         * function.c (aggregate_value_p): Handle it.
27791         (pass_by_reference): Ditto.
27792         (assign_parm_data_types): Ditto.
27793         * print-tree.c (print_node): Ditto.
27794         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
27795         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
27796         * tree.c (first_field): New fn.
27797
27798 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
27799
27800         PR target/42818
27801         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
27802         even when linking statically, for now.
27803
27804 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
27805
27806         PR debug/42715
27807         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
27808         without a cselib val.
27809         (count_uses): Accept MO_VAL_SET with no val on stores.
27810         (add_stores): Likewise.
27811
27812 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27813
27814         * var-tracking.c (check_value_val): Add a compile time assertion.
27815         (dv_is_decl_p): Simplify.
27816         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
27817         gcc_assert if ENABLE_CHECKING.
27818
27819 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
27820
27821         PR debug/42782
27822         * var-tracking.c: Include tree-flow.h.
27823         (mem_dies_at_call): New.
27824         (dataflow_set_preserve_mem_locs): Use it.
27825         (dataflow_set_remove_mem_locs): Likewise.
27826         (dump_var): Renamed from dump_variable.  Adjust all callers.
27827         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
27828         * Makefile.in (var-tracking.o): Adjust deps.
27829
27830 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
27831
27832         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
27833
27834 2010-01-20  Richard Guenther  <rguenther@suse.de>
27835
27836         PR tree-optimization/42717
27837         * tree-ssa-dce.c (get_live_post_dom): Remove.
27838         (forward_edge_to_pdom): Take an arbitrary edge to copy
27839         degenerate PHI args from.
27840         (remove_dead_stmt): Use the first post-dominator even if it
27841         does not contain live statements as redirection destination.
27842
27843 2010-01-20  Richard Guenther  <rguenther@suse.de>
27844
27845         * tree-inline.c (estimate_num_insns): Handle EH builtins.
27846
27847 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27848
27849         * sel-sched.c (create_speculation_check): Remove set but not used
27850         variable twin.
27851         (try_transformation_cache): Remove set but not used variable ds.
27852         (calculate_privileged_insns): Remove set but not used variables
27853         cur_insn and min_spec_insn.
27854         (find_best_expr): Remove set but not used variable avail_n.
27855         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
27856         variable e.
27857         * cgraphunit.c (assemble_thunk): Remove set but not used variable
27858         false_label.
27859         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
27860         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
27861         new_scop_exit_edge.
27862
27863 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
27864
27865         PR bootstrap/42786
27866         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
27867         cpu types.  Add support for *-sse3 cpu types.
27868         (x86_64-*-*): Ditto.
27869
27870 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27871
27872         PR middle-end/42803
27873         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
27874         argument, call initializer_constant_valid_p_1 instead of
27875         initializer_constant_valid_p, pass CACHE to it, return NULL
27876         immediately if first call returns NULL.
27877         (initializer_constant_valid_p_1): New function.
27878         (initializer_constant_valid_p): Use it.
27879
27880 2010-01-20  Thomas Quinot  <quinot@adacore.com>
27881
27882         * tree.def (PLACEHOLDER_EXPR): Fix comment.
27883
27884 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27885
27886         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
27887         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
27888         (loc_list_from_tree): Don't handle unsigned division.  Handle
27889         signed modulo using DW_OP_{over,over,div,mul,minus}.
27890         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
27891         modulo instead of signed.
27892
27893 2010-01-20  DJ Delorie  <dj@redhat.com>
27894
27895         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
27896         (Fpa): Pass it
27897         (h8300_emit_stack_adjustment): Propogate it.
27898         (push): Pass it.
27899         (h8300_expand_prologue): Likewise.
27900         (h8300_expand_epilogue): Likewise.
27901
27902 2010-01-19  Michael Matz  <matz@suse.de>
27903
27904         PR tree-optimization/41783
27905         * tree-data-ref.c (toplevel): Include flags.h.
27906         (dump_data_dependence_relation):  Also dump the inputs if the
27907         result will be unknown.
27908         (split_constant_offset_1): Look through some conversions.
27909         * tree-predcom.c (determine_roots_comp): Restart a new chain if
27910         the offset from last element is too large.
27911         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
27912         (reassociate_to_the_same_stmt): Handle vector registers.
27913         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
27914         (e.g. conversions).
27915         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
27916         wide_prolog_niters argument, emit widening instructions.
27917         (vect_do_peeling_for_alignment): Adjust caller, use widened
27918         variant of the iteration cound.
27919         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
27920
27921 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27922
27923         PR target/38697
27924         * config/arm/neon-testgen.m (emit_automatics): New parameter
27925         features. Adjust for Fixed_return_reg feature.
27926         (test_intrinsic): Call emit_automatics with new feature.
27927         * config/arm/neon.ml: Update copyright years.
27928         (features): New Fixed_return_reg feature.
27929         (ops): Update feature for Vget_low.
27930
27931 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
27932
27933         PR tree-optimization/42719
27934         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
27935         stmt uses.
27936
27937         PR debug/42728
27938         * fwprop.c (all_uses_available_at): Return false if def_set dest
27939         is a REG that is used in def_insn.
27940
27941 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
27942
27943         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
27944
27945         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
27946         Add argument names.
27947
27948         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
27949
27950         * target.h (struct gcc_target) <secondary_reload>: Change type
27951         of last argument to secondary_reload_info *.
27952
27953 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
27954
27955         PR target/42774
27956         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
27957         memory references with unaligned offsets.  Remove CQImode handling.
27958         (unaligned_memory_operand): Return 1 for memory references with
27959         unaligned offsets.  Remove CQImode handling.
27960
27961 2010-01-18  Richard Guenther  <rguenther@suse.de>
27962
27963         PR middle-end/39954
27964         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
27965         builtin calls.
27966
27967 2010-01-18  Richard Guenther  <rguenther@suse.de>
27968
27969         PR tree-optimization/42781
27970         * tree-ssa-structalias.c (find_what_var_points_to): Skip
27971         restrict processing only if the original variable was artificial.
27972
27973 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
27974
27975         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
27976         find number of popped argument bytes.
27977
27978         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
27979         Fix the text that describes the return value for invalid insns.
27980
27981         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
27982
27983         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
27984         Clarify what 'cost of the -dependence' is.  Fix quoting.
27985
27986         * toplev.c (default_get_pch_validity): Rename argument to "sz".
27987         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
27988
27989 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
27990
27991         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
27992         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
27993
27994 2010-01-17  Richard Guenther  <rguenther@suse.de>
27995
27996         PR middle-end/42248
27997         * function.c (split_complex_args): Take a VEC to modify.
27998         (assign_parms_augmented_arg_list): Build a VEC instead of
27999         a chain of PARM_DECLs.
28000         (assign_parms_unsplit_complex): Take a VEC of arguments.
28001         Do not fixup unmodified parms.
28002         (assign_parms): Deal with the VEC.
28003         (gimplify_parameters): Likewise.
28004
28005 2010-01-17  Richard Guenther  <rguenther@suse.de>
28006
28007         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
28008         node existence check.
28009         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
28010         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
28011         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
28012         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
28013         (gimple_execute_on_growing_pred): Likewise.
28014
28015 2010-01-17  Richard Guenther  <rguenther@suse.de>
28016
28017         PR tree-optimization/42773
28018         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
28019         (compute_antic_aux): Likewise.
28020         (compute_partial_antic_aux): Likewise.
28021
28022 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
28023
28024         PR debug/42767
28025         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
28026         and US_TRUNCATE.
28027
28028 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
28029
28030         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
28031         appearance.
28032
28033         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
28034         Fix markup for strict argument.
28035
28036         (TARGET_SCHED_REORDER2): Fix argument types.
28037
28038         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
28039         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
28040
28041         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
28042         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
28043
28044         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
28045         Add argument name.
28046
28047         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
28048         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
28049         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
28050         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
28051         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
28052
28053         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
28054
28055         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
28056
28057         (TARGET_ASM_RELOC_RW_MASK): Add return type.
28058         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
28059
28060         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
28061
28062         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
28063         Use prototype.
28064
28065         (TARGET_ASM_NAMED_SECTION): Fix argument list.
28066
28067         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
28068         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
28069
28070         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
28071
28072         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
28073
28074         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
28075         referring to it.  Fix language.
28076
28077         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
28078
28079         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
28080
28081         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
28082
28083         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
28084
28085         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
28086         '@var{stream}.  Remove stray 'and'.
28087
28088         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
28089
28090         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
28091
28092         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
28093
28094         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
28095         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
28096
28097         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
28098         Fix description of return value.
28099         Rename argument "sz" to "len."
28100
28101         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
28102         Clarify meaning of 'true' return value.
28103
28104         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
28105
28106         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
28107         rep_mode versus mode_rep.
28108
28109         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
28110
28111         (TARGET_BUILTIN_DECL): Fix name.
28112
28113         (TARGET_COMMUTATIVE_P): Fix type of first argument.
28114
28115         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
28116
28117         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
28118
28119         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
28120
28121         (TARGET_RELAXED_ORDERING): Use @deftypevr.
28122
28123         (TARGET_GET_DRAP_RTX): Note that this is a hook.
28124         Clarify language.
28125
28126         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
28127         Rename argument tm_fn to md_fn.
28128
28129         (TARGET_OPTION_PRINT): Fix argument list.
28130
28131 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
28132
28133         PR target/42664
28134         * config/i386/i386.c (ix86_fixup_binary_operands):
28135         Revert FMA4 fixup of operands.
28136
28137 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28138
28139         PR gcc/42525
28140         * Makefile.in (write_entries_to_file, install-plugin):
28141         Use \012 instead of \n with tr.
28142
28143 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
28144
28145         * configure.ac (HAVE_AS_REF): New C macro.
28146         * configure: Regenerate.
28147         * config.in: Likewise.
28148         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
28149         if HAVE_AS_REF.
28150         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
28151         if HAVE_AS_REF.
28152
28153 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
28154
28155         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
28156
28157         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
28158
28159         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
28160
28161         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
28162
28163         (TARGET_IN_SMALL_DATA_P): Fix argument type.
28164
28165         (TARGET_BINDS_LOCAL_P): Fix argument type.
28166
28167         (TARGET_ASM_FILE_END): Use prototype.
28168
28169         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
28170
28171         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
28172
28173         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
28174
28175         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
28176
28177         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
28178         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
28179
28180         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
28181         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
28182
28183         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
28184         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
28185         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
28186         (TARGET_ADDR_SPACE_CONVERT): Likewise.
28187
28188         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
28189
28190         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
28191
28192         (TARGET_INIT_BUILTINS): Use prototype.
28193
28194         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
28195         Put 'const char *' in braces.  Fix parameter types.
28196         (TARGET_INVALID_CONVERSION): Fix parameter types.
28197         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
28198         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
28199
28200         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
28201         Fix argument type.
28202
28203         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
28204
28205         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
28206
28207 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
28208
28209         * doc/tm.texi (TARGET_HELP): Fix return type.
28210
28211         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
28212         in braces.  Fix argument types.
28213
28214         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
28215
28216         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
28217
28218         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
28219
28220         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
28221         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
28222
28223         (TARGET_MANGLE_TYPE): Fix argument types.
28224
28225         (TARGET_IRA_COVER_CLASSES): Use prototype.
28226
28227         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
28228
28229         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
28230
28231         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
28232
28233         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
28234
28235         (TARGET_CALLEE_COPIES): Fix argument types.
28236
28237         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
28238
28239         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
28240
28241         (TARGET_FUNCTION_VALUE): Fix argument types.
28242
28243         (TARGET_RETURN_IN_MSB): Fix argument type.
28244
28245         (TARGET_RETURN_IN_MEMORY): Fix argument types.
28246
28247         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
28248
28249         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
28250
28251         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
28252         agree with return type.
28253
28254         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
28255
28256 2010-01-15  Jing Yu  <jingyu@google.com>
28257
28258         PR rtl-optimization/42691
28259         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
28260         a pseudo to a constant and are merged, and adjust comments.
28261
28262 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
28263
28264         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
28265
28266 2010-01-15  Richard Guenther  <rguenther@suse.de>
28267
28268         PR middle-end/42739
28269         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
28270         labels of computed or non-local gotos to the destination.
28271         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
28272         landing pad label is the first label.
28273
28274 2010-01-15  Richard Guenther  <rguenther@suse.de>
28275
28276         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
28277
28278 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
28279
28280         PR target/42747
28281         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
28282         to allow generation of the xssqrtdp instruction on power7.
28283         (sqrtdf2_fpr): Ditto.
28284
28285 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28286
28287         PR middle-end/42674
28288         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
28289         functions with noreturn attribute.
28290
28291         PR c++/42608
28292         * varasm.c (declare_weak): Add weak attribute to decl if it
28293         doesn't have one already.
28294         (assemble_external): Only add decls to weak_decls if they also
28295         have weak attribute.
28296
28297 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
28298
28299         * var-tracking.c (var_reg_delete): Don't delete the association
28300         between REGs and values or one-part variables if the register
28301         isn't clobbered.
28302
28303 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28304
28305         PR debug/42657
28306         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
28307         because its first operand is a non-localized variable.
28308
28309 2010-01-14  Martin Jambor  <mjambor@suse.cz>
28310
28311         PR tree-optimization/42706
28312         * tree-sra.c (encountered_recursive_call): New variable.
28313         (encountered_unchangable_recursive_call): Likewise.
28314         (sra_initialize): Initialize both new variables.
28315         (callsite_has_enough_arguments_p): New function.
28316         (scan_function): Call decl and flags check only for IPA-SRA, check
28317         whether there is a recursive call and whether it has enough arguments.
28318         (all_callers_have_enough_arguments_p): New function.
28319         (convert_callers): Look for recursive calls only when
28320         encountered_recursive_call is set.
28321         (ipa_early_sra): Bail out either if
28322         !all_callers_have_enough_arguments_p or
28323         encountered_unchangable_recursive_call.
28324
28325 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28326
28327         * sel-sched.c: Add 2010 to copyright years.
28328         * sel-sched-ir.c: Likewise.
28329         * sel-sched-ir.h: Likewise.
28330
28331 2010-01-14  Martin Jambor  <mjambor@suse.cz>
28332
28333         PR tree-optimization/42714
28334         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
28335         constructors specially.
28336
28337 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28338
28339         * config/i386/drivers-i386.c (detect_caches_intel):
28340         Add l2sizekb parameter and fill in.
28341         (host_detect_local_cpu): Add l2sizekb, fill in.
28342         Add Atom small cache heuristic.
28343
28344 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28345
28346         * config/i386/drivers-i386.c (detect_caches_cpuid4):
28347         Add level3 parameter and fill in.
28348         (detect_caches_intel): Handle level3 cache.
28349
28350 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28351
28352         * config/i386/drivers-i386.c (host_detect_local_cpu):
28353         Fix core duo detection.
28354
28355 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28356
28357         * config/i386/drivers-i386.c (host_detect_local_cpu):
28358         Fix Atom detection.
28359
28360 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28361
28362         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
28363         (rs6000_variable_issue_1): this.  Use...
28364         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
28365
28366 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28367
28368         * sel-sched-ir.c (sel_restore_other_notes): Rename to
28369         sel_restore_notes.  Update all callers.  Call reemit_notes
28370         for all insns.
28371
28372 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28373
28374         PR rtl-optimization/42246
28375         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
28376         loops.
28377
28378 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28379
28380         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
28381         all successors is the same as number of successors in current region.
28382
28383 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28384
28385         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
28386         to rename is not separable.  Otherwise check that its LHS is not NULL.
28387
28388 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28389
28390         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
28391
28392 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28393
28394         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
28395         available registers when failed to discover LHS register class.
28396         Fix indentation.  Update comment.
28397
28398 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28399             Alexander Monakov  <amonakov@ispras.ru>
28400
28401         PR rtl-optimization/42389
28402         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
28403         to can_issue_more.
28404         (advance_state_on_fence): Likewise.
28405         (sel_target_adjust_priority): Print debug output only when
28406         sched_verbose >= 4, not 2.
28407         (get_expr_cost): Do not issue all unique insns on the next cycle.
28408         (fill_insns): Initialize can_issue_more from the value saved
28409         with the fence.
28410         * sel-sched-ir.c (flist_add): New parameter issue_more.
28411         Init FENCE_ISSUE_MORE with it.
28412         (merge_fences): Likewise.
28413         (init_fences): Update call to flist_add.
28414         (add_to_fences, add_clean_fence_to_fences)
28415         (add_dirty_fence_to_fences): Likewise.
28416         (move_fence_to_fences): Update call to merge_fences.
28417         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
28418         sched groups.
28419         * sel-sched-ir.h (struct _fence): New field issue_more.
28420         (FENCE_ISSUE_MORE): New accessor macro.
28421
28422 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28423
28424         PR rtl-optimization/42388
28425         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
28426         that have no predecessors nor successors.  Do not call move_bb_info
28427         for empty blocks outside of current region.
28428
28429 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28430
28431         PR rtl-optimization/42294
28432         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
28433         * sel-sched.c (move_exprs_to_boundary): Transitively add all
28434         originators' originators.
28435
28436 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28437
28438         PR rtl-optimization/39453
28439         PR rtl-optimization/42246
28440         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
28441         for pipelining_p.
28442         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
28443
28444 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28445             Alexander Monakov  <amonakov@ispras.ru>
28446
28447         PR middle-end/42245
28448         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
28449         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
28450         argument.  Update all callers.
28451         (tidy_control_flow): ... and here.  Recompute topological order
28452         of basic blocks in region if necessary.
28453         (sel_redirect_edge_and_branch): Change return type.  Return true
28454         if topological order might have been invalidated.
28455         (purge_empty_blocks): Export and move from...
28456         * sel-sched.c (purge_empty_blocks): ... here.
28457         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
28458         (maybe_tidy_empty_bb): Delete prototype.
28459         (purge_empty_blocks): Declare.
28460
28461 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28462
28463         PR rtl-optimization/42249
28464         * sel-sched.c (try_replace_dest_reg): When chosen register
28465         and original register is the same, do not bail out early, but
28466         still check all original insns for validity of replacing destination
28467         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
28468         in this case.
28469
28470 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28471
28472         PR c/42721
28473         Port from no-undefined-overflow branch:
28474         2009-03-09  Richard Guenther  <rguenther@suse.de>
28475
28476         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
28477
28478 2010-01-14  Richard Guenther  <rguenther@suse.de>
28479
28480         PR lto/42665
28481         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
28482
28483 2010-01-14  Ira Rosen  <irar@il.ibm.com>
28484
28485         PR tree-optimization/42709
28486         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
28487         as scalar type in creation of constant vector operand.
28488
28489 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28490
28491         PR testsuite/42414
28492         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
28493         (check-parallel-%): Match `testsuite' directory component only
28494         at the end.
28495
28496 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
28497
28498         PR translation/39521
28499         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
28500         strings with _().
28501
28502 2010-01-13  Richard Guenther  <rguenther@suse.de>
28503
28504         PR tree-optimization/42730
28505         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
28506         offset zero.
28507
28508 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
28509
28510         PR target/pr42542
28511         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
28512         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
28513         them signed.
28514
28515 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
28516
28517         * config/bfin/libgcc-bfin.ver: Regenerate based on current
28518         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
28519         ___umulsi3_highpart.
28520
28521         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
28522         rather than schedule_insns if the pass is enabled.
28523
28524 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28525
28526         PR tree-optimization/42704
28527         * tree-sra.c (sra_modify_assign): Do not delete assignments to
28528         SSA_NAMEs.
28529
28530 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28531
28532         PR tree-optimization/42703
28533         * tree-sra.c (analyze_access_subtree): Check that we can build a
28534         reference to the original data within the aggregate.
28535
28536 2010-01-13  Richard Guenther  <rguenther@suse.de>
28537
28538         PR tree-optimization/42705
28539         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
28540
28541 2010-01-13  Richard Guenther  <rguenther@suse.de>
28542
28543         PR middle-end/42716
28544         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
28545
28546 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
28547
28548         PR debug/41371
28549         * var-tracking.c (values_to_unmark): New variable.
28550         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
28551         values_to_unmark vector.  Moved body to...
28552         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
28553         instead queue it into values_to_unmark vector.
28554         (vt_find_locations): Free values_to_unmark vector.
28555
28556 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
28557
28558         * config/s390/s390.c (override_options): Set
28559         default of max-pending-list-length to 256
28560
28561 2010-01-13  Richard Guenther  <rguenther@suse.de>
28562
28563         PR lto/42678
28564         * tree-pass.h (PROP_gimple_lcx): New.
28565         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
28566         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
28567         before the final cleanup_eh.
28568         (dump_properties): Dump PROP_gimple_lcx.
28569         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
28570         (tree_lower_complex_O0): Remove.
28571         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
28572         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
28573         tree_lower_complex, schedule TODO_update_ssa.
28574         * lto-streamer-out.c (output_function): Stream the functions
28575         properties.
28576         * lto-streamer-in.c (input_function): Likewise.
28577         (lto_read_body): Do not override them here.
28578
28579 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
28580
28581         PR c/42708
28582         * c-typeck.c (build_c_cast): Fold value cast to union type before
28583         wrapping it in a CONSTRUCTOR.
28584
28585 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
28586
28587         PR rtl-optimization/42699
28588         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
28589         involved.
28590
28591 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28592
28593         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28594         SUBTARGET_WARN_UNUSED_SPEC): Move ...
28595         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28596         SUBTARGET_WARN_UNUSED_SPEC): ... here
28597         * config/mips/iris5.h (LIBGCC_SPEC): Define.
28598
28599 2010-01-12  Julian Brown  <julian@codesourcery.com>
28600
28601         * config/arm/neon-schedgen.ml (Utils): Don't try to
28602         open missing module.
28603         (find_with_result): New.
28604
28605 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
28606
28607         PR debug/42662
28608         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
28609         sharing when canonicalizing ({lt,ge}u (plus a b) b).
28610
28611         PR tree-optimization/42645
28612         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
28613         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
28614         decl_map, set processing_debug_stmt to -1 and return name without
28615         any remapping.
28616
28617 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
28618
28619         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
28620         binutils version, and reword target configuration description.
28621
28622 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
28623
28624         * config/avr/avr.h (LINKER_NAME): Remove.
28625
28626 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
28627
28628         PR target/42416
28629         * config/rs6000/rs6000.c (rs6000_override_options): On targets
28630         that support VSX, warn for -mno-altivec if vsx is not disabled,
28631         and disable vsx.
28632
28633 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
28634             Shujing Zhao  <pearly.zhao@oracle.com>
28635
28636         PR translation/42469
28637         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
28638         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
28639         character between option name and help text.
28640         * c.opt (imultilib): Likewise.
28641
28642 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
28643
28644         * lto-streamer-out.c (output_unreferenced_globals): Output static
28645         variables.
28646
28647 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
28648
28649         PR rtl-optimization/42621
28650         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
28651         optimizing for size.
28652         (duplicate_computed_gotos): Remove now-redundant check.
28653
28654 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
28655
28656         PR target/37454
28657         * configure.ac: Save and restore LDFLAGS and LIBS
28658         * configure: Regenerate.
28659
28660 2010-01-10  Richard Guenther  <rguenther@suse.de>
28661
28662         PR middle-end/42667
28663         * builtins.c (fold_builtin_strlen): Add type argument and
28664         convert the resulting length to it.
28665         (fold_builtin_1): Adjust.
28666
28667 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
28668
28669         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
28670         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
28671         1 insn.
28672         (num_insns_constant_wide): Adjust for that change.
28673
28674 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28675
28676         PR debug/42631
28677         * web.c (union_defs): Add used argument, to combine uses of
28678         uninitialized regs.
28679         (entry_register): Adjust type and tests of used argument.
28680         (web_main): Widen used for new use.  Pass it to union_defs.
28681         * df.h (union_defs): Adjust prototype.
28682
28683 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28684
28685         PR debug/42630
28686         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
28687         uses in new incoming argument.  Free body.
28688         (reset_debug_uses_in_loop): New.
28689         (analyze_insn_to_expand_var): Call the latter if the former found
28690         anything.  Fix whitespace.  Reject invalid dest overlaps before
28691         going through all insns in the loop.
28692
28693 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28694
28695         PR debug/42629
28696         * haifa-sched.c (dying_use_p): Debug insns don't count.
28697
28698 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28699
28700         PR middle-end/42363
28701         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
28702         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
28703         (verify_gimple_call): Reject LHS in noreturn calls.
28704
28705 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28706
28707         PR debug/42604
28708         PR debug/42395
28709         * tree-vect-loop-manip.c (adjust_info): New type.
28710         (adjust_vec): New pointer to vector.
28711         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
28712         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
28713         (slpeel_update_phis_for_duplicate_loop): Use them.
28714         (slpeel_update_phi_nodes_for_guard1): Likewise.
28715         (slpeel_update_phi_nodes_for_guard2): Likewise.
28716         (slpeel_tree_peel_loop_to_edge): Likewise.
28717         (vect_update_ivs_after_vectorizer): Likewise.
28718
28719 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28720
28721         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
28722         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
28723
28724 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28725
28726         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
28727         bogus uninitialized warning.
28728
28729 2010-01-09  Richard Guenther  <rguenther@suse.de>
28730
28731         PR middle-end/42512
28732         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
28733         the evolution is compatible with the initial condition.
28734
28735 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
28736
28737         * gcc.c (process_command): Update copyright notice dates.
28738         * gcov.c (print_version): Likewise.
28739         * gcov-dump.c (print_version): Likewise.
28740         * mips-tfile.c (main): Likewise.
28741         * mips-tdump.c (main): Likewise.
28742
28743 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
28744
28745         PR target/41885
28746         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
28747         (rotlhi3): Delete.
28748         (rotlhi3_8): Delete.
28749         (rotlsi3): Delete.
28750         (rotlsi3_8): Delete.
28751         (rotlsi3_16): Delete.
28752         (rotlsi3_24): Delete.
28753         (rotl<mode>3): New.
28754         (*rotw<mode>3): New.
28755         (*rotb<mode>3): New.
28756         * config/avr/avr.c (avr_rotate_bytes): New function.
28757         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
28758
28759 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
28760
28761         PR target/37454
28762         * configure.ac: Modify -rdynamic check.
28763         * configure: Regenerate.
28764
28765 2010-01-08  DJ Delorie  <dj@redhat.com>
28766
28767         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
28768         register popping order.
28769
28770 2010-01-08  Richard Guenther  <rguenther@suse.de>
28771
28772         PR lto/42528
28773         * c.opt (fsigned-char): Also let LTO handle this option.
28774         (funsigned-char): Likewise.
28775
28776 2010-01-07  Richard Guenther  <rguenther@suse.de>
28777
28778         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
28779         (gimple_op): Likewise.
28780         (gimple_op_ptr): Likewise.
28781         (gimple_assign_set_lhs): Remove gcc_assert.
28782         (gimple_assign_set_rhs1): Likewise.
28783         (gimple_assign_set_rhs2): Likewise.
28784         (gimple_call_set_lhs): Likewise.
28785         (gimple_call_set_fn): Likewise.
28786         (gimple_call_set_fndecl): Likewise.
28787         (gimple_call_fndecl): Likewise.
28788         (gimple_call_return_type): Likewise.
28789         (gimple_call_set_chain): Likewise.
28790         (gimple_call_num_args): Likewise.
28791         (gimple_call_set_arg): Likewise.
28792         (gimple_cond_set_code): Likewise.
28793         (gimple_cond_set_lhs): Likewise.
28794         (gimple_cond_set_rhs): Likewise.
28795         (gimple_cond_set_true_label): Likewise.
28796         (gimple_cond_set_false_label): Likewise.
28797         (gimple_label_set_label): Likewise.
28798         (gimple_goto_set_dest): Likewise.
28799         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
28800         (gimple_debug_bind_get_value): Likewise.
28801         (gimple_debug_bind_get_value_ptr): Likewise.
28802         (gimple_debug_bind_set_var): Likewise.
28803         (gimple_debug_bind_set_value): Likewise.
28804         (gimple_debug_bind_reset_value): Likewise.
28805         (gimple_debug_bind_has_value_p): Likewise.
28806         (gimple_return_retval_ptr): Remove gcc_assert.
28807         (gimple_return_retval): Likewise.
28808         (gimple_return_set_retval): Likewise.
28809         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
28810         (safe_referenced_var_iterator): Remove.
28811         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
28812         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
28813         (fill_referenced_var_vec): Remove.
28814         (first_readonly_imm_use): Remove redundant gcc_assert.
28815         (phi_arg_index_from_use): Combine gcc_asserts.
28816         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
28817         (first_imm_use_stmt): Remove redundant gcc_assert.
28818         * tree-cfg.c (verify_gimple_call): Verify function and chain
28819         operands.  Verify arguments.
28820         (verify_types_in_gimple_stmt): Verify condition code and labels.
28821
28822 2010-01-07  Richard Guenther  <rguenther@suse.de>
28823
28824         PR tree-optimization/42641
28825         * sese.c (rename_map_elt_info): Use the SSA name version, do
28826         not hash pointers.
28827
28828 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
28829
28830         PR tree-optimization/42625
28831         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
28832         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
28833
28834 2010-01-07  Duncan Sands  <baldrick@free.fr>
28835
28836         * Makefile.in (PLUGIN_HEADERS): Add version.h.
28837
28838 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
28839
28840         PR target/42511
28841         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
28842         note itself is not function_invariant_p.
28843
28844 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
28845
28846         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
28847         Do not add the DF_NOTE problem.
28848         * store-motion.c (execute_rtl_store_motion): Likewise.
28849
28850 2010-01-07  Martin Jambor  <mjambor@suse.cz>
28851
28852         PR tree-optimization/42157
28853         * tree-sra.c (compare_access_positions): Stabilize sort if both
28854         accesses have integer types, return zero immediately if they are the
28855         same.
28856
28857 2010-01-06  Richard Henderson  <rth@redhat.com>
28858
28859         PR middle-end/41883
28860         * haifa-sched.c (add_to_note_list): Merge into ...
28861         (concat_note_lists): ... here, and ...
28862         (unlink_other_notes, rm_other_notes): Merge into...
28863         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
28864         NOTE_INSN_EPILOGUE_BEG.
28865
28866 2010-01-06  Richard Guenther  <rguenther@suse.de>
28867
28868         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
28869         not inline regular functions into always-inline functions.
28870
28871 2010-01-06  Nick Clifton  <nickc@redhat.com>
28872
28873         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
28874         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
28875         used together.
28876         (OVERRIDE_OPTIONS): Delete.
28877         (OPTIMIZATION_OPTIONS): Define.
28878         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
28879         * config/rx/rx.c (rx_handle_option): Issue an error message if
28880         -mcpu=rx200 and -fpu are used together.
28881         (rx_set_optimization_options): New function.  Issue an error
28882         message if an optimization attribute attempts to reset the FPU/
28883         math optimization pairing.
28884         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
28885         * config/rx/rx.opt: Set the default to 32-bit doubles.
28886         * config/rx/t-rx: Add multilibs for -nofpu option.
28887         * doc/invoke.texi: Update documentation of RX options.
28888
28889 2010-01-06  Richard Guenther  <rguenther@suse.de>
28890
28891         * tree-ssa-pre.c (name_to_id): New global.
28892         (alloc_expression_id): Simplify SSA name handling.
28893         (lookup_expression_id): Likewise.
28894         (init_pre): Zero name_to_id.
28895         (fini_pre): Free it.
28896
28897 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
28898
28899         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
28900
28901 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
28902
28903         PR target/42542
28904         * config/i386/sse.md (smaxv2di3): New.
28905         (umaxv2di3): Likewise.
28906         (sminv2di3): Likewise.
28907         (uminv2di3): Likewise.
28908
28909 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
28910
28911         PR target/42564
28912         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
28913         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
28914         (legitimize_tls_address): Likewise.
28915         (sparc_tls_referenced_p): Likewise.
28916         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
28917         and adjust calls to legitimize_pic_address.
28918         (legitimate_constant_p) Use sparc_tls_referenced_p.
28919         (legitimate_pic_operand_p): Likewise.
28920         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
28921         (sparc_tls_symbol_ref_1): Delete.
28922         (sparc_tls_referenced_p): Make static, recognize specific patterns.
28923         (legitimize_tls_address): Make static, handle CONST patterns.
28924         (legitimize_pic_address): Make static, remove unused parameter and
28925         adjust recursive calls.
28926         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
28927         and adjust call to legitimize_pic_address.
28928         (sparc_output_mi_thunk): Likewise.
28929
28930 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
28931             H.J. Lu  <hongjiu.lu@intel.com>
28932
28933         PR target/42542
28934         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
28935         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
28936         operands to make them signed.
28937
28938         Revert:
28939         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
28940
28941         PR target/42542
28942         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
28943         GTU to GT for V4SI and V2DI.
28944
28945         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
28946         (umin<mode>3): Removed.
28947         (uminv8hi3): New.
28948         (uminv4si3): Likewise.
28949
28950 2010-01-05  Martin Jambor  <mjambor@suse.cz>
28951
28952         PR tree-optimization/42462
28953         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
28954         current_function_decl to helper functions and macros.
28955
28956 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28957
28958         PR bootstrap/41771
28959         * flags.h: Don't include real.h.
28960         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
28961         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
28962         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
28963         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
28964         * dominance.c: Update copyright.
28965         * gimple.c (walk_gimple_op): Remove inline.
28966         * tree-ssa-reassoc.c: Include real.h.
28967         * Makefile.in (FLAGS_H): Remove $(REAL_H).
28968         (tree-ssa-reassoc.o): Depend on $(REAL_H).
28969
28970 2010-01-05  Nick Clifton  <nickc@redhat.com>
28971
28972         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
28973         register to push into the stack frame when the accumulator has to
28974         be saved during interrupts.
28975
28976 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
28977
28978         * doc/invoke.texi: Remove the documentation about option
28979         -Wunreachable-code.
28980         * common.opt (Wunreachable-code):  Preserved for backward
28981         compatibility.
28982         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
28983         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
28984         the backward compatibility flag section.
28985
28986 2010-01-05  Richard Guenther  <rguenther@suse.de>
28987
28988         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
28989
28990 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
28991
28992         PR other/42611
28993         * cfgexpand.c (expand_one_var): Diagnose too large variables.
28994
28995         PR tree-optimization/42508
28996         * tree-sra.c (convert_callers): Check for recursive call
28997         by comparing cgraph nodes instead of decls.
28998         (modify_function): Call ipa_modify_formal_parameters also
28999         on all same_body aliases.
29000
29001         * cgraphunit.c (cgraph_materialize_all_clones): Compare
29002         cgraph nodes when checking for same_body aliases.
29003
29004 2010-01-05  Richard Guenther  <rguenther@suse.de>
29005
29006         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
29007         allocation and lookup.
29008         (get_or_alloc_expr_for_constant): Likewise.
29009         (phi_translate): Sink allocation.
29010
29011 2010-01-04  Richard Guenther  <rguenther@suse.de>
29012
29013         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
29014         a new entry only if needed.
29015         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
29016         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
29017         hashtable lookup.
29018         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
29019         the result array.
29020         (phi_translate): Handle CONSTANTs early.
29021
29022 2010-01-04  Martin Jambor  <mjambor@suse.cz>
29023
29024         PR tree-optimization/42398
29025         * tree-sra.c (struct access): Removed flag grp_different_types.
29026         (dump_access): Do not dump the removed flag.
29027         (sort_and_splice_var_accesses): Do not set the removed flag.
29028         (sra_modify_expr): Check for type compatibility directly.
29029
29030 2010-01-04  Martin Jambor  <mjambor@suse.cz>
29031
29032         PR tree-optimization/42366
29033         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
29034         edges with variable number of parameters.
29035         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
29036         flag instead of asserting it.
29037         (ipa_read_node_info): Read uses_analysis_done flag.
29038
29039 2010-01-04  Richard Guenther  <rguenther@suse.de>
29040
29041         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
29042         iterative_hash_* as intended.
29043         (vn_reference_compute_hash): Likewise.  Simplify hashing
29044         SSA names.
29045         (vn_reference_lookup_2): Likewise.
29046         (vn_nary_op_compute_hash): Likewise.
29047         (vn_phi_compute_hash): Likewise.
29048         (expressions_equal_p): Remove strange code.
29049         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
29050         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
29051         (bitmap_insert_into_set_1): Take value-id as parameter.
29052         (add_to_value): Pass it.
29053         (bitmap_insert_into_set): Likewise.
29054         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
29055
29056 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
29057
29058         PR driver/42442
29059         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
29060         (do_self_spec): For switches with SWITCH_IGNORE set set also
29061         SWITCH_IGNORE_PERMANENTLY.
29062         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
29063         of SWITCH_IGNORE.
29064
29065 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
29066
29067         * lto-streamer-out.c (output_unreferenced_globals): Output the full
29068         tree of an unreferenced global var.
29069
29070 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
29071
29072         PR target/42542
29073         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
29074         GTU to GT for V4SI and V2DI.
29075
29076         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
29077         (umin<mode>3): Removed.
29078         (uminv8hi3): New.
29079         (uminv4si3): Likewise.
29080
29081 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
29082
29083         PR lto/42581
29084         * collect2.c (main): Turn on trace in collect2 if -v is passed
29085         to gcc with LTO.
29086
29087 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
29088
29089         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
29090         description of expression operand.
29091
29092 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
29093
29094         * configure.ac: Add install-html to target_list for Make-hooks.
29095         * configure: Regenerate.
29096         * fortran/Make-lang.in (F95_HTMLFILES): New.
29097         (fortran.html): Use it.
29098         (fortran.install-html): New.
29099         * Makefile.in (install-html): Add lang.install-html.
29100         * java/Make-lang.in (JAVA_HTMLFILES): New.
29101         (java.html): Use it.
29102         (java.install-html): New.
29103         * objc/Make-lang.in (objc.install-html): New.
29104         * objcp/Make-lang.in (obj-c++.install-html): New.
29105         * cp/Make-lang.in (c++.install-html): New.
29106         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
29107         * lto/Make-lang.in (lto.install-html): New.
29108
29109 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
29110
29111         PR lto/42520
29112         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
29113
29114 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
29115
29116         PR rtl-optimization/41862
29117         * store-motion.c (store_killed_in_insn, compute_store_table,
29118         remove_reachable_equiv_notes, replace_store_insn,
29119         build_store_vectors): Ignore all DEBUG_INSNs.
29120
29121 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
29122
29123         PR lto/41564
29124         * common.opt: Add dumpdir.
29125
29126         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
29127         isn't specified.
29128         (option_map): Add --dumpdir.
29129
29130         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
29131
29132         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
29133
29134         * opts.c (decode_options): Try dump_dir_name first if
29135         dump_base_name isn't an absolute path.
29136         (common_handle_option): Handle OPT_dumpdir.
29137
29138         * toplev.c (dump_dir_name): New.
29139         (print_switch_values): Also ignore -dumpdir.
29140
29141         * toplev.h (dump_dir_name): New.
29142
29143 2010-01-03  Richard Guenther  <rguenther@suse.de>
29144
29145         PR tree-optimization/42589
29146         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
29147         double-word expansion of bswap32.
29148
29149 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
29150
29151         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
29152         with BLOCK_FOR_INSN.
29153         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
29154         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
29155         noce_process_if_block): Likewise.
29156         * gcse.c (compute_local_properties, insert_expr_in_table,
29157         insert_set_in_table, canon_list_insert, find_avail_set,
29158         pre_insert_copy_insn): Likewise.
29159
29160         * basic-block.h (BLOCK_NUM): Move from here...
29161         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
29162
29163 2010-01-03  Richard Guenther  <rguenther@suse.de>
29164
29165         PR tree-optimization/42438
29166         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
29167         contains_may_not_return_call flag.
29168         (BB_MAY_NOTRETURN): New.
29169         (valid_in_sets): Trapping nary operations are not valid
29170         in blocks that may not return.
29171         (insert_into_preds_of_block): Remove check for trapping expressions.
29172         (compute_avail): Compute also BB_MAY_NOTRETURN.
29173
29174 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
29175
29176         * doc/invoke.texi: Add 2010 to copyright years.
29177
29178 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
29179
29180         * config/sparc/sparc.c: Fix formatting nits.
29181
29182 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
29183             Alexander Monakov  <amonakov@ispras.ru>
29184
29185         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
29186
29187 2010-01-02  Richard Guenther  <rguenther@suse.de>
29188
29189         PR middle-end/42577
29190         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
29191         (simplify_switch_using_ranges): Mark to be removed edges
29192         as non-executable.
29193
29194 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29195
29196         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
29197
29198         * collect2.c (scan_libraries): Add missing argument in call to
29199         scan_prog_file.
29200
29201 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
29202
29203         PR target/42448
29204         * config/alpha/predicates.md (aligned_memory_operand): Return false
29205         for CQImode.
29206         (unaligned_memory_operand): Return true for CQImode.
29207         * config/alpha/alpha.c (get_aligned_mem): Assert that location
29208         doesn not cross aligned SImode word boundary.
29209
29210 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
29211
29212         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
29213         Remove.
29214         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
29215         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
29216
29217 2010-01-02  Richard Guenther  <rguenther@suse.de>
29218
29219         PR lto/41597
29220         * toplev.c (compile_file): Emit LTO marker properly.  Change
29221         it to __gnu_lto_v1.
29222         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
29223
29224 2010-01-01  Richard Guenther  <rguenther@suse.de>
29225
29226         PR debug/42455
29227         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
29228
29229 2010-01-01  Richard Guenther  <rguenther@suse.de>
29230
29231         PR c/42570
29232         * c-decl.c (grokdeclarator): For zero-size arrays force
29233         structural equality checks as layout_type does.
29234
29235 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
29236
29237         * builtins.c: Update copyright to 2010.
29238
29239 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
29240
29241         PR lto/42531
29242         * lto-streamer-out.c (produce_asm): Revert the last change.
29243         (copy_function): Likewise.
29244
29245         * lto-streamer.c (lto_get_section_name): Skip any leading
29246         asterisk in name.
29247
29248 2010-01-01  Richard Guenther  <rguenther@suse.de>
29249
29250         PR middle-end/42559
29251         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
29252         for LABEL_DECLs.
29253
29254 \f
29255 Copyright (C) 2010 Free Software Foundation, Inc.
29256
29257 Copying and distribution of this file, with or without modification,
29258 are permitted in any medium without royalty provided the copyright
29259 notice and this notice are preserved.